Comment BigQuery de Google a démocratisé l'analyse des données. Partie 1

Bonjour, Habr ! Actuellement, il y a une nouvelle session d'inscription pour le cours sur OTUS. «IngĂ©nieur en donnĂ©es»À l'approche du lancement du cours, nous avons traditionnellement prĂ©parĂ© pour vous la traduction d'un matĂ©riel intĂ©ressant.

Chaque jour, plus de cent millions de personnes se rendent sur Twitter pour découvrir ce qui se passe dans le monde et en discuter. Chaque tweet et toute autre action de l'utilisateur génÚrent un événement accessible pour l'analyse interne des données sur Twitter. Des centaines d'employés analysent et visualisent ces données, et améliorer leur expérience est la priorité principale pour l'équipe de la plateforme de données de Twitter.

Nous pensons que les utilisateurs ayant une large gamme de compétences techniques doivent pouvoir trouver des données et avoir accÚs à de bons outils d'analyse et de visualisation basés sur SQL. Cela permettrait à un tout nouveau groupe d'utilisateurs moins techniques, y compris les analystes de données et les chefs de produit, d'extraire des informations des données, leur permettant de mieux comprendre et utiliser les opportunités offertes par Twitter. Ainsi, nous démocratisons l'analyse des données sur Twitter.

À mesure que nos outils et capacitĂ©s d'analyse interne des donnĂ©es s'amĂ©liorent, nous avons Ă©tĂ© tĂ©moins d'une amĂ©lioration du service Twitter. Cependant, il y a encore du chemin Ă  parcourir. Les outils actuels, tels que Scalding, nĂ©cessitent des compĂ©tences en programmation. Les outils d'analyse basĂ©s sur SQL, tels que Presto et Vertica, rencontrent des problĂšmes de performance Ă  grande Ă©chelle. Nous avons Ă©galement un problĂšme de diffusion des donnĂ©es entre plusieurs systĂšmes sans accĂšs permanent Ă  celles-ci.

L'année derniÚre, nous avons annoncé une nouvelle collaboration avec Google, dans le cadre de laquelle nous transférons une partie de notre infrastructure de données sur Google Cloud Platform (GCP). Nous en sommes venus à la conclusion que les outils Google Cloud Big Data peuvent nous aider dans nos initiatives de démocratisation de l'analyse, de la visualisation et de l'apprentissage automatique sur Twitter :

  • BigQuery: un entrepĂŽt de donnĂ©es d'entreprise avec un moteur SQL basĂ© sur Dremel, qui est rĂ©putĂ© pour sa rapiditĂ©, sa simplicitĂ© et qui gĂšre de l'apprentissage automatique.
  • Data Studio : un outil de visualisation de grandes donnĂ©es avec des fonctionnalitĂ©s de collaboration, comme dans Google Docs.

Dans cet article, vous découvrirez notre expérience avec ces outils : ce que nous avons fait, ce que nous avons appris et ce que nous ferons ensuite. Nous nous concentrerons maintenant sur l'analyse par lots et interactive. L'analyse en temps réel sera abordée dans le prochain article.

L'histoire des entrepÎts de données sur Twitter

Avant d'approfondir BigQuery, il vaut la peine de résumer briÚvement l'histoire des entrepÎts de données chez Twitter. En 2011, l'analyse des données chez Twitter était réalisée avec Vertica et Hadoop. Pour créer des travaux MapReduce sous Hadoop, nous utilisions Pig. En 2012, nous avons remplacé Pig par Scalding, qui offrait une API Scala avec des avantages tels que la possibilité de créer des pipelines complexes et la simplicité des tests. Cependant, pour de nombreux analystes de données et chefs de produit, qui se sentaient plus à l'aise avec SQL, la courbe d'apprentissage était assez escarpée. Environ en 2016, nous avons commencé à utiliser Presto comme interface SQL pour les données Hadoop. Spark offrait une interface Python, ce qui en faisait un bon choix pour les recherches ad hoc et l'apprentissage automatique.

