🚀

【dbt Docs】Building a dbt Project - Projects

2022/03/09に公開

概要

https://docs.getdbt.com/docs/building-a-dbt-project/projects

Related reference docs

dbt_project.yml configures

すべてのdbtプロジェクトに必要なファイル。
このファイルが有ることで、dbtは、dbt Project を識別する。

dbt_project.yml
[name](project-configs/name): string

[config-version](project-configs/config-version): 2
[version](project-configs/version): version

[profile](project-configs/profile): profilename

[model-paths](project-configs/model-paths): [directorypath]
[seed-paths](project-configs/seed-paths): [directorypath]
[test-paths](project-configs/test-paths): [directorypath]
[analysis-paths](project-configs/analysis-paths): [directorypath]
[macro-paths](project-configs/macro-paths): [directorypath]
[snapshot-paths](project-configs/snapshot-paths): [directorypath]
[docs-paths](project-configs/docs-paths): [directorypath]
[asset-paths](project-configs/asset-paths): [directorypath]

[target-path](project-configs/target-path): directorypath
[log-path](project-configs/log-path): directorypath
[packages-install-path](project-configs/packages-install-path): directorypath

[clean-targets](project-configs/clean-targets): [directorypath]

[query-comment](project-configs/query-comment): string

[require-dbt-version](project-configs/require-dbt-version): version-range | [version-range]

[quoting](project-configs/quoting):
  database: true | false
  schema: true | false
  identifier: true | false

models:
  [<model-configs>](model-configs)

seeds:
  [<seed-configs>](seed-configs)

snapshots:
  [<snapshot-configs>](snapshot-configs)

sources:
  [<source-configs>](source-configs)
  
tests:
  [<test-configs>](test-configs)

vars:
  [<variables>](using-variables)

[on-run-start](project-configs/on-run-start-on-run-end): sql-statement | [sql-statement]
[on-run-end](project-configs/on-run-start-on-run-end): sql-statement | [sql-statement]

[dispatch](project-configs/dispatch-config):
  - macro_namespace: packagename
    search_order: [packagename]

dbt init command

dbt CLIでプロジェクトの初期化を行うインタラクティブなコマンド。

  • プロジェクト名
  • どのデータベースを使っているか?(必要なアダプタなどをインストール)
  • 接続に必要な各種情報( account, user, passwordなど)
    その後
  • プロジェクトのフォルダを生成する、必要最低限のサンプルファイル・フォルダ構成を用意
  • 接続プロフィールをローカルに作成。~/.dbt/profiles.yml

Existing project

すでにあるdbt Projectをダウンロードしたり、クローンしたりしても使うことができる。
接続プロファイルを作って、素早く作業ができるように。

profile_template.xml

dbt initを実行する際、接続情報として、profile_template.yml を探してもしあればそれを使う。
このファイルは2箇所あって

  • アダプタプラグイン dbt/include/postgres/profile_template.yml
  • 既存プロジェクト
profile_template.yml
fixed:
  account: abc123
  authenticator: externalbrowser
  database: analytics
  role: transformer
  type: snowflake
  warehouse: transforming
prompts:
  user:
    type: string
    hint: yourname@jaffleshop.com
  schema:
    type: string
    hint: usually dbt_<yourname>
  threads:
    hint: "your favorite number, 1-10"
    type: int
    default: 8
$ dbt init
Running with dbt=1.0.0-b2
Setting up your profile.
user (yourname@jaffleshop.com): summerintern@jaffleshop.com
schema (usually dbt_<yourname>): dbt_summerintern
threads (your favorite number, 1-10) [8]: 6
Profile internal-snowflake written to /Users/intern/.dbt/profiles.yml using project's profile_template.yml and your supplied values. Run 'dbt debug' to validate the connection.

Getting Started

dbtプロジェクトは、dbtがデータを変換するために使用するファイル.sqlのディレクトリです。.yml少なくとも、dbtプロジェクトには以下が含まれている必要があります。

  • プロジェクトファイル: dbt_project.yml
  • モデル: .sqlファイル 各モデルには、生データを分析の準備ができているデータセットに変換する、または多くの場合、そのような変換の中間ステップである単一のselectステートメントが含まれています。

プロジェクトには、スナップショット、シード、テスト、マクロ、ドキュメント、ソースなど、他の多くのリソースも含まれる場合があります。

Creating a dbt project

dbtプロジェクトがまだない場合は、次の手順に従って作成してください。dbtスタータープロジェクトには、デフォルトの構成と役立つメモが含まれています。

dbtCloud

dbtCloudで開発するときに新しいdbtプロジェクトを作成するには、

https://cloud.getdbt.com/ でアカウントを作る。 組織にアカウントがある場合は管理者に開発者として追加してもらうべし

dbt CLI

新しいdbtプロジェクトを作成するには、次のコマンドを実行する

$ dbt init [project name]

これにより、現在のパスに新しいディレクトリ(=プロジェクト)が作成される。 ./[project-name]

FAQs

dbtプロジェクトには何という名前をつけるヒィつようがありますか?
あなたの会社の名前はプロジェクト名に適切かも。

プロジェクトをどのように構成する必要がありますか?
プロジェクトの構成に最良の方法はありません、すべては組織でユニークです。
「dbt Labsでは、dbtプロジェクトをどう構成しているか?」 のドキュメントがあるのでそちらを参考にしてください。
https://discourse.getdbt.com/t/how-we-structure-our-dbt-projects/355

Using an existing project

dbtCloud

管理者に開発者として依頼する

dbt CLI

既存のプロジェクトで作業するには、次の手順に従います。

  1. アクセスできるホストされたgitリポジトリ(GitHub、GitLab、BitBucketなど)にプロジェクトがチェックインされていることを確認します。
  2. リポジトリをコンピュータに複製します。

Discussion