dbt と FEAST を使用して Teradata Vantage でフィーチャストアを構築する方法
概要
このチュートリアルでは、生データを取得して FEAST 機能に変換する dbt パイプラインを作成する方法を示します。パイプラインは、データ変換に 'ClearScape Analyticsの機能' を活用します。変換の出力は FEAST に読み込まれ、ML モデルで使用できる機能を実現します。
はじめに
dbt
dbt (データ ビルド ツール) は、モダン データ スタックの基礎となるデータ変換ツールです。ELT (抽出、ロード、変換) の T を担当します。他のプロセスによって生データがデータ ウェアハウスまたはデータ レイクに取り込まれることが前提となります。その後、このデータを変換する必要があります。
Feast
Feast (Feature Store) は、既存のテクノロジーを活用して機械学習機能をリアルタイム モデルに管理および提供する柔軟なデータ システムです。特定のニーズに合わせてカスタマイズできます。また、トレーニングとサービスに機能を一貫して利用できるようにし、データ漏洩を回避し、ML をデータ インフラストラクチャから切り離すこともできます。
前提条件
-
Teradata Vantageインスタンスへの アクセス。
注記Vantage のテストインスタンスが必要な場合は、 https://clearscape.teradata.com で無料でプロビジョニングできます
-
Feast-Teradata がローカルにインストールされている。 Feast-Teradata のインストール手順 を参照してください。
-
dbtがローカルにインストールされている。 dbtのインストール手順 を参照してください。
目的
目標は、Teradata Vantage をソースとしてデータ パイプラインを作成し、dbt のいくつかの変数に対してデータ変換を実行する ことです。dbt で行うデータ変換の基本は、性別、婚姻状況、州コードなどの複数の列のワンホット エンコーディングです。さらに、アカウント タイプ列のデータは、いくつかの列に対して集計操作を実行することによって変換されます。これらすべてを組み合わせることで、変換されたデータを含む目的のデータセットが生成されます。変換されたデータセットは、FEAST への入力として使用され、特徴を保存します。その後、特徴を使用してモデルのトレーニング データセットが生成されます。
始めましょう
-
dbt、feast、およびそれらの依存関係を管理するための新しい Python 環境を作成します。環境をアクティブ化します。
-
チュートリアル リポジトリのクローンを作成し、ディレクトリをプロジェクト ディレクトリに変更します。
クローンされたプロジェクトのディレクトリ構造は以下のようになります。
銀行ウェアハウスについて
teddy_bankは銀行顧客の架空のデータセットであり、主に顧客、口座、および トランザクションは次のエンティティ関係図で表されます。
dbt はこの生データを取得し、ML モデリングおよび分析ツールにより適した以下のモデルを構築します。
dbtを構成する
次の内容でファイル $HOME/.dbt/profiles.yml
を作成します。Teradata インスタンスに合わせて <host>
、<user>
、<password>
を調整します。
次の dbt プロファイルは teddy_bank
というデータベースを指しています。 schema
の値を、Teradata Vantage インスタンス内の既存のデータベースを指すように変更できます。
設定を検証します。
デバッグ コマンドがエラーを返した場合は、 profiles.yml
の内容に問題がある可能性があります。
FEASTを構成する
Feast構成はVantageデータベースへの接続を指定します。Feastの初期化中に作成されたyamlファイル
プロジェクト、 $HOME/.feast/feature_repo/feature_store.yml
はオフラインストレージ、オンラインストレージ、プロバイダの詳細を保持できます
およびレジストリ。Teradata インスタンスに合わせて <host>
、 <user>
、 <password>
を調整します。
次のdbtプロファイルは teddy_bank
というデータベースを指しています。 schema
の値を変更 して、
Teradata Vantageインスタンス内の既存のデータベース
オフラインストアの設定
Teradata SQL レジストリの構文
dbtを実行する
このステップでは、customers
、accounts
、transactions
のデータテーブルを入力します。
ディメンションモデルを作成しする
生データ テーブルができたので、ディメンションモデルを作成するように dbt に指示できます。
FEASTの実行
Feature Repositoryの定義
-
TeradataSource:
Teradata (Enterprise または Lake) に格納された機能、または Teradata (NOS, QueryGrid) からの外部テーブルを介してアクセス可能な機能のデータソース -
Entity:
意味的に関連するフィーチャーの集合体 -
Feature View:
フィーチャビューは、特定のデータソースからのフィーチャデータのグループです。フィーチャビューを使用すると、フィーチャとそのデータソースを一貫して定義できるため、プロジェクト全体でフィーチャグループを再利用できるようになります。
トレーニングデータを生成します
トレーニング データを生成する方法はさまざまです。要件に応じて、機能ビュー マッピングを使用して 'entitydf' をソース データ テーブルと結合できます。以下は、トレーニング データセットを生成するサンプル関数です。
まとめ
このチュートリアルでは、Teradata Vantage で dbt と FEAST を使用する方法を説明しました。サンプル プロジェ クトは、Teradata Vantage から生データを取得し、dbt を使用して機能を生成します。次に、モデルのトレーニング データセットを生成するためのベースとなる機能のメタデータが FEAST を使用して作成され、機能ストアを作成するすべての対応するテーブルも、実行時に同じデータベース内で生成されます。