Intelligence Agentの概要や仕組みについて
Intelligence Agent は、データソースから記述統計やデータリネージといった、より複雑な処理を必要とするメタデータを抽出するためのバッチアプリケーションです。Metadata Agentと同様、AWS Batchを実行環境として処理を行いますが、処理内容の透明化や拡張性を上げるために、内部に組み込まれている dbt-core を使用してデータソース側でデータ変換用のテーブル・ビューを作成し、必要なデータの生成を行います。
Intelligence Agentでは、特に記述統計の生成時にデータソース側に対して負荷を要します。基本的にDWH内の1カラムあたりのレコード数は数億になることも予想されるため、Intelligence Agent内のdbtで生成されるデフォルトのビューでは、ランダムサンプリングや近似関数を使用して、なるべくデータソース側に負荷をかけないSQL文を採用しています。生成されるビューの特徴については、下記の表をご参照ください。
ビュー名 | 用途 |
quollio_lineage_table_level | テーブルレベルリネージの取得用 |
quollio_lineage_column_level | カラムレベルリネージの取得 |
quollio_sqllineage_sources | SQL解析型リネージ用のSQL実行ログを取得する |
quollio_stats_profiling_columns | 数値系の集計が可能かどうかを確認する |
quollio_stats_columns_xxx | 各テーブル内のカラムの統計値を出力する。Intelligence Agentがアクセスできる全テーブルの数だけ、ビューが生成される。 |
もし、
- 記述統計生成の際、WHERE句である特定の期間に絞って計算を行いたい
- デフォルトの関数とは別の手法で記述統計の計算を行いたい
- 別のワークロードで管理している記述統計用のテーブルを使い回したい
といった個別のご要望がある場合は、以下のような構成を取ることでお客様ごとのユースケースに沿った環境を構築することも可能です。この場合「専用のバッチスクリプト」自体は、公開されているIntelligence Agentのソースコードおよびdbtのmodelsを参考に別途バッチアプリケーションを構築いただくか、既存のワークロードに組み込むなどのパターンが想定されます。
また、Intelligence Agentの環境を構築する前に、生成されるビューの中身を確認をしたい場合は、PyPIからローカル端末にIntelligence Agentをインストールし、ビューの生成のみを実行することも可能です。Intelligence Agentの評価時などにご活用ください。
※Linux環境でお試しいただくことを前提としております