Openflow Connector for SharePoint を設定する¶
注釈
このコネクタは、 Snowflakeコネクタ規約 に従うものとします。
このトピックでは、Openflow Connector for SharePoint を設定する手順について説明します。
前提条件¶
Openflow Connector for SharePoint について を確認してください。
Ensure that you have Openflowの設定 - BYOC or Set up Openflow - Snowflake Deployments.
If using Openflow - Snowflake Deployments, ensure that you've reviewed configuring required domains and have granted access to the required domains for the SharePoint connector.
認証情報を取得する¶
SharePoint 管理者として、以下のアクションを実行します。
Ensure that you have a Microsoft Graph application with the appropriate Microsoft Graph permissions based on your use case:
For ACL connectors:
Sites.Selected: 指定したサイトのみにアクセスを制限します。
Files. SelectedOperations .Selected: 指定されたサイトのファイルのみにアクセスを制限します。
GroupMember .Read.All: SharePoint グループ権限の解決に使用します。
User. ReadBasic .All:Microsoft365ユーザーのメールの解決に使用します。
For no-ACL connectors:
Sites.Selected: 指定したサイトのみにアクセスを制限します。
Files. SelectedOperations .Selected: 指定されたサイトのファイルのみにアクセスを制限します。
注釈
No-ACL connectors do not fetch user permissions or group information, so they do not require the
GroupMember.Read.AllandUser.ReadBasic.Allpermissions.Configure SharePoint to enable OAuth authentication as described in Get access without a user. The connector uses the following Microsoft Graph APIs to fetch data from SharePoint:
Snowflakeに取り込みたいファイルやフォルダーがあるMicrosoft 365 SharePoint サイトのサイト URL、およびAzureまたはOffice 365アカウント管理者からの認証情報を取得します。
Snowflakeアカウントを設定する¶
Snowflakeアカウント管理者として、以下のタスクを手動で、または下記に含まれるスクリプトを使用して実行します。
新しいロールを作成するか、既存のロールを使用して データベース権限 を付与します。
タイプを SERVICE として、新しいSnowflakeサービスユーザーを作成します。
Snowflakeサービスユーザーに、前の手順で作成したロールを付与します。
ステップ2のSnowflake SERVICE ユーザーを key-pair auth で構成します。
Snowflakeではこの手順を強く推奨します。Openflowがサポートするシークレットマネージャ(AWS、Azure、Hashicorpなど)を構成し、公開キーと秘密キーを秘密ストアに格納します。
注釈
何らかの理由でシークレットマネージャを使用したくない場合は、組織のセキュリティポリシーに従って、キーペア認証に使用する公開キーと秘密キーファイルを保護する責任があります。
シークレットマネージャを構成したら、その認証方法を決定します。AWS 上では、Openflowに関連付けられた EC2 インスタンスロールが推奨されます。こうすることで、他の秘密を永続化する必要がなくなるからです。
Openflowで、右上のハンバーガーメニューから、このシークレットマネージャーに関連付けられたパラメータープロバイダーを構成します。Controller Settings » Parameter Provider に移動してから、パラメーター値を取得します。
この時点で、すべての認証情報を関連するパラメーターパスで参照することができるため、機密性の高い値をOpenflow内で永続化する必要はありません。
他のSnowflakeユーザーが、コネクタによって取り込まれた生の取り込みドキュメントやとテーブルへのアクセスを必要とする場合は(Snowflakeでのカスタム処理のためなど)、それらのユーザーにステップ1で作成したロールを付与します。
コネクタが使用するウェアハウスを指定します。まずは最小のウェアハウスサイズから始め、複製するテーブルの数や転送するデータ量に応じて異なるサイズを試してみてください。テーブル数が大きい場合は、通常、ウェアハウスのサイズを大きくするよりも、 マルチクラスターウェアハウス を使用した方がスケーリングが向上します。
設定例¶
--The following script assumes you'll need to create all required roles, users, and objects. --However, you may want to reuse some that are already in existence. --Create a Snowflake service user to manage the connector USE ROLE USERADMIN; CREATE USER <openflow_service_user> TYPE=SERVICE COMMENT='Service user for Openflow automation'; --Create a pair of secure keys (public and private). For more information, see --key-pair authentication. Store the private key for the user in a file to supply --to the connector’s configuration. Assign the public key to the Snowflake service user: ALTER USER <openflow_service_user> SET RSA_PUBLIC_KEY = '<pubkey>'; --Create a role to manage the connector and the associated data and --grant it to that user USE ROLE SECURITYADMIN; CREATE ROLE <openflow_connector_admin_role>; GRANT ROLE <openflow_connector_admin_role> TO USER <openflow_service_user>; --The following block is for USE CASE 2 (Cortex connect) ONLY --Create a role for read access to the cortex search service created by this connector. --This role should be granted to any role that will use the service CREATE ROLE <cortex_search_service_read_only_role>; GRANT ROLE <cortex_search_service_read_only_role> TO ROLE <whatever_roles_will_access_search_service>; --Create the database the data will be stored in and grant usage to the roles created USE ROLE ACCOUNTADMIN; --use whatever role you want to own your DB CREATE DATABASE IF NOT EXISTS <destination_database>; GRANT USAGE ON DATABASE <destination_database> TO ROLE <openflow_connector_admin_role>; --Create the schema the data will be stored in and grant the necessary privileges --on that schema to the connector admin role: USE DATABASE <destination_database>; CREATE SCHEMA IF NOT EXISTS <destination_schema>; GRANT USAGE ON SCHEMA <destination_schema> TO ROLE <openflow_connector_admin_role>; GRANT CREATE TABLE, CREATE DYNAMIC TABLE, CREATE STAGE, CREATE SEQUENCE, CREATE CORTEX SEARCH SERVICE ON SCHEMA <destination_schema> TO ROLE <openflow_connector_admin_role>; --The following block is for CASE 2 (Cortex connect) ONLY --Grant the Cortex read-only role access to the database and schema GRANT USAGE ON DATABASE <destination_database> TO ROLE <cortex_search_service_read_only_role>; GRANT USAGE ON SCHEMA <destination_schema> TO ROLE <cortex_search_service_read_only_role>; --Create the warehouse this connector will use if it doesn't already exist. Grant the --appropriate privileges to the connector admin role. Adjust the size according to your needs. CREATE WAREHOUSE <openflow_warehouse> WITH WAREHOUSE_SIZE = 'MEDIUM' AUTO_SUSPEND = 300 AUTO_RESUME = TRUE; GRANT USAGE, OPERATE ON WAREHOUSE <openflow_warehouse> TO ROLE <openflow_connector_admin_role>;Copy
Use case 1: Ingest files only¶
Use a connector to:
Ingest and continuously update Sharepoint files for custom processing within Snowflake
Optionally ingest file permissions (ACL connectors) to persist access controls downstream
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタを構成します。
コネクタをインストールする¶
注釈
There are multiple variants of the SharePoint connector. Choose the variant that best fits your use case as described in Variants of the Openflow Connector for SharePoint.
Navigate to the Openflow overview page. In the Featured connectors section, select View more connectors.
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
In the Select runtime dialog, select your runtime from the Available runtimes drop-down list and click Add.
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
プロセスグループパラメーターを入力する
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
Sharepoint取り込みパラメーター、 Sharepoint宛先パラメーター、 Sharepointソースパラメーター の説明に従って、必要なパラメーター値を入力します。
Sharepointソースパラメーター¶
For all connectors:
パラメーター |
説明 |
|---|---|
SharePoint サイト URL |
URL または SharePoint コネクタがコンテンツを取り込むサイト |
SharePoint クライアント ID |
Microsoft Entraクライアント ID。クライアント の詳細 ID とMicrosoft Entraでそれを見つける方法については、をご参照ください。アプリケーション ID (クライアント ID). |
SharePoint クライアントシークレット |
Microsoft Entraクライアントシークレット。クライアントシークレットの詳細と、Microsoft Entraでそれを見つける方法については、をご参照ください。証明書およびシークレット. |
SharePoint テナント ID |
Microsoft Entraテナント ID。テナントの詳細 ID とMicrosoft Entraでそれを見つける方法については、をご参照ください。`Microsoft 365テナントを見つける ID<https://learn.microsoft.com/en-us/sharepoint/find-your-office-365-tenant-id>`_. |
For ACL connectors only:
パラメーター |
説明 |
|---|---|
Sharepointアプリケーション秘密キー |
PEM 形式で生成されたアプリケーション秘密キー。キーは暗号化されていない必要があります。 |
Sharepointサイトドメイン |
同期されたSharepointサイトのドメイン名。 |
Sharepointアプリケーション証明書 |
PEM 形式で生成されたアプリケーション証明書。 |
Sharepoint宛先パラメーター¶
パラメーター |
説明 |
必須 |
|---|---|---|
宛先データベース |
データが永続化されるデータベース。Snowflakeにすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。 |
有り |
宛先スキーマ |
データが永続化されるスキーマ。これはSnowflakeにすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。 次の例をご参照ください。
|
有り |
Snowflake認証ストラテジー |
以下を使用する場合:
|
有り |
Snowflakeアカウント識別子 |
以下を使用する場合:
|
有り |
Snowflake秘密キー |
以下を使用する場合:
|
無し |
Snowflake秘密キーファイル |
以下を使用する場合:
|
無し |
Snowflake秘密キーパスワード |
以下を使用する場合
|
無し |
Snowflakeロール |
以下を使用する場合
|
有り |
Snowflakeのユーザー名 |
以下を使用する場合
|
有り |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス。 |
有り |
Sharepoint取り込みパラメーター¶
For all connectors:
パラメーター |
説明 |
|---|---|
SharePoint ソースフォルダー |
このフォルダーとそのすべてのサブフォルダーからサポートされているファイルがSnowflakeに取り込まれます。フォルダーパスは共有ドキュメントライブラリからの相対パスです。 |
取り込むファイルの拡張子 |
取り込むファイルの拡張子を指定するコンマ区切りリスト。コネクタは、可能であれば最初にファイルを PDF 形式に変換しようとします。それにもかかわらず、元のファイル拡張子に対して拡張子チェックが実行されます。変換可能な形式については、 形式オプション をご参照ください。指定されたファイル拡張子の一部がCortex Parse Documentでサポートされていない場合、コネクタはそれらのファイルを無視してイベントログに警告メッセージを記録し、他のファイルの処理を続行します。 |
Sharepointドキュメントライブラリ名 |
ファイルを取り込む SharePoint サイト内のライブラリ。 |
Snowflakeファイルのハッシュテーブル名 |
コンテンツが変更されたかどうかを判断するためにファイルのハッシュを格納するテーブルの名前。このパラメーターは通常、変更すべきではありません。 |
For ACL connectors only:
パラメーター |
説明 |
|---|---|
Sharepointサイトグループ有効化 |
サイトグループ機能を有効にするかどうかを指定します。 |
フローを実行します。
プロセスグループを開始します。フローでは、Snowflake内部に必要なオブジェクトをすべて作成します。
インポートしたプロセスグループを右クリックし、 開始 を選択します。
Use case 2: Ingest files and perform processing with Cortex¶
事前定義されたフロー定義を使用して、次を行います。
Create AI assistants for documents within your organization's SharePoint site
Enable your AI assistants to adhere to access controls specified in your organization's SharePoint site
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタを構成します。
コネクタをインストールする¶
取り込んだデータを格納するコネクタ用に、Snowflakeでデータベースとスキーマを作成します。最初のステップで作成したロールに必要な データベース権限 を付与します。ロールのプレースホルダーを実際の値で置き換え、以下の SQL コマンドを使用します。
CREATE DATABASE DESTINATION_DB; CREATE SCHEMA DESTINATION_DB.DESTINATION_SCHEMA; GRANT USAGE ON DATABASE DESTINATION_DB TO ROLE <CONNECTOR_ROLE>; GRANT USAGE ON SCHEMA DESTINATION_DB.DESTINATION_SCHEMA TO ROLE <CONNECTOR_ROLE>; GRANT CREATE TABLE ON SCHEMA DESTINATION_DB.DESTINATION_SCHEMA TO ROLE <CONNECTOR_ROLE>;
Copy
Navigate to the Openflow overview page. In the Featured connectors section, select View more connectors.
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
In the Select runtime dialog, select your runtime from the Available runtimes drop-down list and click Add.
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
プロセスグループパラメーターを入力する
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
Sharepoint Cortex Connectソースパラメーター、 Sharepoint Cortex Connect宛先パラメーター、 Sharepoint Cortex Connect取り込みパラメーター の説明に従って、必要なパラメーター値を入力します。
Sharepoint Cortex Connectソースパラメーター¶
For all connectors:
パラメーター |
説明 |
|---|---|
SharePoint サイト URL |
URL または SharePoint コネクタがコンテンツを取り込むサイト |
SharePoint クライアント ID |
Microsoft Entraクライアント ID。クライアント の詳細 ID とMicrosoft Entraでそれを見つける方法については、をご参照ください。アプリケーション ID (クライアント ID). |
SharePoint クライアントシークレット |
Microsoft Entraクライアントシークレット。クライアントシークレットの詳細と、Microsoft Entraでそれを見つける方法については、をご参照ください。証明書およびシークレット. |
SharePoint テナント ID |
Microsoft Entraテナント ID。テナントの詳細 ID とMicrosoft Entraでそれを見つける方法については、をご参照ください。`Microsoft 365テナントを見つける ID<https://learn.microsoft.com/en-us/sharepoint/find-your-office-365-tenant-id>`_. |
For ACL connectors only:
パラメーター |
説明 |
|---|---|
Sharepointアプリケーション秘密キー |
PEM 形式で生成されたアプリケーション秘密キー。キーは暗号化されていない必要があります。 |
Sharepointサイトドメイン |
同期されたSharepointサイトのドメイン名。 |
Sharepointアプリケーション証明書 |
PEM 形式で生成されたアプリケーション証明書。 |
Sharepoint Cortex Connect宛先パラメーター¶
パラメーター |
説明 |
必須 |
|---|---|---|
宛先データベース |
データが永続化されるデータベース。Snowflakeにすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。 |
有り |
宛先スキーマ |
データが永続化されるスキーマ。これはSnowflakeにすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。 次の例をご参照ください。
|
有り |
Snowflake認証ストラテジー |
以下を使用する場合:
|
有り |
Snowflakeアカウント識別子 |
以下を使用する場合:
|
有り |
Snowflake秘密キー |
以下を使用する場合:
|
無し |
Snowflake秘密キーファイル |
以下を使用する場合:
|
無し |
Snowflake秘密キーパスワード |
以下を使用する場合
|
無し |
Snowflakeロール |
以下を使用する場合
|
有り |
Snowflakeのユーザー名 |
以下を使用する場合
|
有り |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス。 |
有り |
Sharepoint Cortex Connect取り込みパラメーター¶
For all connectors:
パラメーター |
説明 |
|---|---|
SharePoint ソースフォルダー |
このフォルダーとそのすべてのサブフォルダーからサポートされているファイルがSnowflakeに取り込まれます。フォルダーパスは共有ドキュメントライブラリからの相対パスです。 |
取り込むファイルの拡張子 |
取り込むファイルの拡張子を指定するコンマ区切りリスト。コネクタは、可能であれば最初にファイルを PDF 形式に変換しようとします。それにもかかわらず、元のファイル拡張子に対して拡張子チェックが実行されます。変換可能な形式については、 形式オプション をご参照ください。指定されたファイル拡張子の一部がCortex Parse Documentでサポートされていない場合、コネクタはそれらのファイルを無視してイベントログに警告メッセージを記録し、他のファイルの処理を続行します。 |
Sharepointドキュメントライブラリ名 |
ファイルを取り込む SharePoint サイト内のライブラリ。 |
Snowflakeファイルのハッシュテーブル名 |
コンテンツが変更されたかどうかを判断するためにファイルのハッシュを格納するテーブルの名前。このパラメーターは通常、変更すべきではありません。 |
OCR モード |
Parsing documents with AI_PARSE_DOCUMENT 関数でファイルを解析するときに使用する OCR モード。値は |
Snowflake Cortex Search Serviceユーザーロール |
Cortex Search serviceの使用権限を割り当てられたロールの識別子。 |
For ACL connectors only:
パラメーター |
説明 |
|---|---|
Sharepointサイトグループ有効化 |
サイトグループ機能を有効にするかどうかを指定します。 |
プレーンを右クリックし、 Enable all Controller Services を選択します。
インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。
ユースケース3: コネクタ定義をカスタマイズする¶
コネクタ定義をカスタマイズして、次を実行します。
Document AI で、取り込んだファイルを処理します。
取り込んだファイルにカスタム処理を実行します。
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタを構成します。
コネクタをインストールする¶
Navigate to the Openflow overview page. In the Featured connectors section, select View more connectors.
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
In the Select runtime dialog, select your runtime from the Available runtimes drop-down list and click Add.
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
コネクタ定義をカスタマイズします。
以下のプロセスグループを削除します。
Check If Duplicate Content
Snowflake StageとParse PDF
Snowflake Cortexを更新する
(オプション)Microsoft365グループを処理する
Process SharePoint Metadataプロセスグループの出力にカスタム処理を添付します。各フローファイルは、1つの SharePoint ファイルの変更を表します。
プロセスグループのパラメーターを入力します。ユーズケース1の場合と同じ手順に従ってください。コネクタ定義を変更した後、すべてのパラメーターが必要になるとは限らないことに注意してください。
フローを実行します。
プロセスグループを開始します。フローでは、Snowflake内部に必要なオブジェクトをすべて作成します。
インポートしたプロセスグループを右クリックし、 開始 を選択します。
Sharepointサイトグループの有効化¶
サイトグループ用Microsoft Graphアプリケーション¶
認証情報を取得する で指定したステップに加えて、以下を実行します。
Sites.Selected SharePoint 権限を追加します。
注釈
Microsoft Graphと SharePoint の両方の権限に
Sites.Selectedが表示されているはずです。キーペアを生成 します。あるいは、以下のコマンドを実行して、
opensslで自己署名証明書を作成することもできます。openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
Copy注釈
上記のコマンドでは、生成された秘密キーは暗号化されません。暗号化キーを生成したい場合は、
-nodes引数を削除します。Microsoft Graphアプリケーションに証明書 を添付します。
Cortex Search serviceをクエリする¶
Cortex Search サービスを利用して、チャットや検索アプリケーションを構築し、 SharePoint のドキュメントとチャットしたり、クエリしたりすることができます。
コネクタをインストールして構成し、Sharepointからコンテンツの取り込みを開始すると、Cortex Searchサービスをクエリできます。Cortex Searchの使用に関する詳細については、 Cortex Search Serviceをクエリする をご参照ください。
応答をフィルターする
Cortex Searchサービスからの応答を特定のユーザーが SharePoint でアクセスできるドキュメントに制限するには、Cortex Searchのクエリ時に、そのユーザーのユーザー ID またはメールアドレスを含むフィルターを指定することができます。例えば、 filter.@contains.user_ids または filter.@contains.user_emails のようにします。コネクタによって作成されるCortex Searchサービスの名前は、スキーマ Cortex の search_service です。
SQL ワークシート内で以下の SQL コードを実行し、 SharePoint サイトから取り込んだファイルでCortex Searchサービスをクエリします。
以下を置き換えます。
application_instance_name: データベースとコネクタアプリケーションインスタンスの名前。user_emailID: 応答をフィルターしたいユーザーのメール ID。your_question: 応答を得たい質問。number_of_results: 応答で返す結果の最大数。最大値は1000で、デフォルト値は10です。
SELECT PARSE_JSON(
SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
'<application_instance_name>.cortex.search_service',
'{
"query": "<your_question>",
"columns": ["chunk", "web_url"],
"filter": {"@contains": {"user_emails": "<user_emailID>"} },
"limit": <number_of_results>
}'
)
)['results'] AS results
columns に入力できる値の完全なリストを以下に示します。
For all connectors:
列名 |
型 |
説明 |
|---|---|---|
|
String |
Sharepointサイトドキュメントルートからのファイルへのフルパス。例: |
|
String |
オリジナルのSharepointファイルをブラウザーで表示する URL。 |
|
String |
項目の最新変更日時。 |
|
String |
Cortex Searchのクエリにマッチしたドキュメントのテキスト。 |
For ACL connectors only:
列名 |
型 |
説明 |
|---|---|---|
|
配列 |
ドキュメントにアクセスできる Microsoft 365ユーザー IDs の配列。ドキュメントに割り当てられているすべてのMicrosoft 365グループのユーザー IDs も含まれます。特定のユーザー ID を探すには、 ユーザーを取得する をご参照ください。 |
|
配列 |
ドキュメントにアクセスできるMicrosoft 365ユーザーのメール IDs の配列。ドキュメントに割り当てられているすべてのMicrosoft 365グループのユーザーメール IDs も含まれます。 |
例: AI アシスタントに人事(HR)情報をクエリする
Cortex Searchを使用して、オンボーディング、行動規範、チームプロセス、組織ポリシーなど、 HR の最新バージョンの情報とチャットする従業員向けの AI アシスタントをクエリできます。応答フィルターを使用すると、 SharePoint で構成したアクセス制御を順守しながら、 HR チームメンバーに従業員契約のクエリを許可することもできます。
SharePoint から取り込んだファイルでCortex Searchサービスをクエリするために、 SQL ワークシート で以下を実行します。データベースをアプリケーションインスタンス名として、スキーマを Cortex として選択します。
以下を置き換えます。
application_instance_name: データベースとコネクタアプリケーションインスタンスの名前。user_emailID: 応答をフィルターしたいユーザーのメール ID。
SELECT PARSE_JSON(
SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
'<application_instance_name>.cortex.search_service',
'{
"query": "What is my vacation carry over policy?",
"columns": ["chunk", "web_url"],
"filter": {"@contains": {"user_emails": "<user_emailID>"} },
"limit": 1
}'
)
)['results'] AS results
Pythonワークシート で以下のコードを実行し、 SharePoint から取り込んだファイルでCortex Searchサービスをクエリします。データベースに snowflake.core パッケージが追加されていることを確認します。
以下を置き換えます。
application_instance_name: データベースとコネクタアプリケーションインスタンスの名前。user_emailID: 応答をフィルターしたいユーザーのメール ID。
import snowflake.snowpark as snowpark
from snowflake.snowpark import Session
from snowflake.core import Root
def main(session: snowpark.Session):
root = Root(session)
# fetch service
my_service = (root
.databases["<application_instance_name>"]
.schemas["cortex"]
.cortex_search_services["search_service"]
)
# query service
resp = my_service.search(
query="What is my vacation carry over policy?",
columns = ["chunk", "web_url"],
filter = {"@contains": {"user_emails": "<user_emailID>"} },
limit=1
)
return (resp.to_json())
Execute the following code in a command-line interface to query the Cortex Search service with files ingested from your SharePoint. You will need to authentication through key pair authentication and OAuth to access the Snowflake REST APIs. For more information, see REST に API and Snowflakeでの Snowflake REST APIs 認証.
以下を置き換えます。
application_instance_name: データベースとコネクタアプリケーションインスタンスの名前。account_url:Snowflakeアカウント URL。アカウント URL の見つけ方については、 アカウントの組織名とアカウント名の検索 を参照してください。
curl --location "https://<account_url>/api/v2/databases/<application_instance_name>/schemas/cortex/cortex-search-services/search_service" \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header "Authorization: Bearer <CORTEX_SEARCH_JWT>" \
--data '{
"query": "What is my vacation carry over policy?",
"columns": ["chunk", "web_url"],
"limit": 1
}'
サンプル応答:
{
"results" : [ {
"web_url" : "https://<domain>.sharepoint.com/sites/<site_name>/<path_to_file>",
"chunk" : "Answer to the question asked."
} ]
}
ステージ内のファイルの検索¶
ステージに格納されているファイルには、読み取れない名前が付けられている場合があります。特定のファイルを見つけるには、メタデータテーブルを信頼できる情報源として使用します。これらのテーブルには、ファイル名と対応するファイル間のマッピングが含まれています IDs ステージでの。
Cortexが有効なセットアップの場合は、以下のクエリを使ってファイルを検索します。
SELECT DISTINCT METADATA:id FROM DOCS_CHUNKS WHERE METADATA:fullName LIKE '%<file_name>%';
Cortex以外のセットアップの場合は、以下のクエリを使います。
SELECT FILE_ID FROM DOC_METADATA WHERE FILE_NAME = '<file_name>';
<file_name> 探しているファイルの名前または部分的な名前を持つ。
ステージ内のファイルは で始まる ID これらのクエリから返された。