类别:

系统函数 (系统信息)

SYSTEM$CKE_HASH_FUNCTION

通过将 hashedDocumentIds 映射回 Cortex Search Service 中的原始文档主键,分析 Cortex Knowledge Extensions (CKE) 的使用情况。之所以需要这样做,是因为 Snowflake 出于隐私保护只会分享哈希处理后的 IDs。

该函数返回哈希后的文档标识符,该标识符会映射到 LISTING_ACCESS_HISTORY 视图 中的 HASHED_DOC_ID。

另请参阅:

SYSTEM$ENCODE_CKE_PRIMARY_KEY

语法

SYSTEM$CKE_HASH_FUNCTION( '<hash_version>', '<encoded_primary_key>' )

实参

hash_version

所使用的哈希函数版本,该信息在 LISTING_ACCESS_HISTORY 视图 视图中提供。

encoded_primary_key

调用 SYSTEM$ENCODE_CKE_PRIMARY_KEY 函数时返回的编码后主键。

返回

返回哈希版本指定的哈希编码主键。

示例

以下示例检索哈希版本并使用 SYSTEM$CKE_HASH_FUNCTION 为每个主键计算哈希处理后的文档 ID。在以下示例中,cke_document_daily_access 是从 LISTING_ACCESS_HISTORY 视图 中创建的视图:

WITH
  encoded_primary_keys AS
  (
    SELECT pkCol1,
          pkCol2,
          SYSTEM$ENCODE_CKE_PRIMARY_KEY(pkCol1, pkCol2) AS encoded_primary_key
      FROM your_cortex_search_table
  )
,
  hash_versions AS
  (
    SELECT DISTINCT(hash_version) AS hash_version
      FROM cke_document_daily_access
  )
SELECT pkCol1,
      pkCol2,
      hash_version,
      SYSTEM$CKE_HASH_FUNCTION(hash_version, encoded_primary_key) AS hashed_doc_id
  FROM encoded_primary_keys
  CROSS JOIN hash_versions;