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