dbtメタデータ連携

Prev Next
This content is currently unavailable in English. You are viewing the default (Ja - 日本語) version.
dbtメタデータ連携が可能なサービス

データベース系データストアにのみ、利用できます。

COMETAでは、dbt artifactsを利用してメタデータを取得し、COMETA上のテーブル・カラムにdbtに関するメタデータを付与できます。
以下では、dbtに関するメタデータを取得するための各種手順を説明します。

事前準備(Amazon S3側の設定)

dbt artifactsの格納

S3バケットを用意し、manifest.jsoncatalog.jsonを格納してください。
いずれも以下のdbtコマンドで生成できます。

dbt docs generate

なお、格納したS3バケットのパスはメモしてください。

IAMロールの作成

COMETAは、S3バケットに接続する際のAWS認証方式として、IAMロールを利用します。
なお、データ転送時に一時的な認証情報を取得するため、お客様が管理するAWSのIAMロールにて、
COMETAのAWSアカウントを信頼されたエンティティタイプとして登録いただく必要があります。
以下の手順に従い、IAMロールを作成してください。

  1. AWSのIAM Management Console画面より、ロール>ロールを作成をクリックします。
  2. 信頼されたエンティティを選択にて、以下の通り設定します。
    • 信頼されたエンティティタイプ:
      • AWSアカウントを選択します。
    • AWSアカウント:
      • 別のAWSアカウントを選択し、アカウント IDにはdbtメタデータ連携設定画面に表示されているCOMETAのAWSアカウントIDを入力します。
      • 外部 ID を要求するを有効にし、外部IDには任意の文字列を入力します。入力した文字列はメモしてください。
        dbt-metadata-integration-2024-10-28-0-47-0
  3. 許可を追加にて、任意に設定します。
  4. 名前、確認、および作成にて、任意に設定します。
  5. 作成したIAMロールの詳細画面にて、ARNをコピーします。

権限の付与

作成したIAMロールに対して権限を付与してください。
付与が必要な権限は、以下のとおりです。

  • s3:GetObject

dbtメタデータ連携の設定

Amazon S3の設定

項目名 必須 内容
ロールARN 作成したIAMロールのARNを入力します。
ARNはAWSコンソール上の該当のIAMロールの詳細ページよりコピーできます。
COMETAのAWSアカウントID - IAMロールを作成する際に必要となります。
詳しくは、IAMロールの作成を参照ください。
外部ID IAMロールの作成時に入力した外部IDを入力します。
バケット dbt artifactsが格納されているS3バケットを入力します。
パスプレフィックス - dbt artifactsが格納されているS3バケットのパスを入力します。
なお、末尾には/を入力しないでください。

Gitリポジトリの設定

項目名 必須 内容
リポジトリURL - dbtプロジェクトを管理しているGitリポジトリのURLを入力できます。
本設定に入力すると、アセット情報画面上にてURLリンクが表示されるようになります。
なお、この設定には必ずしも入力する必要はありません。

dbtメタデータ連携ジョブの実行

dbtメタデータ連携の設定が完了すると、該当のデータストア詳細画面のdbtメタデータ連携配下に設定が追加されます。
このとき、自動的にメタデータ連携ジョブが初回実行され、メタデータが取得されます。

なお、初回実行以降は、メタデータ連携ジョブは日次で実行されます。
日次実行では、アセット自動取り込み処理が先に実行され、その後にメタデータ連携ジョブが実行されます。

なお、メタデータ連携ジョブは、手動でも実行できます。
dbtメタデータ連携の設定画面にて、三点リーダー>dbtメタデータ連携ジョブを実行をクリックすると、手動実行できます。

dbt-metadata-integration-2024-10-28-0-47-1

対応しているResource type

対応しているdbtのResource typeは以下の通りです。

  • source
  • model
  • seed
  • snapshot

上記以外のResource typeには対応していないため、COMETAにデータは連携されません。