Depuis 2018, nous avons utilisé les outils suivants pour l'analyse et la visualisation des données :

  • Scalding pour les pipelines de production
  • Scalding et Spark pour l'analyse ad hoc des donnĂ©es et l'apprentissage automatique
  • Vertica et Presto pour l'analyse SQL ad hoc et interactive
  • Druid pour l'interaction lĂ©gĂšre, la recherche et l'accĂšs Ă  faible latence aux mĂ©triques de sĂ©ries temporelles
  • Tableau, Zeppelin et Pivot pour la visualisation des donnĂ©es

Nous avons découvert que, bien que ces outils offrent des fonctionnalités trÚs puissantes, nous rencontrions des difficultés à rendre ces capacités accessibles à un public plus large au sein de Twitter. En élargissant notre plateforme avec Google Cloud, nous nous concentrons sur la simplification de nos outils d'analyse pour l'ensemble de Twitter.

L'entrepÎt de données BigQuery de Google

Plusieurs équipes chez Twitter ont déjà intégré BigQuery dans certains de leurs pipelines de production. En utilisant leur expérience, nous avons commencé à évaluer les possibilités de BigQuery pour tous les cas d'utilisation de Twitter. Notre objectif était d'offrir BigQuery à l'ensemble de l'entreprise, ainsi que de le standardiser et de le soutenir dans le cadre de l'ensemble des outils de la plateforme de données. Cela s'est avéré difficile pour de nombreuses raisons. Nous devions développer une infrastructure pour recevoir de maniÚre fiable de grands volumes de données, prendre en charge la gestion des données à l'échelle de l'entreprise, garantir un contrÎle d'accÚs approprié et assurer la confidentialité des clients. Nous avons également dû créer des systÚmes pour la répartition des ressources, la surveillance et la facturation, afin que les équipes puissent utiliser efficacement BigQuery.

En novembre 2018, nous avons lancĂ© la version alpha de BigQuery et Data Studio pour toute l'entreprise. Nous avons proposĂ© Ă  nos employĂ©s Twitter certains de nos tableaux les plus frĂ©quemment utilisĂ©s, contenant des donnĂ©es personnelles anonymisĂ©es. Plus de 250 utilisateurs de diffĂ©rentes Ă©quipes, y compris celles de l'ingĂ©nierie, des finances et du marketing, ont utilisĂ© BigQuery. Plus rĂ©cemment, ils ont effectuĂ© environ 8 000 requĂȘtes, traitant environ 100 Po de donnĂ©es par mois, sans compter les requĂȘtes planifiĂ©es. AprĂšs avoir reçu des retours trĂšs positifs, nous avons dĂ©cidĂ© d'aller de l'avant et de proposer BigQuery comme ressource principale pour l'interaction avec les donnĂ©es chez Twitter.

Voici un schéma de l'architecture de haut niveau de notre entrepÎt de données Google BigQuery.

Comment BigQuery de Google a démocratisé l'analyse des données. Partie 1
Nous copions des données depuis des clusters Hadoop locaux vers Google Cloud Storage (GCS) en utilisant notre outil interne Cloud Replicator. Nous utilisons ensuite Apache Airflow pour créer des pipelines qui utilisent «bq_load» pour charger des données depuis GCS vers BigQuery. Nous utilisons Presto pour interroger des ensembles de données Parquet ou Thrift-LZO dans GCS. BQ Blaster est un outil interne de Scalding pour charger des ensembles de données HDFS Vertica et Thrift-LZO dans BigQuery.

Dans les sections suivantes, nous discuterons de notre approche et de nos connaissances en matiÚre de facilité d'utilisation, de performance, de gestion des données, de disponibilité du systÚme et de coût.

Simplicité d'utilisation

Nous avons constatĂ© qu'il Ă©tait facile pour les utilisateurs de commencer avec BigQuery, car il ne nĂ©cessitait pas d'installation de logiciel et les utilisateurs pouvaient y accĂ©der via une interface web intuitive. Cependant, les utilisateurs devaient se familiariser avec certaines fonctionnalitĂ©s de GCP et ses concepts, y compris des ressources telles que les projets, les ensembles de donnĂ©es et les tables. Nous avons dĂ©veloppĂ© des supports de formation et des tutoriels pour aider les utilisateurs Ă  dĂ©marrer. Avec une comprĂ©hension de base acquise, les utilisateurs ont trouvĂ© facile de naviguer dans les ensembles de donnĂ©es, d'examiner le schĂ©ma et les donnĂ©es des tables, d'exĂ©cuter des requĂȘtes simples et de visualiser les rĂ©sultats dans Data Studio.

