Neulich habe ich mir das OWOX-Webinar angesehen, in dem Andrey Osipov (Webanalyst, Autor des Blogs web-analytics.me und Dozent an der Andrey Osipov School of Web Analytics) über seine Erfahrungen mit der Verwendung von dbt sprach. Er sprach darüber, für wen das Tool nützlich sein wird und welche Probleme es löst, und vor allem darüber, wie man mit einer komplexen Tabellenhierarchie nicht in die Irre geht und sicherstellt, dass alle Daten als korrekt angesehen werden. Ich habe beschlossen, das Webinar in einen Artikel zu übertragen, weil es bequemer ist, zu den Informationen zurückzukehren, und es ist hier, glauben Sie mir, es lohnt sich.
Warum brauchst du dbt?
SQL-? Google BigQuery, Google Cloud , , scheduled queries.
, ( ) 2-4 , .
, .
. , CRM, , , , Google BigQuery .
, — . , , , , .
, . , , — .
( scheduled queries) :
. scheduled query , . , , . , 5 . - , 7 . . - , 40.
. Google Docs , , .. , . , . .
. , , , Google BigQuery . , . , . - . , timestamp .
SQL. , , . BigQuery. , dbt GBQ 20 , . , .
. , dbt.
dbt (data build tool)
SQL , . dbt? -, , -, , . , .
:
dbt.
:
.
, . Cloud Functions, Cloud Run, OWOX BI Pipeline .
, : , , .
, 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 :
Atom , .
Cloud .
Beim Durchlaufen von Cloud Build wird eine neue Version unseres Cloud Run generiert und über den Cloud Scheduler gemäß dem erforderlichen Zeitplan gestartet.
Aufgrund der Arbeit von dbt, die sich im Cloud Run befindet, wird all dies in BigQuery berechnet, von wo aus es zu Data Studio geht.
Protokolle können über Popups in Telegramm nach bestimmten Regeln hinzugefügt werden - zum Beispiel nicht alle Pushs, sondern nur einige wichtige Änderungen.
Eine solche Infrastruktur macht es ziemlich einfach, Anforderungen von einem Cloud-Projekt in ein anderes zu übertragen und alles zu steuern, was mit Berechnungen in dbt geschieht. Durch die Verwendung von Git verstehen Sie klar, wer in Ihrem Team was, wo, warum und warum gepusht hat.