Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
dbtをAirflowで動かす道のりは続く...
Search
Yuu.Kimy
November 28, 2023
Technology
980
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
dbtをAirflowで動かす道のりは続く...
タイミーさんとの合同勉強会で発表させて頂いた資料です。
dbt CoreをAirflow(Cloud Composer)で動かした時の検証結果をまとめています。
Yuu.Kimy
November 28, 2023
More Decks by Yuu.Kimy
See All by Yuu.Kimy
Scheduled Queryの運用を楽にするBotを実装してみたお話
yuukimiya
0
210
Airflow社内勉強会@Classi
yuukimiya
0
210
DPCT発表資料.pdf
yuukimiya
0
9.8k
お家で子どもと楽しむプログラミング
yuukimiya
0
1.5k
Other Decks in Technology
See All in Technology
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
240
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
470
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
170
Tab5をRubyで動くパソコンにする
kishima
2
250
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
160
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
600
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
400
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
160
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
0
210
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
0
100
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
620
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
4
2.6k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Being A Developer After 40
akosma
91
590k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
440
A Tale of Four Properties
chriscoyier
163
24k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Un-Boring Meetings
codingconduct
0
410
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
310
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
260
Transcript
dbtをAirflowで動かす道のりは続く... 分析推進室 Kimiya Yuu
本日のお話 • タイトルの通り、dbt(dbt Core)をAirflowで動かすことを奮闘した記録です。 • まだ、検証段階ですので、不正確な情報が含まれているかもしれません。 ご了承くださいm(_ _)m
背景 • これまでAirflow(Cloud Composer)にて、定常的なバッチ更新で運用してきた。 ◦ 基本は、BigQueryに対するデータ更新処理 • ただ、日常の開発は、やり辛さが発生しており、開発体験が悪い.. ◦ ➜
dbtによる開発に切り替えたい • ただし、定常運用は、既に、オペレーションとしては確立しており、 大きくは変更したくない。 ➜ 学習コストがかかり、キャッチアップに時間がかかるため。 • 上記を踏まえ、dbtをAirflowで動かてみたい!
検討 • 以下の方式が考えられる • 折角、導入するのであれば、dbtで出来る体験をAirflowに持ち込みたい ➜ 上記により、#3で決定 ➜ 個人的に使ってみたかったというのも大いにありw #
dbt 実行概要 気になるポイント 1 dbt Core BashOperator利用 BashOperatorに閉じてしまう.. 2 dbt Cloud DbtCloudRunJobOperator利用 dbt Cloudをまだ導入していない ..& 同上 3 dbt Core Cosmosパッケージ利用 dbtのモデルもDAGの依存関係として表示可
What’s Cosmos ?? • Astronomer社が提供しているOSSであり、Airflow上でdbtを動かすことが可能 • Airflowの画面UIで、dbtのモデルのリネージを可視化できる! 参考: https://astronomer.github.io/astronomer-cosmos/index.html
環境 • 現状、利用している環境を踏まえて、以下を選択 • ※今、弊社で利用しているComposerで動いているAirflowのバージョンと Cosmosのバージョンで、Python的にはコンフリクトすることは無さそう🤗 ◦ Airflow: Cloud Composer
ver. 2.1.14 ◦ Cosmos: ver.1.2.0 ◦ dbt Core: ver.1.3.7 ◦ dbt-bigquery: ver.1.3.0 参考: https://astronomer.github.io/astronomer-cosmos/getting_started/execution-modes-local-conflicts.html
設定・実装 • 設定 ◦ Composer側に、PyPIからCosmosパッケージをインストールする ◦ GCSのディレクトリ構成は以下の通り • 実装 ◦
ドキュメントを参考に、DbtTaskGroup を利用して、 dbtのモデルの実行処理を実装する
ハマったこと • ドキュメント通りに実装しても、エラーが発生した... ◦ ドキュメント&コードはそれなりに読む必要がある ▪ 例: stringで渡すと書いてあったのに、 Pathオブジェクトで渡す必要があり.. (後述)
• dbt -> BigQueryの認証は、profiles.yml を渡して、ProfileConfigを生成すると、 json keyを利用しなくてもOK ◦ profiles.ymlには、BigQueryの実行権限を持つプロジェクトを指定 ◦ 事前に作成していないデータセットに、モデル結果を保存させると、 データセットまで作成するので、データセット生成の権限がないとエラー..
結果 ※補足: 上記の結果は、裏側では、dbt run が実行されている状態。dbt testは試していないですm(_ _)m
参考1
参考2
考察 • 既に、dbtのモデルの運用していたとしても、Cosmosを使った事前検証は必要 • AirflowのDAGの中で、dbtのモデルを表現できるのは強みと思しき ◦ dbtを利用する際は、基本的に、dbtのモデルを意識すれば良い • dbtのプロジェクトをDAGごとに分離できるのも強み ◦
完全に分離するのであれば、Docker/k8sを検討するのが良いと思しき ◦ ↑ただし、モデルの実行時間(全体)が長くなりそう.. • 小〜中規模なデータ分析基盤であれば、dbt + Cosmos + Airflowで十分かも ◦ 今年(2023年)にリリースされ、結構ホットなOSSであるが、 本番利用は慎重に検討したほうが良さそうな予感,,
Thank you for your attention !!