この記事は何?
この記事は、datatech-jp Advent Calendar 2021の4日目の記事です。
今回は、dbt Cloudを触る上で自分が最初に知りたかったことをまとめてみました。
実業務でdbt Cloudを利用している訳ではないため、間違い等ございましたらご指摘いただけますと幸いです。
なお詳しい使い方に関してはこちらの記事で丁寧に紹介されているので、こちらもぜひご参照ください。
Pricing
執筆時点では、Developer
、Team
、Enterprise
の3種類から選べます。
「とりあえず触ってみたい」「開発者は一人だけ」であれば、Developer
を選んでおけば無料で使うことができます。
Account
dbt Cloudにおける最上位の構成概念です。
1つのAccountに対して、複数のProjectやEnvironmentを作って管理していきます。
Project
1つのProjectに対して、1つのデータベースのコネクションや、Github等のリポジトリを設定していきます。
自分の場合はデータベースにBigQueryを選択していたいのですが、LOCATION(OPTIONAL)
の設定をブランクで進めてしまったせいで、後々デプロイする際にエラーを発生させてしまいました。
Environment
Development
とDeployment
の2種類の環境が存在しています。
その名の通りではありますが、Development
が開発環境、Deployment
が本番環境の役割を担っています。
環境変数を作ることもできるため、開発環境と本番環境で動的に制御をかけることも可能です。
Development
1つのProjectに対して、Development
は1つしか作成できません。
Development
の接続先情報は、Project作成時に設定した接続先情報になります。
dbt run
コマンドを実行した場合、Development
環境に対して実行されます。
Deployment
1つのProjectに対して、複数のDeployment
を作成することができます。
BigQueryの場合、Development
とは別のデータセットを設定することで、開発環境と本番環境とでデータをわけて管理することもできます。
Development
とは違い、コマンドによる実行でなくジョブを作った上で、即時実行やスケジュール実行によりデプロイされます。
Develop
ここでモデルの開発を行います。
デフォルトでいくつかフォルダが作られており、必要に応じてフォルダ配下にファイルを作成していきます。
analysis folder
SELECT文の.sqlファイルを置いてdbt compile
コマンドを実行すると、refやjinjaで呼び出せる形式にコンパイルしてくれます。
わざわざテーブルやビューにするほどではないが、集計結果をdbt Cloud上で扱いたい場合に利用することが多いです。
詳しくはこちらをご参照ください。
data folder
csvファイルを置いてdbt seed
コマンドを実行すると、接続先のデータベースにテーブルを作ってくれます。
詳しくはこちらをご参照ください。
models folder
SELECT文の.sqlファイルを置いてdbt run
コマンドを実行すると、接続先のデータベースにテーブルを作ってくれます。
dbt_project.yml
で宣言することで、テーブルではなくビューとして作成することもできます。
詳しくはこちらをご参照ください。
おわりに
ここまで読んでくださりありがとうございました。
今回は、自分が初めてdbt Cloudを触った際に理解しづらかったポイントをまとめてみました。
それにしてもほぼSELECT文だけでELTを実現できるのはとても面白いですね。
今後の拡張性も楽しみです。