Snowflake

Intelligence Agent for Snowflakeに必要なCloudFormationテンプレート、Parameter Storeの情報、および取得するメタデータについて

CloudFormationテンプレート

テンプレートのご利用には、Quollio Data Intelligence Cloudへの事前登録が必要です。詳しくは、お問い合わせ | 株式会社Quollio Technologies ページよりご連絡ください。

※基盤環境は全てAgentから共通で使用するため、すでに存在している場合は構築不要です。

※リネージを表現するために、snowflakeのACCESS_HISTORYビューを利用しています。詳細はこちらをご参照ください。

※「QT」は会社としてのQuollio Technologies、「QDIC」は製品のQuollio Data Intelligence Cloudを指します。

Parameter Store一覧

パラメータストア名 概要
/quollio/company_id QTから提供されるCompany ID (テナントID)
/quollio/qdc_api_url Quollio External APIのURL
/quollio/snowflake/default/qdc_client_id QDIC側で発行したクレデンシャルのクライアントID
/quollio/snowflake/default/qdc_client_secret QDIC側で発行したクレデンシャルのクライアントシークレット
/quollio/snowflake/default/account_id SnowflakeのアカウントID。例)ab12345.ap-northeast-1.aws
/quollio/snowflake/default/username Snowflakeのユーザー名
/quollio/snowflake/default/build_role View作成用のSnowflakeのロール名。Intelligence Agent内部で使用するdbtに対して、特定のデータベースおよびスキーマに対するView作成の権限を付与します。
/quollio/snowflake/default/query_role Intelligence Agentが作成したViewに対してクエリを実行するためのSnowflakeのロール名。
/quollio/snowflake/default/password Snowflakeユーザーのパスワード
/quollio/snowflake/default/warehouse SQL実行に使用するSnowflakeのウェアハウス名。
/quollio/snowflake/default/target_database Viewを作成するSnowflakeのデータベース名。
/quollio/snowflake/default/target_schema Viewを作成するSnowflakeのスキーマ名。"target_database" で指定したデータベース内に存在するスキーマである必要があります。

実行コマンドと必要な権限

load_statsコマンドは、テーブルに対して実際に集計を行うため、実行する際は利用するワークロードへの影響を十分考慮した上で実行するようにしてください。

ローカル端末にライブラリをインストールし、下記を実施して、計算量と計算対象を十分制限した上で試していただくことをお勧めいたします。

  • CloudFormationのSampleMethodパラメータの値を十分低く設定する(デフォルトでは0.0001%のサンプル数に設定)。
  • query_userがselectできるテーブルを最小限にする。
コマンド 実行内容 必要な権限
build_view
    intelligence agentで利用するビューを作成します。
    作成されるビューの一覧は、下記を参照してください。

    下記テーブルへのselect権限が必要となります。

    • SNOWFLAKE.ACCOUNT_USAGE.
      ACCESS_HISTORY
    • SNOWFLAKE.ACCOUNT_USAGE.
      TABLES
    • SNOWFLAKE.ACCOUNT_USAGE.
      COLUMNS
    • SNOWFLAKE.ACCOUNT_USAGE.
      GRANTS_TO_ROLES
    load_lineage lineageデータをQDCに反映します。

    下記ビューへのselect権限が必要となります。

    • QUOLLIO_LINEAGE_COLUMN_LEVEL
    • QUOLLIO_LINEAGE_TABLE_LEVEL
    load_stats

    統計データをQDCに反映します。

    統計データはサンプリング値を利用して集計されます。デフォルトは、0.0001%のサンプル値を利用します。

    build_viewコマンドで作成されたビューへのselect権限が必要となります。

    query_roleパラメータで指定したロールでSELECTできるテーブルのみを対象とします。

      build_viewコマンドで作成されるビューの一覧

      ビュー名 内容 元となるテーブル
      QUOLLIO_LINEAGE_TABLE_LEVEL
        クエリ履歴から、テーブル(ビュー)間のリネージデータを生成します。

        下記テーブルへのselect権限が必要となります。

        • SNOWFLAKE.ACCOUNT_USAGE.
          ACCESS_HISTORY
        • SNOWFLAKE.ACCOUNT_USAGE.
          TABLES
        QUOLLIO_LINEAGE_COLUMN_LEVEL クエリ履歴から、カラム間のリネージデータを生成します。

        下記ビューへのselect権限が必要となります。

        • SNOWFLAKE.ACCOUNT_USAGE.
          ACCESS_HISTORY
        • SNOWFLAKE.ACCOUNT_USAGE.
          TABLES
        QUOLLIO_STATS_PROFILING_COLUMNS

        query_roleのパラメータに指定したロールでselect、もしくはReference可能なテーブルの一覧を取得します。

        こちらのビューから取得したテーブル一覧をもとに統計情報を取得します。

        • SNOWFLAKE.ACCOUNT_USAGE.COLUMNS
        • SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_ROLES

        QUOLLIO_STATS_COLUMNS

        下記の統計情報をテーブルのカラムを集計して取得します。

        • 最大値
        • 最小値
        • Nullの数
        • 平均値
        • カーディナリティ
        • 中央値
        • 最頻値
        • 標準偏差

        QUOLLIO_STATS_PROFILING_COLUMNSから取得したテーブルの一覧から、カラムごとに上記の統計情報を集計します。

        集計は、SampleMethodでし指定したsnowflakeのサンプリングメソッドにより抽出したレコードに対して行われます。デフォルトはSample(0.0001)をSQLに指定して実行します。

        QUOLLIO_STATS_PROFILING_COLUMNS

        注意点

        • 上流(生成元)がビューの場合はリネージの描画ができません
        • 下流(生成先)がビューの場合はカラムレベルのリネージ描画ができません