DBT Transformation

Version 22.0.8483


DBT Transformation


CData Sync はdbt Core(dbt Labs™ が提供するデータ構築ツール)と統合され、パワフルなTransformation が作成できるようになりました。この統合により、Transformation の開発・制御・実行が可能になり、サポートされている同期先データベースでPython モデルを構築できます。

プロジェクトリポジトリを完全に制御することができ、SQL SELECT ステートメントを記述しデータを変換してモデルを構築できます。Sync は、選択した同期先でこれらのTransformation を実行するためのパイプラインを作成するだけです。

単純なTransformation を実行するだけであれば、基本的なSQL Transformation で十分です。しかし、高度なモデリングが必要な場合は、dbt Core モデルを使用するTransformation の方がより盤石な機能を提供します。例えば、モデルに依存関係が含まれている場合、dbt Core プロジェクトを使用するTransformation はそれらの依存関係を認識して尊重し、モデルを正しい順序で構築できるようにします。

サポートされている同期先

DBT Transformation は、次の同期先でサポートされています。

  • Snowflake

  • Amazon Redshift

  • Databricks

  • PostgreSQL

dbt Core の詳細

DBT Transformation 用ツールのセットアップ

DBT Transformation を有効にするには、最初にdbt Core とその他のツールをセットアップする必要があります。

  1. Git for Windows およびWindows 版Python 3.7 以降

    Note:Git のようなアプリケーションは必要ありません。ただし、バージョン管理、プロジェクト共有、ソースコードの管理などができるため、このようなリポジトリが推奨されます。

    Sync のDBT Transformation 設定で後ほど使用するためにGit で以下の情報を見つけてコピーしてください。

    • Git リポジトリURL - リポジトリのURL はGit リポジトリウィンドウで確認できます。Code をクリックしてClone ダイアログを開きます。URL はダイアログのHTTPS タブにあります。URL フィールドの右端にあるコピーアイコンをクリックして、URL をコピーします。後ほどSync で使用するためにアイコンを保存してください。

    • パーソナルアクセストークン - パーソナルアクセストークンを取得するには:

      1. Git ウィンドウの右上にある自分のプロファイルアイコンをクリックし、Settings を選択してProfile settings ページを開きます。

      2. Developer Settings -> Personal access tokens を選択します。New personal access token ペインが開きます。

      3. Select scopes カテゴリにあるrepo チェックボックスを選択します(この項目では他の条件も設定できますが、必須ではありません)。例えば、Expiration カテゴリでトークンの有効期限を選択したい(または有効期限なし)場合があります。

      4. ページの一番下のGenerate token をクリックします。生成されたトークンは後でSync で使用するためにコピーして保存してください。

      パーソナルアクセストークンの取得についての詳細は、Creating a personal access token を参照してください。

  2. Sync がインストールされているマシンに、dbt Core と同期先用のアダプタープラグインをインストールします。プラグインは、前述のリスト にある同期先ごとに用意されています。

  3. Git リポジトリをローカルマシンにクローンして、dbt プロジェクトをローカルにダウンロードします。Sync はセットアップ時や各実行前にリポジトリをクローンし、プロジェクトのあらゆる変更がSync の次の実行に反映されることを保証します。

  4. Sync でTransformation を作成します(YML またはSQL ファイルを含むdbt プロジェクトを使用します)。次のセクションで説明します。

DBT Transformation の作成

Transformation を作成するには:

  1. Sync を開き変換ページに移動します。

  2. 変換を作成をクリックします。次に、新しい変換を作成ダイアログで、フィールドに以下のように入力します。

    • Transformation Name - 変換の名前を入力。

    • Type - 変換の種類としてDBT を選択。

    • Project Folder - Github を選択。

    • Git Repository URL - 先ほどGit でコピー したURL を入力。このURL は、https:github.com/owner/repository.git の形で指定する必要があります。

    • Token - 先ほどGit でコピー したパーソナルアクセストークンを入力。

    • Destination Schema - 任意の同期先スキーマを追加。

  3. 作成をクリックします。

Transformation を作成したら、ジョブ設定タブから、設定の調整、通知アラートの設定、変換の実行をスケジューリングできます。これらのタブや設定についてはUnderstanding the Transformations Detail Page セクションで説明します。

dbt Cloud の詳細

dbt Cloud へのCData Sync の接続

dbt Cloud は、dbt プロジェクトでのコードの記述、実行、テスト、およびバージョン管理をブラウザから行える統合開発環境(IDE)です(コマンドラインの使用は不要です)。

