Ingestion des données de Google BigQuery directement dans Elastic à l'aide de Google Dataflow

blog-thumb-cloud-gcp.png

Nous sommes heureux de vous annoncer que nous prenons désormais en charge l'ingestion des données de BigQuery directement dans la Suite Elastic. Ainsi, les développeurs et les analystes de données peuvent ingérer des données de Google BigQuery dans la Suite Elastic en quelques clics seulement dans Google Cloud Console. En utilisant les modèles Dataflow, les intégrations natives permettent aux clients de simplifier l'architecture de leur pipeline de données et d'éliminer la surcharge au niveau opérationnel liée à l'installation et à la gestion d'agents.

Nombre de développeurs et d'analystes de données utilisent Google BigQuery en tant qu'entrepôt de données et la Suite Elastic comme outil de visualisation des tableaux de bord et de recherche. Pour améliorer l'expérience avec ces deux solutions, Google et Elastic ont travaillé ensemble afin de fournir une méthode simplifiée d'ingestion dans la Suite Elastic des données provenant des vues et des tableaux de BigQuery. Tout cela est possible en quelques clics seulement dans Google Cloud Console, sans nécessiter à aucun moment l'installation d'un agent de transfert de données ni d'outils d'extraction, de transformation et de chargement (ETL ou extract, transform, load).

Dans cet article, nous vous expliquons comment ingérer dans la Suite Elastic des données de Google BigQuery sans aucun agent.

Simplification des cas d'utilisation BigQuery et Elastic

BigQuery est une solution populaire d'entrepôt de données sans serveur qui facilite la centralisation des informations provenant de différentes sources, comme les applications personnalisées, les bases de données, Marketo, NetSuite, Salesforce, les analyses de flux de clics sur le web, voire Elasticsearch. Les utilisateurs peuvent regrouper les ensembles de données provenant de différentes sources, puis exécuter les requêtes SQL afin d'analyser les informations. Il est courant d'utiliser la sortie des tâches SQL de BigQuery afin de créer davantage de vues et de tableaux dans BigQuery ou de créer des tableaux de bord pour les partager avec d'autres parties prenantes et équipes de votre organisation. Tout cela peut se faire à l'aide de Kibana, l'outil natif de visualisation des données d'Elastic.

La recherche full-text est un autre cas d'utilisation important pour BigQuery et la Suite Elastic. Les utilisateurs de BigQuery peuvent ingérer des données dans Elasticsearch, puis mener des recherches et en analyser les résultats à l'aide des API d'Elasticsearch ou de Kibana.

Rationalisation de l'ingestion des données

Google Dataflow est un service sans serveur de messagerie asynchrone fondé sur Apache Beam. Dataflow peut être utilisé à la place de Logstash pour ingérer directement des données provenant de Google Cloud Console. Les équipes de Google et d'Elastic ont travaillé ensemble afin de développer un modèle Dataflow prêt à l'emploi permettant de transférer des données de BigQuery dans la Suite Elastic. Ce modèle se substitue au traitement des données, comme la transformation du format des données auparavant effectuée par Logstash sans serveur. Cela n'entraîne aucun changement pour les utilisateurs qui avaient l'habitude d'utiliser le pipeline d'ingestion d'Elasticsearch.

Si vous utilisez BigQuery et la Suite Elastic aujourd'hui, vous devez installer un outil de traitement des données distinct, comme Logstash ou une solution personnalisée sur une machine virtuelle Google Compute Engine, puis avoir recours à l'un des outils de traitement des données pour envoyer des informations de BigQuery dans la Suite Elastic. Le provisionnement d'une machine virtuelle et l'installation d'une solution de traitement des données entraînent une surcharge au niveau des processus et de la gestion. Désormais, cette étape n'est plus nécessaire. Vous pouvez ingérer directement dans Elastic des données de BigQuery grâce à un menu déroulant dans Dataflow. L'élimination de toute entrave est précieuse pour nombre d'utilisateurs, notamment quand cela peut se faire en quelques clics dans Google Cloud Console.

Vous trouverez ci-dessous une représentation récapitulative du flux d'ingestion des données. Le processus d'intégration s'adapte à tous les utilisateurs, qu'ils exploitent la Suite Elastic sur Elastic Cloud, Elastic Cloud dans Google Cloud Marketplace ou un environnement autogéré.

BigQuery Dataflow

 

Lancez-vous

Pour montrer combien il est simple d'intégrer dans Elasticsearch les données de BigQuery, nous utilisons un ensemble de données publiques provenant de Stack Overflow, un forum populaire de questions-réponses. En seulement quelques clics, vous pouvez ingérer les données via une tâche en lot Dataflow, puis commencer à mener des recherches et des analyses dans Kibana.

Nous avons utilisé un tableau appelé stackoverflow_posts dans le stackoverflow de l'ensemble de données de BigQuery. Il comprend plusieurs champs structurés, comme des colonnes intitulées post body, title ou comment_count, que nous ajouterons dans Elasticsearch pour réaliser des agrégations et une recherche de texte libre.

Google Cloud Platform

 

Créez une tâche Dataflow à l'aide d'un modèle. Dans le menu déroulant, sélectionnez le modèle BigQuery to Elasticsearch qui est fourni par Google.
Mise en service du cloud de Google Cloud Platform

 

Renseignez les paramètres requis, y compris l'identifiant de votre cloud et la clé d'API encodée en Base64 pour Elasticsearch. Vous pouvez trouver l'identifiant du cloud dans l'interface utilisateur d'Elastic Cloud, comme le montre la copie d'écran ci-dessous. Pour créer la clé d'API, utilisez l'API "Create API key" dédiée.
paramètres de déploiement

 

Concernant le champ Elasticsearch index, choisissez un nom d'index où vos données seront chargées. Dans cet exemple, nous avons utilisé l'index stack-posts. Dans BigQuery, le tableau dont les données sont extraites se présente sous la forme suivante : mon-projet:mon-ensemblededonnées.mon-tableau. Dans notre exemple, il s'agit de bigquery-public-data:stackoverflow.stackoverflow_posts.

We're hiring

Work for a global, distributed team where finding someone like you is just a Zoom meeting away. Flexible work with impact? Development opportunities from the start?