LoginSignup
2
1

More than 1 year has passed since last update.

dbt Cloudを初めて触るときに知りたかったことまとめてみた

Last updated at Posted at 2021-12-03

この記事は何?

この記事は、datatech-jp Advent Calendar 2021の4日目の記事です。
今回は、dbt Cloudを触る上で自分が最初に知りたかったことをまとめてみました。
実業務でdbt Cloudを利用している訳ではないため、間違い等ございましたらご指摘いただけますと幸いです。

なお詳しい使い方に関してはこちらの記事で丁寧に紹介されているので、こちらもぜひご参照ください。

Pricing

執筆時点では、DeveloperTeamEnterpriseの3種類から選べます。
「とりあえず触ってみたい」「開発者は一人だけ」であれば、Developerを選んでおけば無料で使うことができます。

Account

dbt Cloudにおける最上位の構成概念です。
1つのAccountに対して、複数のProjectやEnvironmentを作って管理していきます。

Project

1つのProjectに対して、1つのデータベースのコネクションや、Github等のリポジトリを設定していきます。
自分の場合はデータベースにBigQueryを選択していたいのですが、LOCATION(OPTIONAL)の設定をブランクで進めてしまったせいで、後々デプロイする際にエラーを発生させてしまいました。

Environment

DevelopmentDeploymentの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を実現できるのはとても面白いですね。
今後の拡張性も楽しみです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1