Intelligence Agentとは?

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環境でお試しいただくことを前提としております