dbt Cloud に接続するには:

  1. Sync の設定ページのAdvanced タブを開き、アカウントID とAPI キーを指定します。

    • アカウントID は、dbt Cloud でDevelop -> Classic IDE を選択した際に表示されるURL で確認することができます。

      例:https://cloud.getdbt.com/ide/#/accounts/XXXXXX/projects/123456/develop(アカウントID はこのパスの_XXXXXX_ の部分です。)

    • API キーは、Settings アイコン(dbt Cloud ウィンドウの右上)をクリックしてAccount Settings -> API Access を選択することで入手できます。キーは、API Access ページ下部のAPI セクションにリストされています。

  2. 接続テストをクリックして接続されることを確認します。

DBT Cloud Transformation の作成

Transformation を作成するには:

  1. Sync の管理コンソールの変換タブをクリックします。

  2. 変換を作成をクリックします。次に、新しい変換を作成モーダルで、フィールドに以下のように入力します。

    • Transformation Name - 変換の名前を入力。

    • Type - dbt Cloud を選択。

    • dbt Job - ドロップダウンリストからジョブを選択。

  3. 作成をクリックします。

Transformation を作成したら、ジョブ設定タブから、設定の調整、通知アラートの設定、変換の実行をスケジューリングできます。これらのタブや設定については、次のセクションで説明します。

変換の詳細ページについて

変換の詳細ページは2つのセクションで構成されています。

  • 接続 - 接続を表示します。編集はできません。

  • ジョブ設定 - Transformation で定義できるさまざまなジョブ設定が含まれます。

ジョブ設定は4つのタブで表示されます。ステータストリガー通知設定タブです。これらのタブでの設定については、次のセクションで説明します。

ステータスタブ

ステータスタブには、各Transformation の実行開始日時、ステータス、および詳細(影響を受けたレコード、失敗など)が表示されます。このタブでは、Transformation のログおよび履歴も確認できます。個々のTransformation をクリックすると、そのTransformation のログを含むモーダルが開きます。

トリガータブ

トリガータブでは、Transformation の実行時にトリガーとなる以下のオプションを設定できます。

  • None - スケジュールオプションをオフにし、手動でTransformation を開始できるようにします。

  • Schedule - Transformation を実行するためのスケジュールを設定できます。この設定により、間隔フィールドも有効になります。間隔の設定には、より細かな設定を選択することが可能です。

    • Minute - この設定により、 オプションが有効になり、Transformation を実行する時間を分単位(10、15、20、または30分ごと)で指定できます。

    • Hourly - この設定により、毎時何分 フィールドが有効になり、毎時何分(0-59)にTransformation が実行されるかを設定できます。例えば、毎時15分にTransformation を実行することができます。

    • Daily - この設定により、 フィールドが有効になり、Transformation を実行する毎日の特定の時間を設定できます。

    • Weekly - この設定により、曜日/日付およびの2つのフィールドが有効になり、Transformation を実行する特定の曜日と時間を指定できます。

    • Monthly - この設定でも、曜日/日付およびフィールドが有効になります。ただし、曜日/日付では、各月の特定の日付(1から31の値、または最終日)と時間を選択します。

  • Advanced - この設定により、Cron 式フィールドが有効になり、Transformation の実行を開始するためのcron ジョブを記述できます。

    スケジュール タイプは、複数のジョブを実行している場合に便利です。どのジョブの後にTransformation を実行するかを指定できないため、複数のジョブに対してジョブ後オプションを使用することはできません。

  • ジョブ後 - このオプションは、利用可能なすべてのジョブをリスト表示するジョブオプションを有効にします。Transformation を実行するための特定のジョブを選択できます。

    ジョブフィールドのタスクを追加をクリックすると、データに対して実行するさまざまなタスクを指定することも可能です。タスクを追加モーダルが開いたら、実行するタスクを選択して追加をクリックします。

    ジョブタスクのクエリによって同期先に新しいレコードが生成されると、Transformation が実行されます。クエリが新しいレコードを生成しない場合(つまり、ソースまたは同期先に何も変更がない場合)、Transformation は実行されません。

  • API Trigger - このフィールドでは、API からTransformation を実行する方法の例を示しています。

通知タブ

変換ジョブ設定ページの通知タブで、Transformation のE メール通知を設定できます。すべてのTransformation のE メール通知を受け取るか、エラーが発生したTransformation についてのみ通知を受け取るかを選択できます。

設定タブ

設定タブには以下の標準オプションが含まれています。

  • コマンドタイムアウト

  • プロジェクトパス

  • DBT スキーマ

  • スレッド