Snowflake×dbtを試してみた~Part1:基本設定編~ #SnowflakeDB #dbt

2021.12.19

※本エントリは、Snowflakeをより使いこなそう! Advent Calendar 2021の19日目の記事となります。

さがらです。

Snowflake公式のdbtと連携した時の機能を一通り試すことが出来るQUICKSTARTSに関して試してみた内容をまとめていきます。※この記事は「Part1:基本設定編」となります。

この記事の内容について

Snowflake公式のQUICKSTARTSに、Accelerating Data Teams with dbt & SnowflakeというSnowflakeとdbtを組み合わせたときの利点を一通り試すことが出来るクイックスタートがあります。

こちらの内容について、以下の合計5本の構成で試してみた内容を書いていきます。

  • Part1:基本設定編 ※この記事です
    • 「1.Overview」から「5. dbt Configuration」
  • Part2:Project設定編 ※12/20に公開予定、公開後にリンクも正常に動作します。
    • 「6. dbt Project Configuration」
  • Part3:パイプライン構築編その1 ※12/21に公開予定、公開後にリンクも正常に動作します。
    • 「7. Building dbt Data Pipelines」から「9. dbt pipelines - Intermediate」
  • Part4:パイプライン構築編その2 ※12/22に公開予定、公開後にリンクも正常に動作します。
    • 「10. dbt pipelines - Seeds」から「12. dbt pipelines - Facts」
  • Part5:テスト&Doc&デプロイ編 ※12/23に公開予定、公開後にリンクも正常に動作します。
    • 「13. dbt pipelines - Tests & Docs」から「16. Appendix」

この記事では、「基本設定編」ということで「1.Overview」から「5. dbt Configuration」までの内容についてまとめていきます。

1.Overview

このクイックスタートの概要について書いてあります。

冒頭の説明では、Snowflakeとdbtの概要について記述しております。下記の記事も参考になると思いますので、ぜひ併せてご覧ください。

このクイックスタートで必要なもの

  • Snowflake
    • ACCOUNTADMINロールでの操作が可能がアカウントが必要です。
    • 30日間のトライアルアカウントでも問題ありません。トライアルアカウントの作成手順についてはこちらの記事も参考になると思いますのでぜひご覧ください。
  • dbt
    • dbt Cloudのアカウントが必要です。
    • アカウントの作成手順については、後述の「5. dbt Configuration」で説明します。

このクイックスタートで作るもの

データ品質のテストなどのベストプラクティスを利用した、dbtとSnowflakeを活用した金融サービスデータのデータ分析パイプラインを作っていきます。

使用するデータについては「4. Connect to Data Source」で言及します。

2. Architecture and Use Case Overview

このラボで構築する、dbtとSnowflakeを組み合わせたアーキテクチャについて書いてあります。以下、本文のDeepL翻訳です。

このラボでは、さまざまな地域にトレーディングデスクを持つ企業の過去の取引実績を分析する予定です。入力として、Snowflake Data Marketplaceで提供されているKnoema Economy Data Atlasで利用可能なデータセットを活用する予定です。また、いくつかの手動アップロードも利用します。そのために、環境のセットアップ、dbtでのスケーラブルなパイプラインの構築、データテストの確立、そして本番環境へのコードのプロモートを行っていきます。

3. Snowflake Configuration

ここでは、Snowflakeのアカウントにログインするところだけが書いてあります。

トライアルアカウントにログインする所については、下記リンクをご覧ください。

4. Connect to Data Source

ここでは、SnowflakeのMarketplace機能を活用して、このクイックスタートで使用するKnoema社が提供しているデータを利用するための手順について書いてあります。

まず、ロールをACCOUNTADMINに切り替えます。

その後、画面上部のData Marketplaceを推して頂き、下図の赤枠に沿って進めてください。※途中再度ログイン情報の入力が必要となります。

再度、ロールをACCOUNTADMINに設定します。

その後、画面上部の検索BOXにKnoema Economy Atlas Dataと入力して頂き、表示されたEconomy Data Atlasをクリックします。

右側にあるGet Dataを押し、表示されたポップアップ上で作成するデータベースの名前をKNOEMA_ECONOMY_DATA_ATLASに変更して、Get Dataを推します。

これで、使用するデータベースの準備は整いました!以下はおまけですが、Query Dataからワークシートに移動し、サンプルクエリを実行することも出来ます。

5. dbt Configuration

ここでは、dbtの設定をSnowflakeのPartner Connect機能を用いて行っていきます。

画面左上のHOMEボタンを押します。

その後、左上の自身のユーザー名をクリック後、Partner Connectをクリックします。

Partner Connectの画面の一番上の検索BOXにでdbtと入力し、表示されたdbtのアイコンをクリックします。

dbt用のデータベースやウェアハウスなどを設定するためのポップアップが表示されます。

Optional Grantを押して、先程作成したデータベース名KNOEMA_ECONOMY_DATA_ATLASと入力し、その後で右下のConnectを推します。 ※このOptional Grantの設定を忘れるとロールが適切に機能しないため、ご注意ください。

右下のActivateを押します。

ACCOUNT_NAMEを任意の名称で入力後、右下のComplete Registrationを押します。これでdbtの設定は完了です!

※このdbtのアカウント初期設定について、私はすでに対象のメールアドレスでdbtのアカウントを持っていたため、ACCOUNT_NAMEの入力だけで済んだ可能性があります。皆様が実際に設定頂いた場合には、公式ページの画像のように表示される可能性があります。その場合は、入力欄に沿ってご記入後、右下のComplete Registrationを押してください。

次回

Snowflakeをより使いこなそう! Advent Calendar 2021、次回の20日目では、「Snowflake×dbtを試してみた~Part2:Project設定編~」というタイトルで執筆します。お楽しみに!