Share
Embed
dbt Cloudの新機能を紹介!データエンジニアリングの民主化:GUIで操作、SQLで管理する新時代のdbt Cloud
2025/6/5に開催された「dbt Cloudの新機能を紹介!データエンジニアリングの民主化:GUIで操作、SQLで管理する新時代のdbt Cloud」の登壇資料です
https://events.classmethod.jp/seminar/250605-dbt-cloud-webinar/
Sagara
June 12, 2025
Transcript
39 slides
-
⾃⼰紹介 2 • 2020年9⽉ ⼊社 ◦ Modern Data Stackに該当する製品の 技術⽀援‧プリセールスを担当 ◦
新しい技術情報を定期的に収集し、 ブログで情報発信 • 部署‧役割 ◦ Modern Data Stackチーム テックリード • 名前(ニックネーム) ◦ 相樂 悟 (さがら) -
⽬次 3 • 昨今の「データ変換処理の開発」における問題 ◦ 「コードベースの開発」の問題 ◦ 「GUIベースの開発」の問題 • dbt
Cloud概要 ◦ 概要&dbt Cloudにより解決できた問題 ◦ dbt Cloudにより解決できていない問題 • dbt Cloudの新機能「Canvas ※旧称:Visual Editor」 ◦ 機能紹介&Canvasにより解決できる問題 ◦ デモ • その他:dbt Cloud新機能紹介 • まとめ -
⽬次 4 • 昨今の「データ変換処理の開発」における問題 ◦ 「コードベースの開発」の問題 ◦ 「GUIベースの開発」の問題 • dbt
Cloud概要 ◦ 概要&dbt Cloudにより解決できた問題 ◦ dbt Cloudにより解決できていない問題 • dbt Cloudの新機能「Canvas ※旧称:Visual Editor」 ◦ 機能紹介&Canvasにより解決できる問題 ◦ デモ • その他:dbt Cloud新機能紹介 • まとめ -
「データ変換処理の開発」コードベースの問題 その1 6 開発‧本番の切り分けにはGitのコマンドスキルが必要 • コードベースで開発‧本番を切り分けするには、Gitがほぼ必須 • Gitざっくり概要 ◦ ブランチという概念で「フォルダの中⾝」を 丸ごと切り出して、ブランチごとに変更履歴を
保存し、いつでも保存時点に戻せる ◦ ブランチは、本番⽤ブランチ、 開発⽤ブランチ、と分けて使うことが多い • 右図は、開発⽤ブランチを切って開発し、 リモートリポジトリに反映するまでの⼀連の流れ -
「データ変換処理の開発」コードベースの問題 その3 8 特にPythonの場合、⾼度なスキルが必要 • Pythonの開発環境の構築をどうするか? ◦ uv、poetry + pyenv、etc •
Pythonの処理の実⾏基盤はどうするか? ◦ オンプレミス、AWS上の仮想マシン、AWS上のサーバーレスサービス、etc • 使⽤するライブラリはどうするか? ◦ Pandas、Spark、Polars、etc • エラーハンドリングをどうするか? -
⽬次 9 • 昨今の「データ変換処理の開発」における問題 ◦ 「コードベースの開発」の問題 ◦ 「GUIベースの開発」の問題 • dbt
Cloud概要 ◦ 概要&dbt Cloudにより解決できた問題 ◦ dbt Cloudにより解決できていない問題 • dbt Cloudの新機能「Canvas ※旧称:Visual Editor」 ◦ 機能紹介&Canvasにより解決できる問題 ◦ デモ • その他:dbt Cloud新機能紹介 • まとめ -
「データ変換処理の開発」GUIベース イメージ 10 • 下図のように、各処理をノードでつなぎ合わせて開発していく テーブルA ロード テーブルB ロード テーブルA カラム名変更
テーブルA&B 結合 テーブルC 集計 テーブルC アウトプット -
「データ変換処理の開発」GUIベースの問題 その2 12 開発‧本番の切り替えに対応しているツールがほぼない • 開発‧本番を1つのワークフロー上で切り替える⽅法が 提供されているツールはほぼありません • ファイルベースでワークフロー管理 ◦ 「_開発」「_本番」のようにファイル名で管理する
• ツールの画⾯上でワークフロー管理 ◦ 複製して、「_開発」「_本番」のようにワークフロー名で管理する -
「データ変換処理の開発」における問題 まとめ 14 • コードベースの問題 ◦ 開発‧本番の切り分けにはGitのコマンドスキルが必要 ◦ 処理の依存関係の構築‧管理が難しい ◦ 特にPythonの場合、⾼度なスキルが必要
• GUIベースの問題 ◦ 開発内容のブラックボックス化 ◦ 開発‧本番の切り替えに対応しているツールがほぼない ◦ ツール固有の知識が付いて他の領域に活かしづらい -
⽬次 15 • 昨今の「データ変換処理の開発」における問題 ◦ 「コードベースの開発」の問題 ◦ 「GUIベースの開発」の問題 • dbt
Cloud概要 ◦ 概要&dbt Cloudにより解決できた問題 ◦ dbt Cloudにより解決できていない問題 • dbt Cloudの新機能「Canvas ※旧称:Visual Editor」 ◦ 機能紹介&Canvasにより解決できる問題 ◦ デモ • その他:dbt Cloud新機能紹介 • まとめ -
dbt Cloud概要 16 • SELECT⽂を知っていれば、誰でもデータ変換処理の開発を⾏えるサービス ◦ dbt run/buildのようなコマンドで、各SELECT⽂がCTAS⽂に変換されて実⾏ • 特別な知識&スキル不要で、ソフトウェア開発の⼿法を取り⼊れた開発が可能
◦ バージョン管理、CI/CD、⾃動テスト、ドキュメント管理、etc -
dbt Cloudにより解決できた問題:コードベースの問題 17 • コードベースの問題 ⇛ 解決! ◦ 開発‧本番の切り分けにはGitのコマンドスキルが必要 ◦ 処理の依存関係の構築‧管理が難しい ◦
特にPythonの場合、⾼度なスキルが必要 • GUIベースの問題 ◦ 開発内容のブラックボックス化 ◦ 開発‧本番の切り替えに対応しているツールがほぼない ◦ ツール固有の知識が付いて他の領域に活かしづらい -
dbt Cloudにより解決できた問題:コードベースの問題 その3 20 特にPythonの場合、⾼度なスキルが必要 ⇛ dbt Cloudならば、SELECT⽂の知識があれば開発可能 補⾜:ref関数やデータテスト機能など、dbt固有機能の理解は必要となります • dbt固有機能の例:データテスト ◦
unique:対象カラムの値が⼀意か ◦ not_null:対象カラムにnullがないか ◦ accepted_values: 指定した値の⼀覧から対象カラムの値 が構成されているか -
⽬次 21 • 昨今の「データ変換処理の開発」における問題 ◦ 「コードベースの開発」の問題 ◦ 「GUIベースの開発」の問題 • dbt
Cloud概要 ◦ 概要&dbt Cloudにより解決できた問題 ◦ dbt Cloudにより解決できていない問題 • dbt Cloudの新機能「Canvas ※旧称:Visual Editor」 ◦ 機能紹介&Canvasにより解決できる問題 ◦ デモ • その他:dbt Cloud新機能紹介 • まとめ -
dbt Cloudにより解決できていない問題:GUIベースの問題 22 • コードベースの問題 ◦ 開発‧本番の切り分けにはGitのコマンドスキルが必要 ◦ 処理の依存関係の構築‧管理が難しい ◦
特にPythonの場合、⾼度なスキルが必要 • GUIベースの問題 ⇛ 未解決… ◦ 開発内容のブラックボックス化 ◦ 開発‧本番の切り替えに対応しているツールがほぼない ◦ ツール固有の知識が付いて他の領域に活かしづらい -
dbt Cloudにより解決できていない問題:GUIベースの問題 23 • コードベースの問題 ◦ 開発‧本番の切り分けにはGitのコマンドスキルが必要 ◦ 処理の依存関係の構築‧管理が難しい ◦
特にPythonの場合、⾼度なスキルが必要 • GUIベースの問題 ⇛ 未解決… ◦ 開発内容のブラックボックス化 ◦ 開発‧本番の切り替えに対応しているツールがほぼない ◦ ツール固有の知識が付いて他の領域に活かしづらい 新機能:Canvasが解決します! -
⽬次 24 • 昨今の「データ変換処理の開発」における問題 ◦ 「コードベースの開発」の問題 ◦ 「GUIベースの開発」の問題 • dbt
Cloud概要 ◦ 概要&dbt Cloudにより解決できた問題 ◦ dbt Cloudにより解決できていない問題 • dbt Cloudの新機能「Canvas ※旧称:Visual Editor」 ◦ 機能紹介&Canvasにより解決できる問題 ◦ デモ • その他:dbt Cloud新機能紹介 • まとめ -
⽬次 29 • 昨今の「データ変換処理の開発」における問題 ◦ 「コードベースの開発」の問題 ◦ 「GUIベースの開発」の問題 • dbt
Cloud概要 ◦ 概要&dbt Cloudにより解決できた問題 ◦ dbt Cloudにより解決できていない問題 • dbt Cloudの新機能「Canvas ※旧称:Visual Editor」 ◦ 機能紹介&Canvasにより解決できる問題 ◦ デモ • その他:dbt Cloud新機能紹介 • まとめ -
デモ1:Canvasを⽤いた新規開発‧本番環境への反映 30 • 以下の2つのテーブルに対して、JoinやGroup Byの処理をして、顧客ごとに 注⽂情報をまとめた新しいデータマートを作り、本番環境への反映まで⾏う ◦ stg_customers:顧客情報をまとめたテーブル ◦ stg_orders:注⽂情報をまとめたテーブル
• 開発環境‧本番環境はスキーマレベルで分離 ◦ 開発:dbt_ssagaraスキーマ ◦ 本番:productionスキーマ ※時間の都合上、この開発‧本番の分離の 設定⽅法等は割愛します -
⽬次 32 • 昨今の「データ変換処理の開発」における問題 ◦ 「コードベースの開発」の問題 ◦ 「GUIベースの開発」の問題 • dbt
Cloud概要 ◦ 概要&dbt Cloudにより解決できた問題 ◦ dbt Cloudにより解決できていない問題 • dbt Cloudの新機能「Canvas ※旧称:Visual Editor」 ◦ 機能紹介&Canvasにより解決できる問題 ◦ デモ • その他:dbt Cloud新機能紹介 • まとめ -
Canvas 今後提供予定の機能について 33 • Window関数などの追加のSQL操作のサポート • Googleスプレッドシートなどの他のソースからデータをウェアハウスに接続して インポート • Canvasで直接、Unit Test含めたdbtテストを定義する
※引⽤元:https://www.getdbt.com/blog/dbt-canvas-is-ga -
dbt Cloud新機能:新しいエンジン「dbt Fusion」 34 • dbtのバックエンドを担うエンジン部分を刷新し、 Rustで開発された「dbt Fusion」がリリース(現在はパブリックベータ) • 特徴
◦ 従来のdbt Coreよりも⾼速なSQL解析とコンパイル ◦ コンパイル後のSQLの検証は、DWHにクエリを発⾏せずにできるように ◦ (Cloudのみ)ジョブとして定期実⾏する際に、新しいレコードがあり 変更が必要なテーブルだけを⾃動で認識してビルドを⾏えるように • 今後提供予定の機能 ◦ 開発環境向けのエミュレータ ◦ PIIの⾃動分類 ◦ 複数DB/DWHに跨ったクエリ実⾏ -
dbt Cloud新機能:Tableauとの連携機能 35 • Tableauのダッシュボードに使⽤しているテーブル‧ビューがdbtで構築されている場 合、ダッシュボードをdbt Cloudのexposureとして⾃動登録し、リネージを確認できる • dbtで構築しているテーブル‧ビューと紐づくダッシュボードで使⽤されている Tableau抽出をdbtのジョブ実⾏に併せて更新する機能も現在プライベートベータで提供
引用元:https://dev.classmethod.jp/articles/dbt-cloud-auto-exposures-with-tableau/ -
dbt Cloud新機能:その他の新機能について 36 • 2025年5⽉末に⾏われた「2025 dbt Launch Showcase」での発表内容を まとめたブログを書いております。こちらも併せてご覧ください! •
https://dev.classmethod.jp/articles/2025-dbt-launch-showcase-summary/ -
⽬次 37 • 昨今の「データ変換処理の開発」における問題 ◦ 「コードベースの開発」の問題 ◦ 「GUIベースの開発」の問題 • dbt
Cloud概要 ◦ 概要&dbt Cloudにより解決できた問題 ◦ dbt Cloudにより解決できていない問題 • dbt Cloudの新機能「Canvas ※旧称:Visual Editor」 ◦ 機能紹介&Canvasにより解決できる問題 ◦ デモ • その他:dbt Cloud新機能紹介 • まとめ