Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevIO2024_Online_dbt_yoshidanana.pdf

yoshidanana
July 23, 2024
120

 DevIO2024_Online_dbt_yoshidanana.pdf

yoshidanana

July 23, 2024
Tweet

Transcript

  1. メインターゲット:dbt 初学者の方 • これから dbt + Snowflake を使ってデータ変換システム を構築したいと考えている初学者 •

    dbt + Snowflake で構築する際の詰まるポイントを 知りたい方 • dbt のメリット・デメリットが知りたい方 本セッションの対象者 4
  2. • dbt と Snowflake の概要 • dbt のメリット・デメリット • 過去に触ったことのある

    ELT サービスと比較して、 メリットとデメリットを紹介 • dbt + Snowflake の構築手順 • 詰まったポイントと解消方法 本セッションで話すこと 5
  3. 本日のゴール 7 やりたいこと 1. ローカル環境に dbt-core をインストール 2. Snowflake にリソースを作成

    3. 作成したリソース情報をもとに、dbt init コマンドで dbt プロジェクトを作成 4. 接続情報が間違っていないか dbt debug で確認 ※本環境ではテストのため、ローカルから実行しています Client Database Users ① ② ③ ④
  4. 概要 • dbt(data build tool)とは • SQL を用いて、データを変換し、データウェアハウス、 データマートを構築していくことができるツール •

    データウェアハウスに保存されているデータを変 換し、変換したデータをデータウェアハウスに書 き戻す部分で使用する • ELT の T(Transform:変換)を担う 9
  5. 概要 • ELT とは • データインテグレーションプロセスの一つ 10 Extract 抽出 Transform

    加工・変換 Load 読み込み • データの抽出 • API、基幹システム、 CRM / 顧客管理シス テムなど • 抽出したデータをデ ータウェアハウスな どのストレージに読 み込む • データを必要に応じ て加工・変換を行う プロセス
  6. 概要 • クラウド上で動作する SaaS 型データクラウド 14 特徴 • データベース・データ ウェアハウスの保存、

    データ処理、分析が可能 • 従量課金制 • インフラ管理が不要 参考資料:https://www.Snowflake.com/ja/data-cloud/platform/
  7. Azure Synapse Analytics • Azure の ELT サービスの一つ • 大規模なデータウェアハウス構築とビッグデータ分析を担う

    • GUI でデータパイプラインの構築が可能 18 参考URL:https://learn.microsoft.com/ja-jp/azure/synapse-analytics/overview-what-is
  8. Azure Data Factory • Azure の ELT サービスの一つ • 異なるデータソースからのデータを収集、変換、移動させるために使用

    • GUI でデータパイプラインの構築が可能 19 参考URL:https://learn.microsoft.com/ja-jp/azure/data-factory/introduction
  9. • dbt モデル実行の仕組み 1.SQL + α でデータ変換加工 21 dbt プロジェクトフォルダ

    Analytics logs models ・ ・ ・ ./dbt プロジェクトフォルダ / models 配下に 格納された .sql ファイルが動作する ※dbtプロジェクトフォルダイメージ図
  10. • {{ ref }} を使って他 dbt モデルを参照できる 1.SQL + α

    でデータ変換加工 22 model_a.sql model_b.sql model_a.sql モデル を参照する
  11. 1.SQL + α でデータ変換加工 • jinja テンプレート機能:macros の使用 23 dbt

    プロジェクトフォルダ Analytics macros models ・ ・ ・
  12. 2.テスト機能 • dbt test:generic test のデフォルトテスト • 以下4種類がデフォルトで用意されている • 自分でジェネリックテストを作成することも可能

    29 テスト名 概要 not_null 指定されたカラムが null を含まないこと unique 指定されたカラムのデータがすべてユニーク値であること accepted_values 指定されたカラムには、指定された値以外を含まないこと relationships 指定されたカラムの値が、 to に指定されたモデルの field に指定されたカラムに含まれ ていること
  13. デメリット 1. GUIをサポートしていない • SQLに精通しているユーザー向けに設計されている • dbt cloud では GUI

    を使用して dbt モデルが作成できるが 別途料金がかかる 2. サーバの作成が必要 • サーバの管理が発生する • フルマネージドサービスとして dbt cloud があるが、別途料金が かかる 33
  14. メリット・デメリット まとめ 34 dbt Azure Synapse Analytics Azure Data Factory

    変換言語 • SQL + jinja テンプレート ※SQL jinja テンプレートのみを サポートするため、学習が必要 • GUIがベース • GUI でサポートしていない変 換が行いたい場合 PySpark を使用する • GUIがベース • GUI でサポートしていない 変換が行いたい場合 SQL を使用する テスト機能 • SQL / yml を記述することで テストが実行可能 • データパイプラインの テストが GUI で実行可能 • 単一テストは未実装 • データパイプラインの テストが GUI で実行可能 • 単一テストは未実装 ドキュメント 生成機能 • dbt docs generate、dbt doc serve でドキュメントが生成 可能 • 未実装 • 未実装 ETL のどの 部分を担うか • Transform(データの加工・ 変換)に特化 • データウェアハウスは別途 用意する必要がある ※ post_hook などを使用で Load:読み込みが実行可能 • 全範囲をカバー • データウェアハウス構築~ データ加工・変換まで一貫し て行えるのがメリット • LとTに対応している • 様々なデータソースに対応し ている • データウェアハウスは別途 用意する必要がある
  15. 構成図 37 やりたいこと 1. ローカル環境に dbt-core をインストール 2. Snowflake にリソースを作成

    3. 作成したリソース情報をもとに、dbt init コマンドで dbt プロジェクトを作成 4. 接続情報が間違っていないか dbt debug で確認 ※本環境ではテストのため、ローカルから実行しています Client Database Users ① ② ③ ④
  16. 2.Snowflake セットアップ • dbt 接続先の Snowflake に以下のリソースを作成する • Snowflake コンソール上で

    SQL を実行 2-1.ユーザー / ロール 2-2.データベース / スキーマ 2-3.ウェアハウス 39
  17. 3.dbt init の実行 44 • dbt init 入力項目 項目名 入力内容

    説明 プロジェクト名 任意のプロジェクト名 dbt プロジェクト名を入力する type Snowflake dbt と接続しているウェアハウスを入力する ex.Snowflake,athena,redshift account Snowflake 識別子名 Snowflake 識別子名 {locator}.ap-northeast-1.aws user ユーザー名 2.Snowflake のセットアップ で作成したユーザー名を入力 password パスワード 2.Snowflake のセットアップ で作成したユーザーの指定したパスワードを入力 role ロール名 2.Snowflake のセットアップ で作成した以下のリソース名を入力 • ロール • データベース • スキーマ • ウェアハウス database データベース名 schema スキーマ名 warehouse ウェアハウス名