Teradata VantageでData Build Tool(dbt)を使用する
概要
このチュートリアルでは、Teradata Vantage で dbt (データ ビルド ツール) を使用する方法を説明します。これはオリジナルの dbt Jaffleショップチュートリアルに基づいています。いくつかのモデルは、Vantage でサポートされている SQL 方言に合わせて調整されています。
前提条件
-
Teradata Vantageインスタンスへのアクセス。
注記Vantage のテストインスタンスが必要な場合は、 https://clearscape.teradata.com で無料でプロビジョニングできます
-
Python 3.7、3.8、3.9、3.10、または 3.11 がインストールされていること。
dbtをインストールする
-
チュートリアル リポジトリのクロー ンを作成し、プロジェクト ディレクトリに移動します。
-
dbt とその依存関係を管理するための新しい Python 環境を作成します。
環境を有効化します。
- Windows
- MacOS
- Linux
Run in Powershell:
-
dbt-teradata
モジュールをインストールします。dbtのコアモジュールも依存関係のあるモジュールとして含まれているので、別にインストールする必要はありません。注記dbt 依存関係
dbt-core
モジュールは、dbt-teradata のバージョン 1.7.x まで依存関係として含まれていました。dbt-teradata
1.8.0 以降では、dbt-core
は依存関係としてインストールされません。したがって、dbt-teradata
のインストールに加えて、dbt-core
を明示的にインストールする必要があります。dbt アダプターをdbt-core
から分離する方法の詳細については、https://github.com/dbt-labs/dbt-core/discussions/9171 を参照してください。
dbtを構成する
Vantage データベースに接続するように dbt を構成します。以下の場所に profiles.yml
ファイルを作成します。
- Windows
- MacOS
- Linux
Run in Powershell:
次の設定を profile.yml
ファイルに追加します。 <host>
、 <user>
、 <password>
を Teradata Vantage インスタンスに合わせて調 整します。
データベースを設定する
以下の dbt プロファイルは、 jaffle_shop
というデータベースを指します。Teradata Vantage インスタンスにデータベースが存在しない場合は、作成されます。また、 schema
値を変更して、インスタンス内の既存のデータベースを指すようにすることもできます。
プロファイル ファイルが適切に配置されたので、セットアップを検証できます。
デバッグ コマンドがエラーを返した場合は、 profiles.yml
の内容に問題がある可能性があります。
Jaffle Shopウェアハウスについて
jaffle_shop
は、アプリ データベースの生データを、分析可能な顧客データと注文データを含むディメンションモデルに変換します。
アプリからの生データは、顧客、注文、支払いで構成され、以下のエンティティリレーションシップ図が示されます。
dbt は、これらの生データ テーブルを取得して、分析ツールにより適した以下のディメンションモデルを構築します。
dbtを実行する
生データテーブルを作成する
実際には、Segment、Stitch、Fivetran などのプラットフォームや、その他の ETL ツールから生データを取得します。この場合は、dbt の seed
機能を使用して、csv ファイルからテーブルを作成します。csv ファイルは ./data
ディレクトリにあります。各 csv ファイルから 1 つのテーブルが生成されます。dbt はファイルを検査し、型推論を行って、列に使用するデータ型を決定します。
jaffle_shop
データベースに raw_customers
、 raw_orders
、 raw_payments
の 3 つのテーブルが表示されます。テーブルには csv ファイルからのデータが入力されているはずです。