DBT: une nouvelle façon de transformer les données dans le télégraphe

Dans le dernier article sur DBT, je souhaite partager une traduction de l'affaire par Stefano Solimito, dans laquelle il a parlé de son expérience d'utilisation de cet outil au Telegraph.





Mes précédents articles sur DBT:





Le Telegraph est une entreprise de 164 ans dans laquelle les données ont toujours joué un rôle central. Avec l'avènement du cloud et la nécessité de traiter une énorme quantité de données en 2015, nous avons commencé à construire notre plateforme basée sur Google Cloud et avons continué à l'améliorer au fil des ans.





Une tâche

Au cours des 4 dernières annĂ©es, j'ai eu plusieurs discussions sur la manière d'organiser la transformation des donnĂ©es ou, plus largement, les processus d'extraction, de transformation et de chargement (ETL). Le nombre d'outils sur le marchĂ© est Ă©norme et le choix de la mauvaise technologie peut affecter nĂ©gativement la qualitĂ© des donnĂ©es et les dĂ©cisions qui en dĂ©coulent. 





The Telegraph Cloud Storage BigQuery. Google, ETL Dataflow (Apache Beam). . , , , .





Apache Beam :





  • Java SDK , Python SDK. Python, Java — . , data scientists Python, , .





  • , , BigQuery. , Apache Beam ETL.





  • Dataflow Google, 2015 , AWS, ..





  • , , SQL, , SQL Java Python.





: - Apache Beam, .





Google Cloud Platform (GCP), , , Dataproc. Spark Hadoop GCP, . Hadoop, .





, - — Talend ( ). , , , :





  • .





  • CI/CD, .





  • , , . , .





  • Talend, .





  • ETL , , .





Python ETL , Google AWS, . . , , , . -, .





2019 DBT Python Apache Beam .





DBT

DBT (Data Building Tool) — , , .





DBT T () ETL-, (E) (L). . DBT 280 , The Telegraph .





DBT — , SQL-, .





, :





  • Postgres





  • Redshift





  • BigQuery





  • Snowflake





  • Presto





DBT pip ( Python). : (CLI) (UI). DBT Python , .





CLI : , , ..





UI .





, DBT . , . , , .





DBT : «dbt init» . , data- . 





DBT . , (dbt_project.yml), .





DBT . — , , . (DW). Jinja2, :





  • .





  • SQL , .





  • , .





, BigQuery Standard SQL.





Jinja , , . Jinja , , .





DBT . , , , . , , , , , .





data-driven , , . DBT , .





YAML, , .





:





  • sk_interaction, bk_source_driver .





  • count_interactions





  • fk_interaction_detail , , fk_interaction_detail sk_interaction_detail. , .





  • fk_interaction_text .





  • Performance_band .





SQL.





, «bk_source_driver» «fact_interaction» 5% , NULL.





DBT . YAML , DBT.





, Sharded BigQuery Tables. . «execution_date» DBT , .





DBT (), , , SQL .





«execution_date» , .





Telegraph DBT ( ) . , . , .





:

  • , .





  • .





  • DBT .





  • . SQL Python, , DBT.





  • DBT. .





  • . , BigQuery Snowflake.





  • - DBT .





  • ( , , ) .





  • . , .





  • , .





:

  • SQL: .





  • . , DBT. UI, , , .





  • La crĂ©ation de la documentation pour BigQuery prend beaucoup de temps en raison d'une mise en Ĺ“uvre mĂ©diocre qui analyse tous les segments de l'ensemble de donnĂ©es.





  • DBT ne couvre que T dans ETL, vous avez donc besoin d'autres outils pour effectuer l'extraction et le chargement des donnĂ©es dans l'entrepĂ´t.








All Articles