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

Salut Habr ! L'inscription à un nouveau volet de cours est ouverte dÚs maintenant chez OTUS. Ingénieur de données. En prévision du début du cours, nous avons traditionnellement préparé pour vous une traduction du matériel intéressant.

Chaque jour, plus de cent millions de personnes visitent 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Úre un événement disponible pour l'analyse des données internes au sein de Twitter. Des centaines d'employés analysent et visualisent ces données, et l'amélioration de leur expérience est une priorité absolue pour l'équipe Twitter Data Platform.

Nous pensons que les utilisateurs possĂ©dant un large Ă©ventail de compĂ©tences techniques devraient ĂȘtre capables de trouver des donnĂ©es et d'avoir accĂšs Ă  des outils d'analyse et de visualisation basĂ©s sur SQL qui fonctionnent bien. Cela permettrait Ă  un tout nouveau groupe d'utilisateurs moins techniques, notamment des analystes de donnĂ©es et des chefs de produits, d'extraire des informations Ă  partir des donnĂ©es, leur permettant ainsi de mieux comprendre et utiliser la puissance de Twitter. C’est ainsi que nous dĂ©mocratisons l’analyse des donnĂ©es sur Twitter.

À mesure que nos outils et nos capacitĂ©s d'analyse des donnĂ©es internes se sont amĂ©liorĂ©s, nous avons constatĂ© une amĂ©lioration du service Twitter. Cependant, des amĂ©liorations sont encore possibles. Les outils actuels comme Scalding nĂ©cessitent une expĂ©rience en programmation. Les outils d'analyse basĂ©s sur SQL tels que Presto et Vertica prĂ©sentent des problĂšmes de performances Ă  grande Ă©chelle. Nous avons Ă©galement un problĂšme avec la distribution des donnĂ©es sur plusieurs systĂšmes sans accĂšs constant Ă  celles-ci.

L'annĂ©e derniĂšre, nous avons annoncĂ© nouvelle collaboration avec Google, au sein duquel nous transfĂ©rons une partie de notre infrastructure de donnĂ©es sur la plateforme Google Cloud (GCP). Nous avons conclu que les outils Google Cloud Big Data peuvent nous aider dans nos initiatives visant Ă  dĂ©mocratiser l'analyse, la visualisation et l'apprentissage automatique sur Twitter :

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 allons maintenant nous concentrer sur les analyses par lots et interactives. L'analyse en temps réel sera abordée dans le prochain article.

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

Avant de plonger dans BigQuery, il convient de raconter briĂšvement l'histoire des entrepĂŽts de donnĂ©es sur Twitter. En 2011, l'analyse des donnĂ©es sur Twitter a Ă©tĂ© rĂ©alisĂ©e dans Vertica et Hadoop. Pour crĂ©er des tĂąches MapReduce Hadoop, nous avons utilisĂ© Pig. En 2012, nous avons remplacĂ© Pig par Scalding, qui disposait d'une API Scala offrant des avantages tels que la possibilitĂ© de crĂ©er des pipelines complexes et la facilitĂ© des tests. Cependant, pour de nombreux analystes de donnĂ©es et chefs de produits plus Ă  l’aise avec SQL, la courbe d’apprentissage a Ă©tĂ© assez abrupte. Vers 2016, nous avons commencĂ© Ă  utiliser Presto comme interface SQL pour les donnĂ©es Hadoop. Spark propose une interface Python qui en fait un bon choix pour la science des donnĂ©es ad hoc et l'apprentissage automatique.

Depuis 2018, nous utilisons les outils suivants pour l'analyse et la visualisation des donnĂ©es :

  • Ébouillantage pour les lignes de production
  • Scalding et Spark pour l'analyse de donnĂ©es ad hoc et l'apprentissage automatique
  • Vertica et Presto pour une analyse SQL ad hoc et interactive
  • Druid pour un accĂšs peu interactif, exploratoire et Ă  faible latence aux mĂ©triques de sĂ©ries chronologiques
  • Tableau, Zeppelin et Pivot pour la visualisation des donnĂ©es

Nous avons constatĂ© que mĂȘme si ces outils offrent des fonctionnalitĂ©s trĂšs puissantes, nous avons eu du mal Ă  rendre ces fonctionnalitĂ©s accessibles Ă  un public plus large sur Twitter. En Ă©tendant 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 de Twitter ont déjà inclus BigQuery dans certains de leurs pipelines de production. Grùce à leur expérience, nous avons commencé à évaluer les possibilités de BigQuery pour tous les cas d'utilisation de Twitter. Notre objectif était de proposer BigQuery à l'ensemble de l'entreprise, ainsi que de le standardiser et de le prendre en charge au sein de la boßte à outils Data Platform. Cela a été difficile pour de nombreuses raisons. Nous devions développer une infrastructure capable de recevoir de maniÚre fiable de grandes quantités de données, de prendre en charge la gestion des données à l'échelle de l'entreprise, de garantir des contrÎles d'accÚs appropriés et de garantir la confidentialité des clients. Nous avons également dû créer des systÚmes d'allocation, de surveillance et de rétrofacturation des ressources afin que les équipes puissent utiliser BigQuery efficacement.

