Ingesta datos directamente de Google BigQuery en Elastic con Google Dataflow

blog-thumb-cloud-gcp.png

Hoy nos complace anunciar el soporte para la ingesta de datos directa de BigQuery en el Elastic Stack. Ahora, los analistas de datos y desarrolladores pueden ingestar datos de Google BigQuery en el Elastic Stack con solo unos clics en Google Cloud Console. Gracias a las plantillas de Dataflow, las integraciones nativas permiten a los clientes simplificar su arquitectura de pipeline de datos y eliminar gastos operativos relacionados con la instalación y gestión de agentes.

Muchos analistas de datos y desarrolladores usan Google BigQuery como solución de almacén de datos y el Elastic Stack como solución de búsqueda y visualización de dashboards. Para mejorar la experiencia de ambas soluciones, Google y Elastic trabajaron juntos con el objetivo de proporcionar una forma simplificada de ingestar datos de las vistas y tablas de BigQuery en el Elastic Stack. Y todo esto es posible con solo unos clics en Google Cloud Console, sin tener que instalar ningún agente de datos o herramientas de ETL (extraer, transformar, cargar).

En este blog, veremos cómo dar los primeros pasos con la ingesta de datos sin agente de Google BigQuery en el Elastic Stack.

Simplifica los casos de uso de BigQuery + Elastic

BigQuery es una solución de almacén de datos sin servidor popular que posibilita centralizar los datos de diferentes fuentes, como aplicaciones personalizadas, bases de datos, Marketo, NetSuite, Salesforce, historial de clics web o incluso Elasticsearch. Los usuarios pueden unir sets de datos de diferentes fuentes y después ejecutar búsquedas de SQL para analizar los datos. Es habitual usar la salida de los trabajos de SQL de BigQuery para crear más vistas y tablas en BigQuery o crear dashboards para compartir con otras partes interesadas y equipos en tu organización; lo que puedes hacer con Kibana, la herramienta de visualización de datos nativa de Elastic.

Otro caso de uso clave de BigQuery y el Elastic Stack es una búsqueda de texto completo. Los usuarios de BigQuery pueden ingestar datos en Elasticsearch y después buscar y analizar los resultados de la búsqueda con Kibana o API de Elasticsearch.

Optimiza la ingesta de datos

Google Dataflow es un servicio de mensajería asíncrono sin servidor basado en Apache Beam. Dataflow se puede usar en lugar de Logstash para ingestar datos directamente de Google Cloud Console. Los equipos de Google y Elastic trabajaron juntos para desarrollar una plantilla de Dataflow lista para usar que envíe los datos de BigQuery al Elastic Stack. Esta plantilla reemplaza el procesamiento de datos como la transformación del formato de datos que previamente realizaba Logstash de un modo sin servidor; sin otros cambios para los usuarios que antes usaron el pipeline de ingesta de Elasticsearch.

Si usas BigQuery y el Elastic Stack actualmente, debes instalar un procesador de datos diferente como Logstash o una solución personalizada en una máquina virtual (VM) de Google Compute Engine, y después usar uno de estos procesadores de datos para enviar datos de BigQuery al Elastic Stack. Provisionar una VM e instalar un procesador de datos requiere gastos de procesamiento y gestión. Ahora puedes omitir este paso e ingestar los datos directamente de BigQuery en Elastic con un menú desplegable en Dataflow. Eliminar la fricción es valioso para muchos usuarios; en especial cuando puede hacerse con unos pocos clics en Google Cloud Console.

Este es un resumen del flujo de ingesta de datos. La integración funciona para todos los usuarios, independientemente de que uses el Elastic Stack en Elastic Cloud, Elastic Cloud en Google Cloud Marketplace o un entorno autogestionado.

BigQuery Dataflow
 

Primeros pasos

Para ilustrar lo fácil que es integrar los datos de BigQuery en Elasticsearch, usaremos un set de datos públicos del foro de preguntas y respuestas popular Stack Overflow. Con solo unos clics, puedes ingestar los datos a través del trabajo por batch de Dataflow y comenzar a buscar y analizar en Kibana.

Usamos una tabla llamada stackoverflow_posts en el set de datos stackoverflow de BigQuery. Tiene varios campos estructurados como columnas, como post body, title, comment_count, etc., que importaremos en Elasticsearch para realizar agregación y búsqueda de texto libre.

Google Cloud Platform
 
Crea un trabajo de Dataflow desde una plantilla Selecciona la plantilla BigQuery to Elasticsearch (BigQuery a Elasticsearch) en el menú desplegable, que es una de las plantillas proporcionadas por Google.
cloud-staging de Google Cloud Platform
 
Completa los parámetros requeridos, incluida tu ID de cloud y clave de API codificada en Base64 para Elasticsearch. Puedes encontrar la ID del cloud en la UI de Elastic Cloud, como se muestra a continuación. La clave de API se puede crear usando la API de creación de clave de API.
parámetros de despliegue
 

En el campo Elasticsearch index (Índice de Elasticsearch), elije un nombre de índice en el que se cargarán tus datos. Por ejemplo, usamos el índice stack-posts. Tabla en BigQuery desde la cual leer de la siguiente forma: mi-proyecto:mi-set de datos.mi-tabla. En nuestro ejemplo, esto es bigquery-public-data:stackoverflow.stackoverflow_posts.

crear trabajo a partir de plantilla
 

Haz clic en Run Job (Ejecutar trabajo) para iniciar el procesamiento por batch.

En unos pocos minutos, puedes ver los datos fluyendo al índice de Elasticsearch. Para visualizar estos datos, crea un patrón de índice siguiendo la documentación.

Crea un patrón de índice
 

Y ahora, ve a Discover (Descubrir) en Kibana y comienza a buscar en tus datos.

Discover (Descubrir) en Kibana
 
Visualiza las cinco cubetas principales en cuanto a recuento de comentarios en tu consulta de búsqueda o crea un filtro o un dashboard, todo con el poder de Kibana Lens.
Kibana Lens
 

Resumen

Elastic hace que cada vez haya menos fricción y sea más fácil para los clientes ejecutar donde desean y usar lo que desean; y esta integración optimizada con Google Cloud es el ejemplo más reciente. Elastic Cloud amplía el valor del Elastic Stack, lo que permite a los clientes hacer más, más rápido, y esto lo convierte en la mejor forma de experimentar nuestra plataforma. Para dar los primeros pasos con Elastic en Google Cloud, visita Google Cloud Marketplace o elastic.co.