メインコンテンツまでスキップ

dbt Coreへの接続

この記事では、dbtとは何か、dbt Coreのインストール方法、接続方法について解説します。 dbt Cloud と呼ばれる dbt のホスト型バージョンも利用可能です。 詳細については、「dbt Cloudへの接続」を参照してください。

dbtとは何ですか?

dbt (Data Build Tool) は、select ステートメントを記述してデータを変換するための開発環境です。 dbt は、これらの SELECT 文をテーブルとビューに変換します。 dbt は、コードを生の SQL にコンパイルし、Databricks の指定されたデータベースでそのコードを実行します。 dbt は、バージョン管理、ドキュメント化、モジュール性など、協調的なコーディング パターンとベスト プラクティスをサポートします。

dbt はデータを抽出またはロードしません。 dbt は、「ロード後の変換」アーキテクチャを使用して、変換ステップのみに焦点を当てています。 dbt は、データベースにデータのコピーがすでにあることを前提としています。

dbt Core を使用すると、ローカル開発マシン上の任意の IDE で dbt コードを記述し、コマンド ラインから dbt を実行できます。 dbt Core には、dbt コマンドラインインターフェイス (CLI) が含まれています。 dbt CLIは無料で使用でき、オープンソースです。

dbt Core(およびdbt Cloud)は、ホストされたgitリポジトリを使用できます。 詳細については、 Web サイトの「 dbtプロジェクトの作成 」および 「既存のプロジェクトの使用 」を参照してください。dbt

インストール要件

dbt Core をインストールする前に、ローカルの開発マシンに次のものをインストールする必要があります。

  • Python 3.7 以降
  • Python 仮想環境を作成するためのユーティリティ ( pipenv など)

また、認証には次のいずれかが必要です。

  • (推奨) dbt Core がアカウントで OAuth アプリケーションとして有効になっている。 これはデフォルトで有効になっています。

    (オプション)dbt ログイン用のカスタム IdP については、「 Databricks で SSO を構成する」を参照してください。

  • 個人用アクセス トークン

注記

自動化されたツール、システム、スクリプト、アプリで認証する際のセキュリティのベストプラクティスとして、Databricks では OAuth トークンを使用することをお勧めします。

personal access token authentication を使用する場合、 Databricks では、ワークスペース ユーザーではなく 、サービスプリンシパル に属する personal access token を使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、「 サービスプリンシパルのトークンの管理」を参照してください。

ステップ 1: dbt Databricks アダプターをインストールする

Python 仮想環境 を使用すると、他の環境のパッケージ バージョンやコードの依存関係に関係なく、パッケージ バージョンとコードの依存関係がその特定の環境に分離されるため、使用することをお勧めします。これにより、予期しないパッケージ バージョンの不一致やコード依存関係の競合を減らすことができます。

Databricks では、バージョン 1.8.0 以降の dbt-databricks パッケージをお勧めします。

important

ローカルの開発マシンで次のオペレーティングシステムのいずれかを使用している場合は、最初に追加の手順を完了する必要があります:CentOS、MacOS、Ubuntu、Debian、およびWindows。 dbt Labs Web サイトの「 pip を使用して dbt をインストールする 」の「オペレーティング システムに前提条件がありますか」セクションを参照してください。

手順 2: dbt プロジェクトを作成し、接続設定を指定してテストする

dbt プロジェクト (dbt を使用するために必要な関連ディレクトリとファイルの集合) を作成します。 次に、DatabricksコンピュートSQL ウェアハウス 、またはその両方への接続設定を含む接続 プロファイル を構成します。セキュリティを強化するために、dbt プロジェクトとプロファイルはデフォルトで別々の場所に保存されます。

  1. 仮想環境がアクティブ化されたままの状態で、プロジェクト名を指定して dbt init コマンドを実行します。 このプロシージャ例では、 my_dbt_demoという名前のプロジェクトを作成します。

    Bash
    dbt init my_dbt_demo
  2. databricksデータベースまたはsparkデータベースを選択するように求められたら、databricksに対応する番号を入力します。

  3. host値の入力を求められたら、次の操作を行います。

    • コンピュートの場合は、 コンピュートの 「詳細オプション」の「JDBC/ODBC 」タブから 「サーバーホスト名 」の値を入力します。Databricks
    • SQLウェアハウスの場合は、SQLウェアハウスの「 接続の詳細 」タブから「サーバー・ホスト名 」の値を入力します。
  4. http_path値の入力を求められたら、次の操作を行います。

    • コンピュートの場合は、JDBCODBCDatabricksコンピュートの 「Advanced Options」の「 / 」タブから 「HTTP Path 」の値を入力します。
    • SQLウェアハウスの場合は、SQLウェアハウスの[接続の詳細] タブから[HTTP パス] の値を入力します。
  5. 認証タイプを選択するには、 use oauth (推奨) または use access tokenに対応する番号を入力します。

  6. 認証の種類として use access token を選択した場合は、Databricks 個人用アクセス トークンの値を入力します。

注記

自動化されたツール、システム、スクリプト、アプリで認証する際のセキュリティのベストプラクティスとして、Databricks では OAuth トークンを使用することをお勧めします。

personal access token authentication を使用する場合、 Databricks では、ワークスペース ユーザーではなく 、サービスプリンシパル に属する personal access token を使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、「 サービスプリンシパルのトークンの管理」を参照してください。

  1. desired Unity Catalog option値の入力を求められたら、use Unity Catalog または not use Unity Catalogに対応する番号を入力します。

  2. Unity Catalog の使用を選択した場合は、プロンプトが表示されたら catalog に必要な値を入力します。

  3. プロンプトが表示されたら、 schemathreads に必要な値を入力します。

  4. dbt は、エントリを profiles.yml ファイルに書き込みます。 このファイルの場所は、 dbt init コマンドの出力にリストされます。 この場所は、後で dbt debug --config-dir コマンドを実行して一覧表示することもできます。 ここでこのファイルを開いて、その内容を調べて確認できます。

    認証タイプとして use oauth を選択した場合は、マシン間 (M2M) またはユーザー間 (U2M) 認証プロファイルを profiles.ymlに追加します。

    プロファイルaws-oauth-u2mが指定されている profiles.yml ファイルの例を次に示します。targetaws-oauth-u2m を指定すると、U2M プロファイルが dbt で使用されるデフォルトの実行プロファイルとして設定されます。

    my_dbt_demo:
    outputs:
    aws-oauth-u2m:
    catalog: uc_demos
    host: "xxx.cloud.databricks.com"
    http_path: "/sql/1.0/warehouses/9196548d010cf14d"
    schema: databricks_demo
    threads: 1
    type: databricks
    auth_type: oauth
    target: aws-oauth-u2m

    Databricks では、 profiles.yml でシークレットを直接指定することはお勧めしません。 代わりに、クライアント ID とクライアント シークレットを環境変数として設定します。

  5. my_dbt_demoディレクトリで dbt debug コマンドを実行して、接続の詳細を確認します。

    認証タイプとして use oauth を選択した場合は、ID プロバイダーでサインインするように求められます。

important

開始する前に、コンピュートまたは SQLウェアハウスが動作していることを確認します。

次のような出力が表示されます。

Bash
cd my_dbt_demo
dbt debug
Console
...
Configuration:
profiles.yml file [OK found and valid]
dbt_project.yml file [OK found and valid]

Required dependencies:
- git [OK found]

Connection:
...
Connection test: OK connection ok

次のステップ

追加のリソース