チュートリアル:Snowflakeでdbtプロジェクトをはじめるにあたり

概要

このチュートリアルでは、Snowflakeラボの getting-started-with-dbt-on-snowflake repository からフォークする GitHub リポジトリに接続されている dbt Projects on Snowflake のワークスペースの作成について説明します。次に、ワークスペースを使用してdbtプロジェクトファイルを更新し、ターゲットのSnowflakeデータベースとスキーマのdbtプロジェクトのデータモデル出力を実体化するdbtプロジェクトをテストして実行します。プロジェクトをデプロイして、Snowflake上にdbtプロジェクトオブジェクトを作成します。最後に、定義したスケジュールでプロジェクトを実行するタスクを設定します。

前提条件

  • GitHub

    • リポジトリを作成し、そのリポジトリへのアクセスを管理できる GitHub アカウント。

    • コマンドラインでGitします。インストールの詳細については、Gitを設定する をご参照ください。

  • Snowflake

    • Snowflakeでのdbtプロジェクトのアクセス制御 で説明されている権限を持つSnowflakeアカウントとユーザー。

    • 以下のオブジェクトを作成および編集する権限、またはユーザーに代わって各オブジェクトを作成できる管理者にアクセスする権限。

      • API 統合

      • GitHub リポジトリが非公開の場合はシークレット

      • ネットワークルール

      • ネットワークルールを参照する外部アクセス統合

      • ユーザーオブジェクト

環境の設定

このチュートリアルの環境を設定するには、次のステップを完了します。

  1. dbt Projects on Snowflake リポジトリをはじめるにあたりをフォークしてクローンする

  2. (オプション)ワークスペースアクションを実行するためのウェアハウスを作成する

  3. 統合とモデルの実体化のためのデータベースとスキーマを作成する

  4. GitHub に接続するためにSnowflakeで API 統合を作成する

  5. dbt依存関係のためにSnowflakeで外部アクセス統合を作成する

dbt Projects on Snowflake リポジトリをはじめるにあたりをフォークしてクローンする

  1. https://github.com/Snowflake-Labs/getting-started-with-dbt-on-snowflakeに移動し、Fork の横にある下矢印と Create a new fork を順に選択します。

  2. フォークされたリポジトリの所有者と名前、およびその他の詳細を指定します。チュートリアルの後半では、次の URL を使用してフォークしたリポジトリを表します。

    https://github.com/my-github-account/getting-started-with-dbt-on-snowflake.git
    
    Copy

(オプション)ワークスペースアクションを実行するためのウェアハウスを作成する

ワークスペースに割り当てられた専用のウェアハウスは、そのワークスペース内から開始されたアクションをログ、トレース、識別するのに役立ちます。このチュートリアルでは、TASTY_BYTES_DBT_WH という名前のウェアハウスを使用します。または、アカウントにある既存のウェアハウスを使用することもできます。ウェアハウスの作成についての詳細は、ウェアハウスの作成 をご参照ください。

ソースデータ用に作成するTasty Bytesデータモデルはかなり大きいため、XL ウェアハウスを使用することをお勧めします。

ウェアハウスを作成するには、次の SQL コマンドを実行します。

CREATE WAREHOUSE tasty_bytes_dbt_wh WAREHOUSE_SIZE = XLARGE;
Copy

統合とモデルの実体化のためのデータベースとスキーマを作成する

このチュートリアルでは、TASTY_BYTES_DBT_DB という名前のデータベースを使用します。そのデータベース内に、INTEGRATIONS という名前のスキーマを作成し、GitHub 統合でSnowflakeが必要とするオブジェクトを格納します。DEV および PROD という名前のスキーマを作成し、dbtプロジェクトが作成するマテリアライズドオブジェクトを格納します。

データベースとスキーマを作成するには、次の SQL コマンドを実行します。

CREATE DATABASE tasty_bytes_dbt_db;
CREATE SCHEMA tasty_bytes_dbt_db.integrations;
CREATE SCHEMA tasty_bytes_dbt_db.dev;
CREATE SCHEMA tasty_bytes_dbt_db.prod;
Copy