En novembre 2018, nous avons publiĂ© une version alpha de BigQuery et Data Studio pour l'ensemble de l'entreprise. Nous avons proposĂ© au personnel de Twitter certaines de nos feuilles de calcul d'effacement des donnĂ©es personnelles les plus utilisĂ©es. BigQuery a Ă©tĂ© utilisĂ© par plus de 250 utilisateurs issus de diverses Ă©quipes, notamment d'ingĂ©nierie, de finance et de marketing. Plus rĂ©cemment, ils traitaient environ 8 100 requĂȘtes, traitant environ XNUMX Po 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 principale ressource pour interagir avec les donnĂ©es sur 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 les données des clusters Hadoop sur site vers Google Cloud Storage (GCS) à l'aide de l'outil interne Cloud Replicator. Nous utilisons ensuite Apache Airflow pour créer des pipelines qui utilisent "bq_load» pour charger les données de GCS dans BigQuery. Nous utilisons Presto pour interroger les ensembles de données Parquet ou Thrift-LZO dans GCS. BQ Blaster est un outil Scalding interne permettant de charger des ensembles de données HDFS Vertica et Thrift-LZO dans BigQuery.

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

Facilité d'utilisation

Nous avons constatĂ© qu'il Ă©tait facile pour les utilisateurs de dĂ©marrer 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 et concepts de GCP, notamment des ressources telles que des projets, des ensembles de donnĂ©es et des tables. Nous avons dĂ©veloppĂ© des tutoriels et des tutoriels pour aider les utilisateurs Ă  dĂ©marrer. Une fois les connaissances de base acquises, il est facile pour les utilisateurs de parcourir les ensembles de donnĂ©es, d'afficher les donnĂ©es de schĂ©ma et de table, d'exĂ©cuter des requĂȘtes simples et de visualiser les rĂ©sultats dans Data Studio.

Notre objectif avec la saisie de donnĂ©es dans BigQuery Ă©tait de permettre un chargement transparent des ensembles de donnĂ©es HDFS ou GCS en un seul clic. Nous avons considĂ©rĂ© Compositeur cloud (gĂ©rĂ© par Airflow) mais nous n'avons pas pu l'utiliser en raison de notre modĂšle de sĂ©curitĂ© « Partage restreint de domaine » (plus d'informations Ă  ce sujet dans la section Gestion des donnĂ©es ci-dessous). Nous avons expĂ©rimentĂ© l'utilisation du service de transfert de donnĂ©es Google (DTS) pour organiser les tĂąches de chargement BigQuery. Bien que DTS ait Ă©tĂ© rapide Ă  mettre en place, il n’était pas flexible pour crĂ©er des pipelines avec des dĂ©pendances. Pour notre version alpha, nous avons créé notre propre environnement Apache Airflow dans GCE et le prĂ©parons pour la production et la possibilitĂ© de prendre en charge davantage de sources de donnĂ©es telles que Vertica.

Pour transformer des donnĂ©es dans BigQuery, les utilisateurs crĂ©ent des pipelines de donnĂ©es SQL simples Ă  l'aide de requĂȘtes planifiĂ©es. Pour les pipelines complexes Ă  plusieurs Ă©tapes avec des dĂ©pendances, nous prĂ©voyons d'utiliser soit notre propre framework Airflow, soit Cloud Composer avec Flux de donnĂ©es cloud.

Performance

BigQuery est conçu pour les requĂȘtes SQL Ă  usage gĂ©nĂ©ral qui traitent de grandes quantitĂ©s de donnĂ©es. Il n'est pas destinĂ© aux requĂȘtes Ă  faible latence et Ă  haut dĂ©bit requises par une base de donnĂ©es transactionnelle, ni Ă  l'analyse de sĂ©ries temporelles Ă  faible latence mise en Ɠuvre par Druide Apache. Pour les requĂȘtes analytiques interactives, nos utilisateurs s’attendent Ă  un temps de rĂ©ponse infĂ©rieur Ă  une minute. Nous avons dĂ» concevoir l'utilisation de BigQuery pour rĂ©pondre Ă  ces attentes. Afin de fournir des performances prĂ©visibles Ă  nos utilisateurs, nous avons utilisĂ© la fonctionnalitĂ© BigQuery, disponible pour les clients sur une base forfaitaire, qui permet aux propriĂ©taires de projets de rĂ©server un minimum d'emplacements pour leurs requĂȘtes. fente BigQuery est une unitĂ© de puissance de calcul nĂ©cessaire pour exĂ©cuter des requĂȘtes SQL.

Nous avons analysĂ© plus de 800 requĂȘtes traitant chacune environ 1 To de donnĂ©es et avons constatĂ© que le temps d'exĂ©cution moyen Ă©tait de 30 secondes. Nous avons Ă©galement appris que les performances dĂ©pendent fortement de l'utilisation de notre emplacement dans divers projets et tĂąches. Nous avons dĂ» clairement sĂ©parer nos rĂ©serves de slots de production et ad hoc afin de maintenir les performances pour les cas d'utilisation en production et l'analyse interactive. Cela a grandement influencĂ© notre conception des rĂ©servations de crĂ©neaux horaires et des hiĂ©rarchies de projets.

Nous parlerons de la gestion des donnĂ©es, des fonctionnalitĂ©s et du coĂ»t des systĂšmes dans les prochains jours dans la deuxiĂšme partie de la traduction, et maintenant nous invitons tout le monde Ă  webinaire en direct gratuit, oĂč vous pourrez en savoir plus sur le cours et poser des questions Ă  notre expert - Egor Mateshuk (Senior Data Engineer, MaximaTelecom).

Lire la suite:

Source: habr.com

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