El otro día vi el seminario web de OWOX, donde Andrey Osipov (analista web, autor del blog web-analytics.me y profesor de la Escuela de Análisis Web Andrey Osipov) habló sobre su experiencia con el uso de dbt. Habló sobre para quién será útil la herramienta y qué problemas resuelve, y lo más importante, cómo no descarriarse con una jerarquía de tablas compleja y asegurarse de que todos los datos se consideren correctos. Decidí transcribir el webinar en un artículo, porque es más conveniente volver a la información, y está aquí, créanme, vale la pena.
¿Por qué necesitas 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 .
Al pasar a través de Cloud Build, se genera una nueva versión de nuestro Cloud Run y se lanza a través del Cloud Scheduler de acuerdo con el programa requerido.
Fruto del trabajo de dbt, que está en el Cloud Run, todo esto se calcula en BigQuery, desde donde va a Data Studio.
Los registros se pueden agregar a través de ventanas emergentes en Telegram de acuerdo con ciertas reglas, por ejemplo, no todos los push, sino solo algunos cambios importantes.
Dicha infraestructura hace que sea bastante fácil transferir solicitudes de un proyecto en la nube a otro y controlar todo lo que sucede con los cálculos en dbt. Al usar Git, entiende claramente quién en su equipo impulsó qué, dónde, por qué y por qué.