DBT: Eine neue Methode zur Transformation von Daten im Telegraphen

Im letzten Artikel über DBT möchte ich eine Übersetzung des Falls von Stefano Solimito veröffentlichen, in der er über seine Erfahrungen mit diesem Tool bei The Telegraph sprach.





Meine vorherigen Artikel zu DBT:





The Telegraph ist ein 164 Jahre altes Unternehmen, in dem Daten immer eine zentrale Rolle gespielt haben. Mit dem Aufkommen der Cloud und der Notwendigkeit, 2015 eine große Datenmenge zu verarbeiten, haben wir begonnen, unsere Plattform auf der Basis von Google Cloud aufzubauen, und sie im Laufe der Jahre weiter verbessert.





Eine Aufgabe

In den letzten 4 Jahren habe ich mehrere Diskussionen darüber geführt, wie Datentransformationen oder allgemein Extraktions-, Transformations- und Ladeprozesse (ETL) organisiert werden können. Die Anzahl der Tools auf dem Markt ist enorm, und die Auswahl der falschen Technologie kann sich negativ auf die Qualität der Daten und die darauf basierenden Entscheidungen auswirken. 





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, , , .





  • Das Erstellen der Dokumentation für BigQuery dauert aufgrund einer schlechten Implementierung, die alle Segmente im Dataset scannt, sehr lange.





  • DBT deckt nur T in ETL ab, sodass Sie andere Tools benötigen, um Daten zu extrahieren und in das Warehouse zu laden.








All Articles