Couchbase es la base de datos documental NoSQL líder en el mundo. Ofrece un rendimiento, una flexibilidad y una escalabilidad inigualables en el perímetro, en las instalaciones y en la nube. Spark es uno de los entornos de computación en memoria más populares. Las dos plataformas pueden combinarse para ejecutar funciones de consulta, ingeniería de datos, ciencia de datos y aprendizaje automático increíblemente rápidas.
En este QuickStart, te guiaré a través de los sencillos pasos para configurar Couchbase con Databricks* y ejecutar consultas de datos de Couchbase y consultas SQL de Spark.
*Nota: Los pasos de este QuickStart se han validado con Databricks runtime 10.4 LTS.
Configurar
Requisitos previos
Para completar este QuickStart, necesitará lo siguiente:
-
- Un clúster Couchbase y viaje-muestra accesible al clúster Databricks. He utilizado un clúster Couchbase en una máquina AWS EC2.
- A Cuenta Databricks - hay disponibles pruebas gratuitas que requieren una cuenta de AWS, Azure o GCP.
- Couchbase conector de chispa versión 3.2.2, disponible en Maven:
- En la pantalla de creación del clúster, en la sección Bibliotecas pestaña. Seleccione Instale nuevo y busque el paquete en Maven Central. Vea el siguiente ejemplo:
-
- En Instale se configurará como en el ejemplo siguiente:
Configuración
Antes de empezar, necesitamos configurar los siguientes parámetros en el cluster Databricks opciones avanzadas Configuración de Spark. Esto se puede hacer al crear un clúster (véase la impresión de pantalla a continuación):
Puede copiar y pegar la configuración de abajo y sustituir los parámetros en <> con los valores de su clúster Couchbase en el campo opciones avanzadas Configuración de Spark:
1 2 3 4 5 |
chispa.couchbase.contraseña <contraseña> chispa.couchbase.implicitBucket <viaje-muestra> chispa.couchbase.connectionString <nombre de host> chispa.couchbase.nombre de usuario <nombre de usuario> chispa.databricks.delta.previsualizar.habilitado verdadero |
En primer lugar, vamos a ejecutar las importaciones necesarias. Copie el código de ejemplo a continuación en un cuaderno en blanco conectado a un clúster con la configuración anterior
1 2 3 4 5 6 7 8 9 10 11 |
importar com.couchbase.chispa._ importar org.apache.chispa.sql._ importar com.couchbase.cliente.scala.json.JsonObject importar com.couchbase.chispa.kv.Visite importar com.couchbase.cliente.scala.kv.MutateInSpec importar com.couchbase.chispa.kv.MutateIn importar com.couchbase.cliente.scala.kv.LookupInSpec importar com.couchbase.chispa.kv.BúsquedaEn importar com.couchbase.cliente.scala.consulta.Opciones de consulta importar com.couchbase.chispa.consulta.Opciones de consulta importar com.couchbase.cliente.scala.análisis.AnalyticsOptions |
Ahora, vamos a obtener algunos documentos por claves desde Couchbase viaje-muestra utilizando el siguiente código:
1 2 3 4 |
sc .couchbaseGet(Seq(Visite("aerolínea_10"), Visite("airline_10642"))) .recoja() .foreach(resultado => println(resultado.contentAs[JsonObject])) |
Genial, nos hemos conectado al clúster y hemos devuelto nuestro primer RDD (Resilient Distributed Dataset).
Podemos consultar los datos usando SQL++ (lenguaje de consulta de Couchbase basado en SQL). Ejecuta el siguiente código como ejemplo:
1 2 3 4 |
sc .couchbaseQuery[JsonObject]("select country, count(*) as count from `travel-sample` where type = 'airport' group by country order by count desc") .recoja() .foreach(println) |
Consulta del servicio de análisis
Couchbase también ofrece un servicio de análisis para el análisis operativo y análisis en tiempo real a continuación es un ejemplo de una consulta de análisis:
1 2 |
val consulta = "SELECT ht.ciudad,ht.estado,COUNT(*) AS num_hotels FROM `viajes-muestra`.inventario.hotel ht GROUP BY ht.ciudad,ht.estado HAVING COUNT(*) > 30" sc.couchbaseAnalyticsQuery[JsonObject](consulta).recoja().foreach(println) |
Pasemos ahora a Spark SQL
Utilice el código siguiente para crear vistas temporales para líneas aéreas y aeropuertos Marcos de datos:
1 2 3 4 5 6 7 8 9 |
val líneas aéreas = chispa.leer.formato("couchbase.query") .opción(Opciones de consulta.Filtro, "tipo = 'aerolínea'") .carga() líneas aéreas.createOrReplaceTempView("líneas aéreas") val aeropuertos = chispa.leer.formato("couchbase.query") .opción(Opciones de consulta.Filtro, "tipo = 'aeropuerto'") .carga() aeropuertos.createOrReplaceTempView("aeropuertos") |
Ahora podemos ejecutar consultas Spark SQL en las vistas, por ejemplo:
Obtener las compañías aéreas en orden ascendente:
1 |
%sql seleccionar * de líneas aéreas pedir por nombre asc límite 10 |
Obtenga las compañías aéreas agrupadas por países:
1 |
%sql seleccione país, cuente(*) de líneas aéreas grupo por país; |
Y por último, visualicemos los aeropuertos por país utilizando un UDF (User Defined Function) junto con la función de mapeo de Databricks. Crear el UDF utilizando el SQL ++ a continuación:
1 2 3 4 5 6 7 8 |
val mapa del país = (s: Cadena) => { s match { caso "Francia => "FRA" caso "Estados Unidos" => "USA" caso "Reino Unido" => "GBR" } } chispa.udf.regístrese en("mapa del país", mapa del país) |
Seleccione los recuentos de aeropuertos por país y visualice los resultados:
1 |
%sql seleccione mapa del país(país), cuente(*) de aeropuertos grupo por país; |
Después de completar este Quickstart, su resultado debe ser similar a la visualización de abajo:
Lo que hemos conseguido
En este QuickStart, he descrito cómo utilizar el spark-connector de Couchbase con Databricks para crear RDDs, ejecutar consultas SQL de Couchbase y Spark, crear un UDF, y utilizar la función de mapeo de Databricks para visualizar los resultados. Estos pasos demuestran el proceso utilizado para acceder, analizar y visualizar datos en un clúster Couchbase desde una interfaz de cuaderno Databricks.
Próximos pasos
Más información Couchbase Capella:
-
- Prueba Capella suscribiéndote a un prueba gratuita de 30 días.
- Conecte su grupo de prueba al Playground o conecta un proyecto para probarlo por ti mismo.
- Visite el Portal para desarrolladores de Couchbase que toneladas de tutoriales/guías de inicio rápido y vías de aprendizaje que le ayudarán a empezar.
- Consulte la documentación para obtener más información sobre los SDK de Couchbase.
Gracias por leer este post. Si tiene alguna pregunta o comentario, por favor conecte con nosotros en el Couchbase Foros