GitHub に接続するためにSnowflakeで API 統合を作成する

Snowflakeが GitHub とやり取りするには API 統合が必要です。

リポジトリが非公開の場合、Snowflakeにシークレットを作成してリポジトリの GitHub 認証情報を格納する必要もあります。次に、ALLOWED_AUTHENTICATION_SECRETS の1つとして API 統合定義にシークレットを指定します。このチュートリアルの後半でdbtプロジェクトのワークスペースを作成するときにも、このシークレットを指定します。

シークレットの作成には、リポジトリの個人アクセストークンが必要です。トークン作成の詳細については、GitHub ドキュメントの 個人用アクセストークンの管理 をご参照ください。

このチュートリアルでは、TB_DBT_GIT_SECRET という名前のシークレットを使用します。シークレット作成の詳細については、 Gitを使用するためのSnowflakeの設定 をご参照ください。

GitHub のシークレットを作成するには、次の SQL コマンドを実行します。

USE tasty_bytes_dbt_db.integrations;
CREATE OR REPLACE SECRET tasty_bytes_dbt_db.integrations.tb_dbt_git_secret
  TYPE = password
  USERNAME = 'your-gh-username'
  PASSWORD = 'YOUR_PERSONAL_ACCESS_TOKEN';
Copy

先ほど作成したシークレットを使用する GitHub の API 統合を作成するには、次の SQL コマンドを実行します。https://github.com/my-github-account を、フォークされたリポジトリの GitHub アカウントの SSH URL と置き換えます。

CREATE OR REPLACE API INTEGRATION tb_dbt_git_api_integration
  API_PROVIDER = git_https_api
  API_ALLOWED_PREFIXES = ('https://github.com/my-github-account')
  -- Comment out the following line if your forked repository is public
  ALLOWED_AUTHENTICATION_SECRETS = (tasty_bytes_dbt_db.integrations.tb_dbt_git_secret)
  ENABLED = TRUE;
Copy

dbt依存関係のためにSnowflakeで外部アクセス統合を作成する

ワークスペースでdbtコマンドを実行すると、dbtはリモートの URLs にアクセスして、依存関係をダウンロードする必要が生じる場合があります。たとえば、dbtはdbtパッケージハブから、または GitHub からパッケージをダウンロードする必要がある場合があります。

ほとんどのdbtプロジェクトは、packages.yml ファイルで依存関係を指定します。これらの依存関係をdbtプロジェクトのワークスペースにインストールする必要があります。依存関係のあるデプロイされたdbtプロジェクトオブジェクトを更新することはできません。

リモートの URLs から依存関係ファイルを取得するには、Snowflakeにネットワークルールに依存する外部アクセス統合が必要です。

外部アクセス統合の詳細については、外部アクセス統合の作成と使用 をご参照ください。

ネットワークルールと外部アクセス統合を作成するには、次の SQL コマンドを実行します。

-- Create NETWORK RULE for external access integration

CREATE OR REPLACE NETWORK RULE dbt_network_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  -- Minimal URL allowlist that is required for dbt deps
  VALUE_LIST = (
    'hub.getdbt.com',
    'codeload.github.com'
    );

-- Create EXTERNAL ACCESS INTEGRATION for dbt access to external dbt package locations

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION dbt_ext_access
  ALLOWED_NETWORK_RULES = (dbt_network_rule)
  ENABLED = TRUE;
Copy

Gitリポジトリに接続されたワークスペースを作成する

