CKEドキュメントのアクセス履歴¶
プロバイダーが:doc:`Cortex Knowledge Extensions(CKE)</user-guide/snowflake-cortex/cortex-knowledge-extensions/cke-overview>`内のどのドキュメントがアクセスされているかを把握できるように、Snowflakeは次の機能を提供します。
label-share-objects-accessed-array`内の:doc:/sql-reference/data-sharing-usage/listing-access-history`にあるCKEアクセス履歴データ。
:doc:`/sql-reference/functions/system_encode_cke_primary_key`システム関数。
:doc:`/sql-reference/functions/system_cke_hash_function`システム関数。
前提条件¶
:ref:`主キー<label-cortex_search_primary_keys>`は各ドキュメントの一意の識別子を定義するため、アクセス履歴を取得するには、:doc:`Cortex Search Service </user-guide/snowflake-cortex/cortex-search/cortex-search-overview>`に主キーを指定する必要があります。
注釈
既存のCortex Search Serviceの主キー列を変更すると、以前のCKEアクセス履歴が無効になります。
以前のCKEアクセス履歴を解釈するには、古い主キー列から新しい主キー列へのマッピングを保存します。
ドキュメントIDsの理解¶
ドキュメントIDsは、Cortex Search Serviceの:ref:`主キー<label-cortex_search_primary_keys>`で構成されます。顧客データを保護するため、Snowflakeはアクセス履歴を追跡する際に主キー列をエンコードしてハッシュ化します。次の関数を使用して、主キーを提供されたハッシュ化ドキュメントIDにマッピングできます。
SYSTEM$ENCODE_CKE_PRIMARY_KEY 関数:選択した列のセットから主キーを変換し、匿名化します。
SYSTEM$CKE_HASH_FUNCTION 関数:主キーをハッシュ化します。
LISTING_ACCESS_HISTORYビューでのCKEアクセス履歴の例¶
この例では、次のアクションを実行します。
:doc:`/sql-reference/data-sharing-usage/listing-access-history`ビューからCKEアクセス情報のみを取得し、他のすべてのイベントを除外する
:doc:`/sql-reference/functions/system_encode_cke_primary_key`関数を使用して、CKEドキュメントの主キー列のエンコードされた表現を構築する
ハッシュバージョンを取得し、:doc:`/sql-reference/functions/system_cke_hash_function`を使用してすべての主キーに対してハッシュ化されたドキュメントIDを計算する
計算されたハッシュ化されたIDsおよびバージョンをビューに結合して、元の主キー列を復元する
ステップ1:CKEアクセス情報のみを取得する日次アクセスサマリーテーブルを作成します。
ステップ2:エンコードされた主キーを格納するテーブルを作成します。
ステップ3。前のステップで作成したテーブルから、ハッシュバージョンを準備し、主キーに対してハッシュ化されたIDsを計算します。次に、:code:`cke_document_daily_access`テーブルをハッシュ化された主キービューと結合して、元の主キー列を復元します。