Trabalhar com dbt com tecnologia Google BigQuery

Outro dia assisti ao webinar OWOX, onde Andrey Osipov (analista da web, autor do blog web-analytics.me e palestrante na Escola de Análise da Web de Andrey Osipov) falou sobre sua experiência no uso de dbt. Ele falou sobre para quem a ferramenta será útil e quais problemas ela resolve e, o mais importante, como não se extraviar com uma hierarquia de tabelas complexa e ter certeza de que todos os dados são considerados corretos. Resolvi transcrever o webinar em artigo, porque é mais conveniente voltar às informações, e aqui, acredite, vale a pena.





Por que você precisa de dbt

SQL-? Google BigQuery, Google Cloud , , scheduled queries.





, ( ) 2-4 , . 





, .





. , CRM, , , , Google BigQuery .





, — . , , , , . 





, . , , — . 





( scheduled queries) : 





  1. . scheduled query , . , , . , 5 . - , 7 . . - , 40.





  2. . Google Docs , , .. , . , . .





  3. . , , , Google BigQuery . , . , . - . , timestamp . 





  4. SQL. , , . BigQuery. , dbt GBQ 20 , . , .





. , dbt. 





dbt (data build tool)

SQL , . dbt? -, , -, , . , . 









dbt.









  1. .





  2. , . Cloud Functions, Cloud Run, OWOX BI Pipeline .





  3. , : , , .





  4. , BI- - . 





dbt — , , . , scheduled queries.





dbt

dbt : . 





— , , view table.





(.sql) — , SELECT-.





, . , (, ) descriptions . 





, BigQuery. , , GBQ.





(.yml) — , , , .





dbt CLI

dbt : cloud. , Google Cloud . 





. — dbt run, . . dbt run, dbt test, , , .





dbt Cloud Source Repositories GitHub. cloud-, dbt . 





dbt : 





  • , Atom, , , , . - . 





  • git push . dbt Cloud Build .





, , - . 





dbt Cloud

, dbt Cloud. - . , , . , . . , — $50 . 





dbt 

(Refs…)

— . dbt . , -, , -, (Directed Acyclic Graph). 





(Directed Acyclic Graph)

, dbt. , . , , Google BigQuery. , 2-3 , , . 





dbt , . . , . - , .





, , - . , ( , ), . , . 





(Loops)

Jinja. . , , . .





, Google Analytics , , . , - , . . 





, dbt , .. — , , . , . , , . 





(Variables)

dbt : . 





(Macros)

, «Macros». . , , . , . 





, dbt .





, , , , .. , - . 





Incremental

, . 





, dbt. BigQuery , select * from [ ], . , GA 4 OWOX BI , . , .





dbt (, order_id), . 





, GA 4 , events, . , , . intraday events . 





, , . , . , (- ), . , , . 





, , . . 





, , .





, dbt:





  • Not Null.





  • Unique.





  • Reference Integrity — (, customer_id orders id customers).





  • .





  • Custom data tests.





— , , . 





dbt . descriptions, , , , , , Google BigQuery. 





.





DEV — TEST — PROD

dbt . , , , , , . , Google BigQuery.





Git

dbt Git, GitHub Google Cloud Source Repositories, , .





(Logging via webhooks)

- pop-up Google Cloud, . GBQ , .





dbt

dbt loud

dbt cloud : , , - cron. . , , - . , , . 





schedule, .





Google Cloud — Cloud Shell

dbt. Google Cloud , Cloud Shell. , AppEngine. dbt , AppEngine. 





, , , . , .





Google Cloud — Cloud Run

dbt, Google Cloud Cloud Run : 





  1. Atom , .





  2. Cloud .





  3. Ao passar pelo Cloud Build, uma nova versão do nosso Cloud Run é gerada e lançada por meio do Cloud Scheduler de acordo com a programação necessária. 





  4. Como resultado do trabalho da dbt, que está no Cloud Run, tudo isso é calculado no BigQuery, de onde segue para o Data Studio. 





  5. Os logs podem ser adicionados por meio de pop-ups no Telegram de acordo com certas regras - por exemplo, nem todos os push, mas apenas algumas alterações importantes. 





Essa infraestrutura torna muito fácil transferir solicitações de um projeto de nuvem para outro e controlar tudo o que acontece com cálculos em dbt. Ao usar o Git, você entende claramente quem em sua equipe empurrou o quê, onde, por que e por quê.








All Articles