このステップでは、GitHub リポジトリに接続されている Snowsight にワークスペースを作成します。ワークスペースの詳細については、ワークスペース をご参照ください。

  1. Snowsight にサインインします。

  2. 左側のナビゲーションメニューから、Projects » `ワークスペース`を選択します。

  3. ワークスペースファイルエリア上のワークスペースリストから、Create Workspace 下にある From Git repository を選択します。(ワークスペースリストには、My Workspace がデフォルトで選択されています。)

  4. :ui:`Repository URL`の場合は、フォークした GitHub リポジトリの SSH URL を入力します。例: https://github.com/my-github-account/getting-started-with-dbt-on-snowflake.git

  5. Workspace name に、名前を入力します。このチュートリアルの後半では、tasty_bytes_dbt を使用します。

  6. API integration 下にある、以前に作成した API 統合の名前を選択します。たとえば、*TB_DBT_GIT_API_INTEGRATION*などです。

  7. GitHub リポジトリがパブリックの場合、Public repositoryCreate の順に選択します。

    注釈

    ワークスペースは、ワークスペースからパブリックリポジトリへの変更のコミットとプッシュをサポートしていません。

  8. GitHub リポジトリが非公開で、セットアップ中に API 統合のシークレットを作成した場合、次を実行します。

    1. Personal access token を選択します。

    2. Credentials secret の下で、 Select database and schema を選択します。

    3. リストからデータベースを選択し(例: TASTY_BYTES_DBT_DB)、API 統合を格納したリストからスキーマを選択します(例: INTEGRATIONS

    4. :ui:`Select secret`を選択し、リストからシークレットを選択します。たとえば、**tb_dbt_git_secret**などです。

  9. Create を選択します。

    Snowflakeを指定した GitHub リポジトリに接続し、新しいワークスペースを開きます。tasty_bytes_dbt_demo という名前のワークスペース内の単一フォルダーには、作業するdbtプロジェクトが含まれています。

dbtプロジェクトルートのprofiles.ymlファイルの内容を確認します。

Snowflakeワークスペースの各dbtプロジェクトフォルダーには、Snowflakeの プロジェクトのためのターゲットとなる warehousedatabaseschema および role を指定する profiles.yml ファイルが含まれている必要があります。その typesnowflake. に設定する必要があります。dbtには account および user が必要ですが、dbtプロジェクトは現在のアカウントとユーザーコンテキストをもとにSnowflakeで実行されるため、これらは空または任意の文字列のままにすることができます。

dbtコマンドを実行すると、ワークスペースは profiles.yml ファイルを読み取ります。profiles.yml で指定した有効な target が1つ以上ある場合、各ターゲットはワークスペース編集ペインの上にあるメニューバーの Profile リストから選択できます。dbtコマンドを実行すると、ワークスペースは選択されたプロファイル(target)を使用してコマンドを実行します。

tasty_bytes_dbt_demo/profiles.yml ファイルをを開き、内容が次の例と一致することを確認します。以前に別のデータベース名またはウェアハウス名を指定した場合は、独自の名前に置き換えます。

tasty_bytes:
target: dev
outputs:
  dev:
    type: snowflake
    account: 'not needed'
    user: 'not needed'
    role: accountadmin
    database: tasty_bytes_dbt_db
    schema: dev
    warehouse: tasty_bytes_dbt_wh
  prod:
    type: snowflake
    account: 'not needed'
    user: 'not needed'
    role: accountadmin
    database: tasty_bytes_dbt_db
    schema: prod
    warehouse: tasty_bytes_dbt_wh
Copy

tasty_bytes_setup.sql の SQL コマンドを実行して、ソースデータを設定します。

変換のソースデータとして、リポジトリのdbtプロジェクトは、架空のTasty Bytesフードトラックブランドの基礎データモデルを使用します。データモデルを作成するための SQL スクリプトはワークスペースにあります。

  1. ワークスペースで、tasty_bytes_dbt_demo/setup/tasty_bytes_setup.sql ファイルにナビゲートして開きます。

  2. ワークスペースエディターの右上にあるコンテキストセレクターから、先ほど作成したウェアハウスを選択します。例: TASTY_BYTES_DBT_WH

  3. その SQL ファイルには、このチュートリアルですでに実行したコマンドが含まれています。ファイルの先頭付近で次のコマンドを見つけたら、再度実行してリソースが重複しないようにコメントアウトします。

    CREATE OR REPLACE WAREHOUSE ...;
    CREATE OR REPLACE API INTEGRATION ...;
    CREATE OR REPLACE NETWORK RULE ...;
    CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION ...;
    
    Copy
  4. ファイル内のコメントされていない SQL コマンドを実行します。

    Tip

    cmd + Shift + :kbd:` を使用します。` を入力してコメントされていないすべてのコマンドを実行します。

    その Output タブには次のメッセージが表示されます:

    tb_101 setup is now complete

ログ、トレース、メトリックを有効にする

dbtプロジェクトオブジェクトと、該当する場合はスケジュール上でそれを実行するタスクのログとトレースのイベントをキャプチャできます。詳細については、 Snowflakeでdbtプロジェクトを監視する をご参照ください。

この機能を有効にするには、dbtプロジェクトオブジェクトとタスクがデプロイされるスキーマに、ログ、トレース、メトリックを設定する必要があります。

tasty_bytes_setup.sql ファイルの次のコマンドは、TASTY_BYTES_DBT_DB データベース内の DEV スキーマおよび PROD スキーマのログ、トレース、メトリックを有効にします。前のステップで実行しました。独自のプロジェクトのログ、トレース、メトリックを有効にできるように、ここでは参照情報として示します。

ALTER SCHEMA tasty_bytes_dbt_db.dev SET LOG_LEVEL = 'INFO';
ALTER SCHEMA tasty_bytes_dbt_db.dev SET TRACE_LEVEL = 'ALWAYS';
ALTER SCHEMA tasty_bytes_dbt_db.dev SET METRIC_LEVEL = 'ALL';

ALTER SCHEMA tasty_bytes_dbt_db.prod SET LOG_LEVEL = 'INFO';
ALTER SCHEMA tasty_bytes_dbt_db.prod SET TRACE_LEVEL = 'ALWAYS';
ALTER SCHEMA tasty_bytes_dbt_db.prod SET METRIC_LEVEL = 'ALL';
Copy

プロジェクトのdbt depsコマンドを実行します。

ワークスペースを使用して、プロジェクトの一般的なdbtコマンドを実行できます。使用可能なコマンドのリストについては、サポートされているdbtコマンド をご参照ください。コマンドを実行するには、dbt ProjectProfile、ワークスペースエディター上のリストからdbtコマンドを選択します。次に、実行ボタンを選択します。実行ボタンの横にある下矢印を使用して、dbtコマンドがサポートする追加の引数を指定します。

ワークスペース内でdbtコマンドを実行すると、Output タブには、Snowflakeで実行される コマンド(緑)とそのコマンドの標準出力が表示され、コマンドの成功または失敗を監視できます。

dbtプロジェクトで実行する必要がある最初のコマンドは deps です。これは、プロジェクトの packages.yml ファイルで指定されたプロジェクトの依存関係を更新します。依存関係を更新していない限り、他のコマンドは失敗します。詳細については、 dbt依存関係 をご参照ください。

  1. ワークスペースエディターの下で Output タブを開くと、ワークスペースからdbtコマンドを実行した後に標準出力が表示されます。

  2. ワークスペースエディターの上にあるメニューバーで、デフォルトの Project`(:ui:`tasty_bytes_dbt_demo)が選択されていることを確認します。選択した任意の Profile を持つことができます。このプロジェクトには profiles.yml ファイルで定義されている dev および prod のプロファイルがあります。

  3. Profile リストを選択してから**セカンダリロールを有効にする**を選択して、このプロジェクトとこのセッションのセカンダリロールを有効にします。

    注釈

    各Snowsightセッション中に各プロジェクトのdbtコマンドを実行するには、最初にセカンダリロールを有効にする必要があります。Enterprise Editionアカウントは、特定のユーザーまたはすべてのユーザーのセカンダリロールを許可しないように構成されている場合があります。詳細については、 セカンダリロールは、プロジェクトごと、セッションごとに必要です。 をご参照ください。

  4. コマンドリストから Deps を選択します。

  5. 実行ボタンの横で、下矢印を選択します。

  6. dbt Deps ウィンドウで、Run with defaults を選択したままにしてから、提供されたスペースで設定中に作成した External Access Integration の名前を入力します。たとえば、dbt_ext_access などです。

  7. コマンドを実行するには、Deps を選択します。

    その Output タブに、Snowflakeで実行される SQL コマンドが表示されます。そのコマンドは次と類似しています。

    execute dbt project from workspace "USER$"."PUBLIC"."tasty_bytes_dbt" project_root='tasty_bytes_dbt_demo' args='deps --target dev' external_access_integrations = (dbt_ext_access)
    
    Copy

    コマンドが終了すると、次のような標準出力メッセージが表示されます。

    14:47:19  Running with dbt=1.8.9
    14:47:19  Updating lock file in file path: /tmp/dbt/package-lock.yml
    14:47:19  Installing dbt-labs/dbt_utils
    14:47:19  Installed from version 1.3.0
    14:47:19  Up to date!
    Uploading /tmp/dbt/package-lock.yml to snow://workspace/USER$ADMIN.PUBLIC."tasty_bytes_dbt"/versions/live/dbt//package-lock.yml
    

    package_lock.yml ファイルが作成され、その横にある A とともにワークスペースファイルのリストに表示されます。これは、次の例のようなコンテンツで、ファイルがdbtプロジェクトのワークスペースに追加されたことを示します。

    packages:
      - package: dbt-labs/dbt_utils
        version: 1.3.0
    
    Copy

