CREATE CORTEX SEARCH SERVICE¶
新しい Cortex Search サービス を作成するか、既存のものを置き換えます。
構文¶
CREATE [ OR REPLACE ] CORTEX SEARCH SERVICE [ IF NOT EXISTS ] <name>
ON <search_column>
ATTRIBUTES <col_name> [ , ... ]
WAREHOUSE = <warehouse_name>
TARGET_LAG = '<num> { seconds | minutes | hours | days }'
COMMENT = '<comment>'
AS <query>;
パラメーター¶
name
Cortex Search Service用のノートブックの識別子(つまり、名前)を指定する文字列。ノートブックが作成されるスキーマに対して一意にする必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
ON search_column
検索したいベース・テーブルのテキスト列を指定します。この列はテキスト値である必要があります。
ATTRIBUTES col_name [ , ... ]
サービスにクエリを発行する際にフィルタリングしたいベーステーブルの列のリストをカンマ区切りのリストで指定します。属性列は、明示的な列挙またはワイルドカード(
*
)を使用して、ソース・クエリに含める必要があります。WAREHOUSE = warehouse_name
ソースクエリを実行し、検索インデックスを構築し、 TARGET_LAG ターゲットに従って更新し続けるために使用するウェアハウスを指定します。
TARGET_LAG = 'num { seconds | minutes | hours | days }'
Cortex Search Serviceのコンテンツがソースクエリで指定されたベーステーブルの更新から遅れる最大時間を指定します。
COMMENT = 'comment'
サービスのコメントを指定します。
AS query
サービスが作成されるベース・テーブルを定義するクエリを指定します。
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
---|---|
CREATE CORTEX SEARCH SERVICE |
動的テーブルの作成を予定のスキーマ。 |
SELECT |
新しい動的テーブルに対してクエリを実行する予定の既存のテーブルとビュー。 |
USAGE |
テーブルのリフレッシュに使用する予定のウェアハウス。 |
スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
注意
Cortex Search Serviceを作成するには、ロールがCortex LLM Functionsを使用するのに必要なのと同じ権限を持っている必要があります。 Cortex LLM Functions Required Privileges をご参照ください。
使用上の注意¶
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
Cortex Searchサービスのソースクエリを実行するために使用されるウェアハウスのサイズは、各リフレッシュの速度とコストに影響します。より大きなウェアハウスは、ビルドとリフレッシュの時間を短縮します。ただし、このプレビュー期間中、Snowflake は Cortex Search サービスに MEDIUM 以下のウェアハウスサイズを使用することを推奨します。
Snowflake では、他のワークロードと干渉しないように、Cortex Search サービスごとに専用のウェアハウスを使用することを推奨しています。
検索インデックスはcreate文の一部として構築されるため、 CREATE CORTEX SEARCH SERVICE 文は大きなデータセットの場合、完了までに時間がかかることがあります。
例¶
次の例では、 mysvc
という名前の Cortex Search サービスを作成します。
USE SCHEMA support_db.public;
CREATE OR REPLACE CORTEX SEARCH SERVICE mysvc
ON transcript_text
ATTRIBUTES region,agent_id
WAREHOUSE = mywh
TARGET_LAG = '1 hour'
AS (
SELECT
transcript_text,
date,
region,
agent_id
FROM support_db.public.transcripts_etl
);