Notre objectif concernant l'importation de donnĂ©es dans BigQuery Ă©tait de permettre le chargement fluide d'ensembles de donnĂ©es HDFS ou GCS en un clic. Nous avons envisagĂ© Cloud Composer (Airflow gĂ©rĂ©), mais nous n'avons pas pu l'utiliser en raison de notre modĂšle de sĂ©curitĂ© «Partage Restreint au Domaine» (plus de dĂ©tails dans la section «Gestion des donnĂ©es» ci-dessous). Nous avons expĂ©rimentĂ© l'utilisation de Google Data Transfer Service (DTS) pour organiser des tĂąches de charge dans BigQuery. Bien que DTS soit rapide Ă  configurer, il n'Ă©tait pas flexible pour construire des pipelines avec des dĂ©pendances. Pour notre version alpha, nous avons créé notre propre environnement Apache Airflow dans GCE et nous le prĂ©parons Ă  ĂȘtre opĂ©rationnel en production et capable de prendre en charge davantage de sources de donnĂ©es, comme Vertica.

Pour transformer des donnĂ©es dans BigQuery, les utilisateurs crĂ©ent de simples pipelines de donnĂ©es SQL, en utilisant des requĂȘtes planifiĂ©es. Pour des pipelines complexes avec des dĂ©pendances, nous prĂ©voyons d'utiliser soit notre propre infrastructure Airflow, soit Cloud Composer avec Cloud Dataflow.

Performance

BigQuery est conçu pour des requĂȘtes SQL gĂ©nĂ©rales qui traitent de grands volumes de donnĂ©es. Il n'est pas destinĂ© Ă  des requĂȘtes Ă  faible latence, Ă  haute bande passante, nĂ©cessaires pour une base de donnĂ©es transactionnelle, ou pour l'analyse de sĂ©ries temporelles Ă  faible latence, rĂ©alisĂ©e par Apache Druid. Pour des requĂȘtes d'analyse interactive, nos utilisateurs s'attendent Ă  un temps de rĂ©ponse de moins d'une minute. Nous devions concevoir l'utilisation de BigQuery de maniĂšre Ă  satisfaire ces attentes. Pour garantir des performances prĂ©visibles pour nos utilisateurs, nous avons utilisĂ© les fonctionnalitĂ©s de BigQuery disponibles pour les clients sur un paiement fixe, qui permettent aux propriĂ©taires de projets de rĂ©server des slots minimum pour leurs requĂȘtes. Slot BigQuery est une unitĂ© de puissance de calcul nĂ©cessaire pour l'exĂ©cution de requĂȘtes SQL.

Nous avons analysĂ© plus de 800 requĂȘtes traitant environ 1 To de donnĂ©es chacune et avons constatĂ© que le temps d'exĂ©cution moyen Ă©tait de 30 secondes. Nous avons Ă©galement dĂ©couvert que la performance dĂ©pendait fortement de l'utilisation de notre crĂ©neau dans divers projets et tĂąches. Nous devions clairement diffĂ©rencier nos rĂ©serves de crĂ©neaux de production et ad hoc pour maintenir la performance dans les scĂ©narios d'utilisation en production et l'analyse interactive. Cela a eu un impact important sur notre conception de la rĂ©servation de crĂ©neaux et de la hiĂ©rarchie des projets.

Nous aborderons la gestion des donnĂ©es, les fonctionnalitĂ©s et les coĂ»ts des systĂšmes dans les prochains jours lors de la deuxiĂšme partie de la traduction, mais pour l'instant, nous invitons tous les intĂ©ressĂ©s Ă  participer Ă  un webinaire en direct gratuit, au cours duquel vous pourrez en apprendre davantage sur le cours et poser des questions Ă  notre expert — Egor Mateshuk (Senior Data Engineer, MaximaTelecom).

Lire aussi :

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster