先日、OWOXウェビナーを見ました。そこでは、Andrey Osipov(Webアナリスト、web-analytics.meブログの作成者、Andrey Osipov School of Web Analyticsの講師)がdbtの使用経験について話しました。彼は、ツールが誰に役立つのか、どのような問題を解決するのか、そして最も重要なこととして、複雑なテーブル階層に惑わされないようにし、すべてのデータが正しいと見なされるようにする方法について話しました。ウェビナーを記事に書き写すことにしました。情報に戻る方が便利であり、それだけの価値があると信じています。
なぜ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 .
Cloud Buildをプッシュすると、新しいバージョンのCloud Runが生成され、必要なスケジュールに従ってCloudSchedulerを介して起動されます。
Cloud Runにあるdbtの作業の結果、これはすべてBigQueryで計算され、そこからDataStudioに送られます。
ログは、特定のルールに従ってTelegramのポップアップを介して追加できます。たとえば、すべてのプッシュではなく、一部の重要な変更のみです。
このようなインフラストラクチャにより、あるクラウドプロジェクトから別のクラウドプロジェクトにリクエストを転送し、dbtでの計算で発生するすべてを制御することが非常に簡単になります。Gitを使用することで、チームの誰が何を、どこで、なぜ、そしてなぜプッシュしたかを明確に理解できます。