dbtプロジェクトをコンパイルし、DAG を表示させ、さらにコンパイル済み SQL を表示させます。

dbtでプロジェクトをコンパイルすると、モデル化された SQL ファイルから実行可能な SQL と、ワークスペースにあるプロジェクトの有向非巡回グラフ(DAG)の視覚的表現が作成されます。dbtプロジェクトのコンパイルに関する詳細については、dbtドキュメントの コンパイル をご参照ください。

ワークスペースでプロジェクトをコンパイルすると、DAGを表示できるようになります。models フォルダーにある任意の SQL ファイルを開き、サイド・バイ・サイド・タブ内のモデル SQL およびコンパイル済み SQL を表示することもできます。

  1. コンパイルするプロジェクトとターゲットを選択します。

  2. コマンドリストから Compile を選択し、実行ボタンを選択します(オプションで、下矢印を選択してコンパイルコマンド引数を指定できます)。

  3. ワークスペースエディターの下にある領域で、DAG タブを選択します。

    DAG ペインを使用して、Snowflakeのソースファイルから実体化されたデータモデルオブジェクトへのdbtプロジェクト変換を可視化できます。

    • ペインのどこかをクリックしてドラッグし、ビューをパンします。

    • + および -- ボタンを使用して、ズームインおよびズームアウトします。

  4. エディターでオブジェクトのソースファイルの内容を表示するには、オブジェクトのタイルを選択します。

  5. ワークスペースエディターの分割ペインビューでコンパイル済みの SQL を表示するには、以下を行います。

    1. DAG内でdbt SQL モデルファイルのタイルを選択します。たとえば orders などです。

      --OR--

      ワークスペースファイルのリストから、dbtプロジェクトの models サブディレクトリにある任意のファイルを選択し、それをワークスペースエディターで開きます。

    2. ワークスペースエディターの右上にある View Compiled SQL を選択し、分割ペインビューでコンパイル済みの SQL を表示します。

