このドキュメントの対象ユーザー
連携エージェントの設計コンセプト
連携エージェントは、お客様のデータソースに対するデータセキュリティを担保するため、以下を考慮して設計されています。
各エージェント共通
接続情報、クレデンシャルの管理
データソースへの接続に必要な情報およびクレデンシャルは、お客様AWSアカウントでパラメータストアに登録します。(QDICでは情報の管理を行なわず、当社AWSアカウント内に情報は保持されません。)
アクセスコントロール
AWS IAMのロールの引き受け(Assume Role)機能を使用し、お客様AWSアカウントから当社AWSアカウントへ、アカウントレベルでのアクセスコントロールを強制するようにしています。これにより、お客様のメタデータは、お客様のQDICカタログに安全に送出されます。
CloudFormationテンプレートの使用
エージェントの構築には、当社が提供するCloudFormationテンプレートを使用することで、作成するAWSリソースを透明化しています。
Metadata Agent
データディクショナリ、システムビュー等から取得できるメタデータのみを、最小限の権限で取得します。メタデータの取得にあたって、REFERENCES権限を使用できるデータソースに対しては、集計処理およびSELECT権限を必要とする処理をできるだけ避け、データソースへの負荷を軽減しています。(データソースによっては、最小限の権限がSELECT権限の場合がありますが、この場合でもカタログ化対象のオブジェクトの実データは参照していません。)
Intelligence Agent
エージェントは、処理内容の透明化や拡張性を上げるために、コンテナイメージ内に組み込まれたツール(dbt)を使用してお客様のデータソース内に取得したメタデータを格納するビューを作成し、カタログに反映する情報をの生成を行います。
統計情報について
統計情報値の計算処理では、カタログ化対象のオブジェクトの実データを参照します。そのため、統計情報値の計算処理では、データソース上で負荷が発生します。エージェントでは値の計算にランダムサンプリングや近似関数を使用し、仮にデータウェアハウスの1カラム(列)あたりのレコード数は数億になる場合でも、データソース上で負荷をかけない処理を行っています。