DBT: una nueva forma de transformar datos en The Telegraph

En el artículo final sobre DBT, quiero compartir una traducción del caso de Stefano Solimito, en el que habló sobre su experiencia de uso de esta herramienta en The Telegraph.





Mis artículos anteriores sobre DBT:





The Telegraph es una empresa de 164 años en la que los datos siempre han tenido un papel central. Con la llegada de la nube y la necesidad de procesar una gran cantidad de datos en 2015, comenzamos a construir nuestra plataforma basada en Google Cloud y la hemos seguido mejorando a lo largo de los años.





Una tarea

Durante los últimos 4 años, he tenido varias discusiones sobre cómo organizar la transformación de datos o, más ampliamente, los procesos de extracción, transformación y carga (ETL). La cantidad de herramientas en el mercado es enorme y elegir la tecnología incorrecta puede afectar negativamente la calidad de los datos y las decisiones basadas en ellos. 





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





  • Se necesita mucho tiempo para crear documentación para BigQuery debido a una implementación deficiente que escanea todos los segmentos del conjunto de datos.





  • DBT solo cubre T en ETL, por lo que necesita otras herramientas para realizar la extracción de datos y la carga en el almacén.








All Articles