dbt開発プロジェクトを実行し、実体化されたSnowflakeオブジェクトを確認します。

dbt run コマンドを実行すると、プロジェクトの profiles.yml ファイルで指定されたSnowflakeウェアハウスとロールを使用して、ターゲットデータベースとスキーマに対するコンパイル済みの SQL が実行されます。このステップでは、dbtデモプロジェクトにある Dev ターゲットの出力を実体化します。次に、ワークスペース内で dbt_sandbox.sql という名前の SQL ワークシートを作成します。このワークスペースでは、SQL を実行してオブジェクトの作成を確認できます。

重要

ワークスペース内からプロジェクトのdbt Run または Build コマンドを選択することで、プロジェクトの profiles.yml ファイルで定義されているロールと、Snowflakeユーザーのすべてのセカンダリロール、その両方の role を使用してターゲット出力を実体化します。指定されたユーザーとロールの両方に、warehouse を使用する権限、プロジェクトの profiles.yml ファイルで指定されている database および schema で操作を実行する権限、そしてdbtモデルが指定する他のSnowflakeオブジェクトで操作を実行する権限が必要です。

  1. Profile リストから**Dev**を選択します。

  2. コマンドリストから Run と実行ボタンを順に選択します。

    出力ペインには、実行の完了ステータスが表示されます。

  3. **tasty_bytes_dbt_demo**プロジェクトで examples フォルダーにナビゲートし、フォルダー名の横にある +SQL File を順に選択します。

  4. *dbt_sandbox.sql*を入力し、Enter を押します。

  5. dbt_sandbox.sql のワークスペースタブで次のクエリを実行します。

    SHOW TABLES IN DATABASE tasty_bytes_dbt_db;
    
    Copy

    Status and Results ペインにCUSTOMER_LOYALTY_METRICS、ORDERS および SALES_METRICS_BY_LOCATION テーブルが表示されます。

  6. dbtプロジェクト実行によって作成されたビューを表示するには、次のコマンドを実行します。

    SHOW VIEWS IN DATABASE tasty_bytes_dbt_db;
    
    Copy

