🗂

Snowflake x dbtやってみた〜dbtモデル編〜

2022/11/27に公開

これまでの記事で環境構築が完了したのでメインのdbtに触れていきます。
※これまでの記事
Snowflake x dbtやってみた 〜環境準備編〜
Snowflake x dbtやってみた 〜dbtセットアップ編〜

modelの作成

dbtからビューを作成してみます。

ビューを作成するクエリの用意

with raw_listings as (
    select * from AIRBNB.RAW.RAW_LISTINGS
)
SELECT
    id AS listing_id,
    name AS listing_name,
    listing_url,
    room_type,
    minimum_nights,
    host_id,
    price AS price_str,
    created_at,
    updated_at
FROM
    raw_listings

dbt側でモデルの定義

src_listings.sqlにビュー作成用クエリを書き込む

ubuntu@dbt:~/dbtlearn/models$ mkdir src
ubuntu@dbt:~/dbtlearn/models$ cd src/
ubuntu@dbt:~/dbtlearn/models/src$ touch src_listings.sql
ubuntu@dbt:~/dbtlearn/models/src$ vim src_listings.sql

dbtの実行

dbt runコマンドで実行します。

ubuntu@dbt:~/dbtlearn/models$ dbt run
06:33:53  Running with dbt=1.3.1
06:33:54  Found 1 model, 0 tests, 0 snapshots, 0 analyses, 303 macros, 0 operations, 0 seed files, 0 sources, 0 exposures, 0 metrics
06:33:54  
06:33:56  Concurrency: 4 threads (target='dev')
06:33:56  
06:33:56  1 of 1 START sql view model dev.src_listings ................................... [RUN]
06:33:57  1 of 1 OK created sql view model dev.src_listings .............................. [SUCCESS 1 in 1.31s]
06:33:57  
06:33:57  Finished running 1 view model in 0 hours 0 minutes and 3.52 seconds (3.52s).
06:33:57  
06:33:57  Completed successfully
06:33:57  
06:33:57  Done. PASS=1 WARN=0 ERROR=0 SKIP=0 TOTAL=1
ubuntu@dbt:~/dbtlearn/models$ 

下図の通り、DEVデータベースのビュー内に「src_listings」が出来上がっています。
SELECTで確認してみます。

この結果より、Viewの名前は作成したSQLファイルからきている。
また、dbt runで実行しするとSQLファイルの中身がSELECT句であるが、結果としてはViewが作成されている。
この動作について調べたところ、dbt_project.ymlファイルで制御されているようです。
さらに言うとマテリアライゼーションとよばれるウェアハウスにモデルを保存する機能があり、その機能によっって保存されています。
次回はマテリアライゼーションについてみていきます。

Discussion