ワークスペースからリポジトリにファイルの更新をプッシュする

ここまでに、ワークスペースを更新し、dbtプロジェクトオブジェクトとしてプロジェクトをコンパイル、テスト、実行、デプロイしてきました。今度はワークスペースで行った変更を非公開の GitHub リポジトリにプッシュできます。パブリックリポジトリでは、このステップはサポートされていません。

  1. ワークスペースを開いた状態で Changes を選択します。

    ワークスペースファイルリストはフィルタリングされ、Gitリポジトリと同期した後に変更されたファイルのみが表示されます。

    • A はGitリポジトリではなく、ワークスペースに追加されたファイルを示します。

    • M は変更されたファイルを示します。

    • D は削除されたファイルを示します。

  2. ファイルを選択して、最後のプル以降(この場合はワークスペースが作成されたとき)の GitHub での差分を表示します。

  3. ワークスペースファイルリストの上にあるメニューバーで、ブランチセレクターがこのチュートリアルの main に設定されていることを確認します。

  4. Push ボタンを選択してから、表示されたボックスにコミットメッセージを入力します。たとえば、*Snowflake上のdbtからの初期変更によるプロジェクトの更新*などです。

  5. Push を選択します。

    リポジトリへのプッシュには数分かかる場合があります。

ワークスペースからdbtプロジェクトオブジェクトをデプロイする

ワークスペースからdbtプロジェクトをデプロイすると、dbtプロジェクトオブジェクトが作成されます。オブジェクトを使用して、ワークスペース外の Snowflake でdbtプロジェクトをスケジュール、実行、監視できます。

ワークスペースからdbtプロジェクトオブジェクトをSnowflakeデータベースとスキーマにデプロイすると、以前に作成したオブジェクトを作成または上書きできます。

  1. ワークスペースエディターの右側で、Connect » Deploy dbt project を選択します。

  2. :ui:`Select database and schema`を選択してから、TASTY_BYTES_DBT_DB**データベースと **DEV スキーマを選択します。

  3. Select or Create dbt Object の下で、 Create dbt Object を選択します。

  4. Enter Name の下に*TASTY_BYTES_DBT_PROJECT*と入力し、Deploy を選択します。

    その Output タブには、Snowflakeで実行されるコマンドが表示されます。これは次の例と同様です。

    create or replace DBT PROJECT "TASTY_BYTES_DBT_DB"."DEV"."TASTY_BYTES_DBT_PROJECT" from snow://workspace/USER$MYUSER.PUBLIC."tasty_bytes_dbt_demo"/versions/live/dbt
    
    tasty_bytes_dbt_project successfully created.
    
    Copy

    Connectメニューには、作成したdbtプロジェクトオブジェクトの名前と、次のオプションが表示されるようになります。

    • Redeploy dbt project - ALTER を使用して、プロジェクトの現在のワークスペースバージョンでdbtプロジェクトオブジェクトを更新します。これによりdbtプロジェクトオブジェクトのバージョンが1つずつ増加します。詳細については、 dbtプロジェクトオブジェクトとファイルのバージョン管理 をご参照ください。

    • Disconnect - dbtプロジェクトオブジェクトからワークスペースを切断しますが、dbtプロジェクトオブジェクトは削除しません。

    • View project - オブジェクトエクスプローラーでdbtプロジェクトオブジェクトを開きます。そこにはdbtプロジェクトオブジェクトの CREATE DBT PROJECT コマンドとプロジェクトの実行履歴が表示されます。

    • Create schedule - スケジュール上でdbtプロジェクトオブジェクトを実行するタスクを作成するためのオプションを提供します。詳細については、 dbtプロジェクトの実行をスケジュールするタスクを作成する をご参照ください。

    • View schedules - dbtプロジェクトオブジェクトを実行するスケジュール(タスク)のリストを開きます。オブジェクトエクスプローラーでタスクの詳細を表示するオプションがあります。

  5. プロジェクトの作成を確認するには、以下のタスクの一方または両方を実行します。

    • dbtプロジェクトのメニューから View project を選択して、オブジェクトエクスプローラーでdbtプロジェクトオブジェクトを開きます。

      --OR--

    • 以前に作成した dbt_sandbox.sql ファイルワークシートから、次のコマンドを実行します。

      SHOW DBT PROJECTS LIKE 'tasty%';
      
      Copy

dbtプロジェクトの実行をスケジュールするタスクを作成する

dbtプロジェクトオブジェクトのデプロイが完了したため、ワークスペースまたは SQL を使用して、dbtプロジェクトオブジェクトでdbtコマンドを実行するタスクを設定できます。

次のステップでは、時刻の1分後にdbtプロジェクトを1時間ごとに実行するスケジュールを設定します。タスクは --select オプションのあるdbt run コマンドを実行し、dbtプロジェクトの customer_loyalty_metrics モデルを実行します。

  1. ワークスペースエディターの右上にあるdbtプロジェクトメニューから、Create schedule を選択します。

  2. Schedule a dbt run ダイアログボックスで、次を実行します。

    • Schedule name にはタスクの名前を入力します。たとえば、run_preped_data_dbt などです。

    • Frequency には、選択したタイムゾーンの 01Hourly をそのままにします。

    • :ui:`dbt properties`の下にあります。

      • Operation には、 run を選択します。

      • Profile には、 dev を選択します。

      • Additional flags には、--select customer_loyalty_metrics を入力します。

  3. Create を選択します。

    Snowflakeはこれらのパラメーターを使い、EXECUTE DBT PROJECT コマンドを実行するタスクを作成します。タスクとタスクオプションの詳細については、タスクの紹介 および CREATE TASK を参照してください。

  4. dbtプロジェクトメニューから:ui:View schedules を選択し、その後リストからスケジュールを選択します。

    オブジェクトエクスプローラーがデータベースに開き、タスクの Task Details ペインが開きました。Task Definition は次のような CREATE TASK コマンドを表示します。

    CREATE OR REPLACE TASK tasty_bytes_dbt_db.dev.run_prepped_data_dbt
            WAREHOUSE=tasty_bytes_dbt_wh
            SCHEDULE ='USING CRON 1 * * * * America/Los_Angeles'
          AS
      EXECUTE DBT PROJECT tasty_bytes_dbt_project ARGS='run --select customer_loyalty_metrics --target dev';
    
    Copy

クリーンアップする

このチュートリアルの後、クリーンアップするために作成したデータベース、ワークスペース、ウェアハウスを削除できます。

dbt_sandbox.sql ワークシートから次の SQL コマンドを実行し、ウェアハウス、作成した TASTY_BYTES_DBT_DB および TB_101 データベース、およびデータベースで作成されたすべてのスキーマとオブジェクトを削除します。

DROP WAREHOUSE IF EXISTS tasty_bytes_dbt_wh;
DROP DATABASE IF EXISTS tasty_bytes_dbt_db;
DROP DATABASE IF EXISTS tb_101;
Copy

tasty_bytes_dbt_demo ワークスペースを削除するには

  • 垂直省略記号メニューから、ワークスペースエクスプローラーの上部にあるワークスペースメニューの隣の ワークシートのその他のアクションDelete を選択し、プロンプトが表示されたら削除を確認します。