Openflow Connector for Box を設定する¶
注釈
コネクタには、 コネクタ利用規約 が適用されます。
このトピックでは、 Openflow Connector for Box を設定する手順について説明します。
前提条件¶
Openflow Connector for Box について を確認してください。
Openflowを設定した ことを確認します。
認証情報を取得する¶
Box開発者 または Box管理者 として、 Box プラットフォームアプリケーション を以下のように作成します。
Box Developer Console に移動します。
Create Platform App を選択します。
アプリケーションタイプとして Custom App を選択します。
アプリの名前と説明を入力し、ドロップダウンリストから目的を選択します。
認証方法として Server Authentication (with JWT) を選択します。
Create App を選択します。
アプリを構成するには、 Configuration タブに移動します。
App Access Level セクションで、 App + Enterprise Access を選択します。
Application Scopes セクションで、以下のオプションを選択します。
Read all files and folders stored in Box。
Write all files and folders stored in Box: ファイルやフォルダーをダウンロードします。コネクタはファイルをアップロードできないことに注意してください。Snowflakeでは、サービスアカウントにViewerロールのみを付与することを推奨しています。アプリケーションにBox内のファイルへのアクセス権を付与するには、同期するフォルダーを選択します。ステップnのサービスアカウントのメールを使って、アプリのサービスアカウントと共有します。 Openflow Connector for Box は、指定したフォルダーとそのすべてのサブフォルダーからファイルを検出してダウンロードできますが、ファイルを変更することはできません。
Manage users: エンタープライズ内のユーザーを読み取ります。
Manage groups: エンタープライズ内のグループとそのメンバーを読み取ります。
Manage enterprise properties: エンタープライズイベントを読み取ります。
Add and Manage Public Keys セクションで、公開キー/秘密キーのペアを生成します。Boxは秘密キー付きの JSON 構成ファイルをダウンロードします。
変更を保存します。
Authorization タブに移動し、エンタープライズへのアクセスを認証するためにアプリを送信します。
エンタープライズ管理者にアプリの承認をリクエストします。
承認後、 General Settings タブに移動し、アプリサービスアカウントのメールアドレスを保存します。
詳細については、 JWT を使用した設定 をご参照ください。
Snowflakeアカウントを設定する¶
Snowflakeアカウント管理者として、以下のタスクを手動で、または下記に含まれるスクリプトを使用して実行します。
新しいロールを作成するか、既存のロールを使用して データベース権限 を付与します。
タイプを SERVICE として、新しいSnowflakeサービスユーザーを作成します。
Snowflakeサービスユーザーに、前の手順で作成したロールを付与します。
ステップ2のSnowflake SERVICE ユーザーを key-pair auth で構成します。
Snowflakeではこの手順を強く推奨します。Openflowがサポートするシークレットマネージャ(AWS、Azure、Hashicorpなど)を構成し、公開キーと秘密キーを秘密ストアに格納します。
注釈
何らかの理由でシークレットマネージャを使用したくない場合は、組織のセキュリティポリシーに従って、キーペア認証に使用する公開キーと秘密キーファイルを保護する責任があります。
シークレットマネージャを構成したら、その認証方法を決定します。AWS 上では、Openflowに関連付けられた EC2 インスタンスロールが推奨されます。こうすることで、他の秘密を永続化する必要がなくなるからです。
Openflowで、右上のハンバーガーメニューから、このシークレットマネージャに関連付けられたParameter Providerを構成します。 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 the use case: Ingest files and perform processing with Cortex --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 use case: Ingest files and perform processing with Cortex --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>;
ユースケース¶
以下のユースケースにコネクタを構成できます。
ファイルの取り込みのみ¶
コネクタ定義を使用して、次を行います。
Document AI で取り込んだファイルを処理します。
取り込んだファイルにカスタム処理を実行します。
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタをインストールおよび構成します。
コネクタをインストールする¶
Openflowの概要ページに移動します。 Featured connectors セクションで、 View more connectors を選択します。
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。
Add を選択します。
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
Box取り込みパラメーター、 Box宛先パラメーター、 Boxソースパラメーター の説明に従って、必要なパラメーター値を入力します。
Boxソースパラメーター¶
パラメーター |
説明 |
---|---|
Box App 構成 JSON |
アプリケーション作成時にダウンロードされたアプリケーションの JSON 構成。 |
Box App構成ファイル |
アプリケーション作成時にダウンロードしたアプリケーションのjsonファイル。「Box App構成ファイル」または「Box App構成 JSON」のいずれかを設定する必要があります。構成ファイルをアップロードするには、 Reference asset チェックボックスを選択します。 |
Box宛先パラメーター¶
パラメーター |
説明 |
---|---|
宛先データベース |
データが永続化されるデータベース。既にSnowflakeに存在している必要があります。 |
宛先スキーマ |
データが永続化されるスキーマ。既にSnowflakeに存在している必要があります。 |
Snowflakeアカウント識別子 |
データが永続化されるSnowflakeアカウント名(形式: [organization-name]- [account-name])。 |
Snowflake認証ストラテジー |
Snowflakeへの認証のストラテジー。可能な値: SPCS でフローを実行している場合は |
Snowflake秘密キー |
認証に使用される RSA 秘密キー。RSA キーは、 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持つ必要があります。Snowflake秘密キーファイルまたはSnowflake秘密キーのいずれかを定義する必要があることに注意してください。 |
Snowflake秘密キーファイル |
Snowflakeへの認証に使用される RSA 秘密キーを含むファイル。 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持ちます。ヘッダー行は |
Snowflake秘密キーパスワード |
Snowflake秘密キーファイルに関連付けられたパスワード |
Snowflakeロール |
クエリ実行時に使用されるSnowflakeロール |
Snowflakeのユーザー名 |
Snowflakeインスタンスへの接続に使用するユーザー名 |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス |
Box取り込みパラメーター¶
パラメーター |
説明 |
---|---|
Boxフォルダー ID |
ファイルを読み込むフォルダーの ID。Boxアプリがアクセスできるすべてのフォルダーを同期するには、これを |
取り込むファイルの拡張子 |
取り込むファイルの拡張子を指定するコンマ区切りリスト。コネクタは、可能であれば最初にファイルを PDF 形式に変換しようとします。それにもかかわらず、元のファイル拡張子に対して拡張子チェックが実行されます。指定されたファイル拡張子の一部がCortex Parse Documentでサポートされていない場合、コネクタはそれらのファイルを無視し、イベントログに警告メッセージを記録して、他のファイルの処理を続行します。 |
Snowflakeファイルのハッシュテーブル名 |
コンテンツが変更されたかどうかを判断するためにファイルのハッシュを格納するテーブルの名前。このパラメーターは通常、変更すべきではありません。 |
フローを実行する¶
プレーンを右クリックし、 Enable all Controller Services を選択します。
インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。
コネクタを起動すると、指定したフォルダーからすべてのファイルを取得し、過去14日間の admin_logs_streaming
イベントを消費します。これは、初期化プロセス中に見落とされる可能性のあるデータをキャプチャするために行われます。この間、 not found
エラーが発生することがあります。これは、イベントに表示されたものの、もはや存在しないファイルが原因です。
Cortexを使用してファイルを取り込み、処理を実行する¶
コネクタ定義を使用して、次を行います。
組織内のBoxエンタープライズで公開ドキュメント用の AI アシスタントを作成します。
AI アシスタントが、組織のBoxエンタープライズで指定されたアクセス制御を順守できるようにします。
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタをインストールおよび構成します。
コネクタをインストールする¶
Openflowの概要ページに移動します。 Featured connectors セクションで、 View more connectors を選択します。
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。
Add を選択します。
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
Box Cortex Connect取り込みパラメーター、 Box Cortex Connect宛先パラメーター および Box Cortex Connectソースパラメーター の説明に従って、必要なパラメーター値を入力します。
Box Cortex Connectソースパラメーター¶
パラメーター |
説明 |
---|---|
Box App 構成 JSON |
アプリケーション作成時にダウンロードされたアプリケーションの JSON 構成。 |
Box App構成ファイル |
アプリケーション作成時にダウンロードしたアプリケーションのjsonファイル。「Box App構成ファイル」または「Box App構成 JSON」のいずれかを設定する必要があります。構成ファイルをアップロードするには、 Reference asset チェックボックスを選択します。 |
Box Cortex Connect宛先パラメーター¶
パラメーター |
説明 |
---|---|
宛先データベース |
データが永続化されるデータベース。既にSnowflakeに存在している必要があります。 |
宛先スキーマ |
データが永続化されるスキーマ。既にSnowflakeに存在している必要があります |
Snowflakeアカウント識別子 |
データが永続化されるSnowflakeアカウント名(形式: [organization-name]- [account-name])。 |
Snowflake認証ストラテジー |
Snowflakeへの認証のストラテジー。可能な値: SPCS でフローを実行している場合は |
Snowflake秘密キー |
認証に使用される RSA 秘密キー。RSA キーは、 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持つ必要があります。Snowflake秘密キーファイルまたはSnowflake秘密キーのいずれかを定義する必要があることに注意してください。 |
Snowflake秘密キーファイル |
Snowflakeへの認証に使用される RSA 秘密キーを含むファイル。 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持ちます。ヘッダー行は |
Snowflake秘密キーパスワード |
Snowflake秘密キーファイルに関連付けられたパスワード |
Snowflakeロール |
クエリ実行時に使用されるSnowflakeロール |
Snowflakeのユーザー名 |
Snowflakeインスタンスへの接続に使用するユーザー名 |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス |
Box Cortex Connect取り込みパラメーター¶
パラメーター |
説明 |
---|---|
Boxフォルダー ID |
ファイルを読み込むフォルダーの ID。Boxアプリがアクセスできるすべてのフォルダーを同期するには、これを |
取り込むファイルの拡張子 |
取り込むファイルの拡張子を指定するコンマ区切りリスト。コネクタは、可能であれば最初にファイルを PDF 形式に変換しようとします。それにもかかわらず、元のファイル拡張子に対して拡張子チェックが実行されます。指定されたファイル拡張子の一部がCortex Parse Documentでサポートされていない場合、コネクタはそれらのファイルを無視し、イベントログに警告メッセージを記録して、他のファイルの処理を続行します。 |
Snowflakeファイルのハッシュテーブル名 |
コンテンツが変更されたかどうかを判断するためにファイルのハッシュを格納するテーブルの名前。このパラメーターは通常、変更すべきではありません。 |
OCR モード |
Cortex PARSE_DOCUMENT 関数でファイルを解析するときに使用する OCR モード。値は |
Snowflake Cortex Search Serviceユーザーロール |
Cortex Search serviceの使用権限を割り当てられたロールの識別子。 |
Snowflakeファイルのハッシュテーブル名 |
コンテンツが変更されたかどうかを判断するためにファイルのハッシュを格納するテーブルの名前。このパラメーターは通常、変更すべきではありません。 |
フローを実行する¶
プレーンを右クリックし、 Enable all Controller Services を選択します。
インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。
コネクタを起動すると、指定したフォルダーからすべてのファイルを取得し、過去14日間の admin_logs_streaming
イベントを消費します。これは、初期化プロセスで見落とされた可能性のあるデータをキャプチャするために行われます。その間に、 not found
エラーが発生することがあります。これは、イベントに表示されたものの、もはや存在しないファイルが原因です。
Cortex Search serviceをクエリする¶
Cortex Search サービスを使用して、Box内のドキュメントとチャットしたりクエリしたりするチャットおよび検索アプリケーションを構築できます。
コネクタをインストールして構成し、Boxからコンテンツの取り込みを開始すると、Cortex Searchサービスサービスをクエリできます。Cortex Searchの使用に関する詳細については、 Cortex Search Serviceをクエリする をご参照ください。
応答をフィルターする
Cortex Searchサービスからの応答を特定のユーザーがBoxでアクセスできるドキュメントに制限するには、Cortex Searchのクエリ時に、そのユーザーのユーザー ID またはメールアドレスを含むフィルターを指定することができます。例えば、 filter.@contains.user_ids
または filter.@contains.user_emails
のようにします。コネクタによって作成されるCortex Searchサービスの名前は、スキーマ Cortex
の search_service
です。
SQL ワークシート内で以下の SQL コードを実行し、Boxサイトから取り込んだファイルでCortex Searchサービスをクエリします。
以下を置き換えます。
application_instance_name
: データベースとコネクタアプリケーションインスタンスの名前。user_emailID
: 応答をフィルターしたいユーザーのメール ID。your_question
: 応答を得たい質問。number_of_results
: 応答で返す結果の最大数。最大値は1,000で、デフォルト値は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
に入力できる値の完全なリストを示します。
列名 |
型 |
説明 |
---|---|---|
|
String |
Boxサイトドキュメントルートからのファイルへのフルパス。例: |
|
String |
オリジナルのBoxファイルをブラウザーで表示する URL。 |
|
String |
項目の最新変更日時。 |
|
String |
Cortex Searchのクエリにマッチしたドキュメントのテキスト。 |
|
配列 |
ドキュメントにアクセスできるユーザー IDs の配列。 |
|
配列 |
そのドキュメントにアクセスできるユーザーメール IDs の配列。ドキュメントに割り当てられているすべてのMicrosoft 365グループのユーザーメール IDs も含まれます。 |
例: AI アシスタントに人事(HR)情報をクエリする
Cortex Searchを使用して、オンボーディング、行動規範、チームプロセス、組織ポリシーなど、 HR の最新バージョンの情報とチャットする従業員向けの AI アシスタントをクエリできます。応答フィルターを使用すると、Boxで構成したアクセス制御を順守しながら、 HR チームメンバーに従業員契約のクエリを許可することもできます。
Boxから取り込んだファイルで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 carryover policy?",
"columns": ["chunk", "web_url"],
"filter": {"@contains": {"user_emails": "<user_emailID>"} },
"limit": 1
}'
)
)['results'] AS results
Pythonワークシート で以下のコードを実行し、Boxから取り込んだファイルで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 carryover policy?",
columns = ["chunk", "web_url"],
filter = {"@contains": {"user_emails": "<user_emailID>"} },
limit=1
)
return (resp.to_json())
以下のコードをコマンドラインインターフェイスで実行し、Boxから取り込んだファイルでCortex Searchサービスをクエリします。Snowflake REST APIs へのアクセスには、キーペア認証と OAuth の両方による認証が必要です。詳細については、 Rest API および 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 carryover policy?",
"columns": ["chunk", "web_url"],
"limit": 1
}'
サンプル応答:
{
"results" : [ {
"web_url" : "https://<domain>.box.com/sites/<site_name>/<path_to_file>",
"chunk" : "Answer to the question asked."
} ]
}
Box AI を使用してBoxメタデータを抽出し、Snowflakeテーブルに取り込む¶
コネクタ定義を使用して、次を行います。
Boxファイルのメタデータを抽出し、Snowflakeテーブルに取り込みます。
Boxに格納されているファイルのメタデータに操作を実行します。
Boxのメタデータを格納するSnowflakeテーブルを作成する¶
メタデータの抽出を行うために、Box AI が有効になっていることを確認します。詳細については、 Box AI の構成 をご参照ください。
メタデータが送信されるSnowflakeテーブルを作成する
コネクタが抽出するメタデータの種類を知るためには、抽出したいフィールドの列名を持つSnowflakeテーブルをデータベースとスキーマに作成する必要があります。ファイルからメタデータを抽出するために使用されるモデルのパフォーマンスを向上させるために、各列に説明を追加します。
前のステップで作成したテーブルに、Boxファイル ID を格納する列があり、それが VARCHAR タイプであることを確認します。
この列の名前は、後のステップでBoxファイル識別子列パラメーターとして入力する必要があります。メタデータテーブルでサポートされる列タイプのリストは、 VARCHAR、 STRING、 TEXT、 FLOAT、 DOUBLE、 DATE です。
このコネクタ用に作成できるテーブルの例を示します。
CREATE OR REPLACE TABLE OPENFLOW.BOX_METADATA_SCHEMA.LOAN_AGREEMENT_METADATA (
BOX_FILE_ID VARCHAR COMMENT 'Box file identifier column',
LOAN_ID STRING COMMENT 'Unique loan agreement identifier (e.g. L-2025-0001)',
BORROWER_NAME STRING COMMENT 'Name of the borrower entity or individual',
LENDER_NAME STRING COMMENT 'Name of the lending institution',
LOAN_AMOUNT DOUBLE COMMENT 'Principal amount of the loan (in USD)',
INTEREST_RATE FLOAT COMMENT 'Annual interest rate (%)',
EFFECTIVE_DATE DATE COMMENT 'Date on which the loan becomes effective',
MATURITY_DATE DATE COMMENT 'Scheduled loan maturity date',
LOAN_TERM_MONTHS FLOAT COMMENT 'Original term length in months',
COLLATERAL_DESCRIPTION TEXT COMMENT 'Description of collateral securing the loan',
CREDIT_SCORE FLOAT COMMENT 'Borrower credit score',
JURISDICTION STRING COMMENT 'Governing law jurisdiction (e.g. NY, CA)'
);
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタをインストールおよび構成します。
コネクタをインストールする¶
Openflowの概要ページに移動します。 Featured connectors セクションで、 View more connectors を選択します。
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。
Add を選択します。
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
Box Ingest Metadataソースパラメーター、 Box Ingest Metadata宛先パラメーター、 Box Ingest Metadata取り込みパラメーター の説明に従って、必要なパラメーター値を入力します。
Box Ingest Metadataソースパラメーター¶
パラメーター |
説明 |
---|---|
Box App 構成 JSON |
アプリケーション作成時にダウンロードされたアプリケーションの JSON 構成。 |
Box App構成ファイル |
アプリケーション作成時にダウンロードしたアプリケーションのjsonファイル。「Box App構成ファイル」または「Box App構成 JSON」のいずれかを設定する必要があります。構成ファイルをアップロードするには、 Reference asset チェックボックスを選択します。 |
Box Ingest Metadata宛先パラメーター¶
パラメーター |
説明 |
---|---|
宛先データベース |
データが永続化されるデータベース。既にSnowflakeに存在している必要があります |
宛先スキーマ |
データが永続化されるスキーマ。既にSnowflakeに存在している必要があります |
Snowflakeアカウント識別子 |
データが永続化されるSnowflakeアカウント名(形式: [organization-name]- [account-name])。 |
Snowflake認証ストラテジー |
Snowflakeへの認証のストラテジー。可能な値: SPCS 上でフローを実行している場合は SNOWFLAKE_SESSION_TOKEN、 秘密キーを使ったアクセスを設定したい場合は KEY_PAIR |
Snowflake秘密キー |
認証に使用される RSA 秘密キー。RSA キーは、 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持つ必要があります。Snowflake秘密キーファイルまたはSnowflake秘密キーのどちらかが定義されている必要があります。 |
Snowflake秘密キーファイル |
Snowflakeへの認証に使用される RSA 秘密キーを含むファイル。 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持ちます。ヘッダー行は |
Snowflake秘密キーパスワード |
Snowflake秘密キーファイルに関連付けられたパスワード |
Snowflakeロール |
クエリ実行時に使用されるSnowflakeロール |
Snowflakeのユーザー名 |
Snowflakeインスタンスへの接続に使用するユーザー名 |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス |
Box Ingest Metadata取り込みパラメーター¶
パラメーター |
説明 |
---|---|
Boxフォルダー ID |
ファイルを読み込むフォルダーの ID。Boxアプリがアクセスできるすべてのフォルダーを同期するには、これを |
Boxファイル識別子列 |
指定されたメタデータをファイルに関連付けるためのBoxファイル ID を格納するメタデータテーブルの列。この列は、 VARCHAR タイプで、 Boxメタデータを格納するSnowflakeテーブルを作成する で作成したテーブルの一部である必要があります。 |
宛先メタデータテーブル |
Boxメタデータを格納するSnowflakeテーブルを作成する で作成したSnowflakeテーブルには、収集したいメタデータの列があります。 |
フローを実行する¶
プレーンを右クリックし、 Enable all Controller Services を選択します。
インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。
コネクタを起動すると、指定したフォルダーからすべてのファイルを取得し、過去14日間の admin_logs_streaming
イベントを消費します。これは、初期化プロセスで見落とされた可能性のあるデータをキャプチャするために行われます。その間に、 not found
エラーが発生することがあります。これは、イベントに表示されたものの、もはや存在しないファイルが原因です。
BoxファイルのメタデータインスタンスをSnowflakeテーブルと同期する¶
コネクタ定義を使用して、Snowflakeテーブル内のBoxのメタデータに対してデータ変換を実行し、変更をBoxメタデータインスタンスに追加して戻します。
Boxのメタデータを格納するSnowflakeストリームを作成する¶
使用したいメタデータテーブル用にSnowflakeストリームを作成します。ストリームは、Boxファイルを同期するテーブルに発生した変更を監視するために使用されます。Boxメタデータを格納するテーブルの作成方法については、 Boxメタデータを格納するSnowflakeテーブルを作成する をご参照ください。データ保持時間を超えてコネクタを停止し、ストリームが古くなった場合は、ストリームを再作成して以前のストリームを置き換える必要があります。ストリームの管理については、 ストリームの管理 をご参照ください。
このコネクタ用に作成できるストリームの例を示します。
CREATE OR REPLACE STREAM OPENFLOW.BOX_METADATA_SCHEMA.LOAN_AGREEMENT_METADATA_STREAM ON TABLE OPENFLOW.BOX_METADATA_SCHEMA.LOAN_AGREEMENT_METADATA
メタデータテーブルに、Boxファイル ID を格納する列があり、それが VARCHAR タイプであることを確認します。
この列の名前は、後のステップでBoxファイル識別子列パラメーターとして入力する必要があります。メタデータテーブルでサポートされる列タイプのリストは、 VARCHAR、 STRING、 TEXT、 FLOAT、 DOUBLE、 DATE です。
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタをインストールおよび構成します。
コネクタをインストールする¶
Openflowの概要ページに移動します。 Featured connectors セクションで、 View more connectors を選択します。
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。
Add を選択します。
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
Box Publish Metadataソースパラメーター、 Box Publish Metadata宛先パラメーター、 Box Publish Metadata取り込みパラメーター の説明に従って、必要なパラメーター値を入力します。
Box Publish Metadataソースパラメーター¶
パラメーター |
説明 |
---|---|
ソースデータベース |
変更を取り込むSnowflakeストリームを含むスキーマを含むSnowflakeデータベース |
ソーススキーマ |
変更を取り込むSnowflakeストリームを含むスキーマ |
Snowflakeアカウント識別子 |
データが永続化されるSnowflakeアカウント名(形式: [organization-name]- [account-name])。 |
Snowflake認証ストラテジー |
Snowflakeへの認証のストラテジー。可能な値: SPCS 上でフローを実行している場合は SNOWFLAKE_SESSION_TOKEN、 秘密キーを使ったアクセスを設定したい場合は KEY_PAIR |
Snowflake秘密キー |
認証に使用される RSA 秘密キー。RSA キーは、 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持つ必要があります。Snowflake秘密キーファイルまたはSnowflake秘密キーのどちらかが定義されている必要があります。 |
Snowflake秘密キーファイル |
Snowflakeへの認証に使用される RSA 秘密キーを含むファイル。 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持ちます。ヘッダー行は |
Snowflake秘密キーパスワード |
Snowflake秘密キーファイルに関連付けられたパスワード |
Snowflakeロール |
クエリ実行時に使用されるSnowflakeロール |
Snowflakeのユーザー名 |
Snowflakeインスタンスへの接続に使用するユーザー名 |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス |
Snowflakeストリーム名 |
ソースSnowflakeテーブルからの変更の取り込みに使用されるSnowflakeストリーム名。これは、コネクタを起動してテーブルにリンクする前に作成する必要があります。 |
Box Publish Metadata宛先パラメーター¶
パラメーター |
説明 |
---|---|
Box App 構成 JSON |
アプリケーション作成時にダウンロードされたアプリケーションの JSON 構成。 |
Box App構成ファイル |
アプリケーション作成時にダウンロードしたアプリケーションのjsonファイル。「Box App構成ファイル」または「Box App構成 JSON」のいずれかを設定する必要があります。構成ファイルをアップロードするには、 Reference asset チェックボックスを選択します。 |
Box Publish Metadata取り込みパラメーター¶
パラメーター |
説明 |
---|---|
Boxファイル識別子列 |
指定されたメタデータをファイルに関連付けるためのBoxファイル ID を格納するメタデータテーブルの列。この列は、 VARCHAR タイプで、 Boxメタデータを格納するSnowflakeテーブルを作成する で作成したテーブルの一部である必要があります。 |
Boxメタデータテンプレート名 |
Boxファイルに追加されるBoxメタデータテンプレートのテンプレート名。コネクタを起動する前にテンプレートを手動で作成する必要はありません。このパラメーターに値を入力すると、このテンプレート名でテンプレートが自動的に作成されます。プロバイダー名は、Box環境で作成済みのテンプレートと重複しないようにしてください。 |
Boxメタデータテンプレートキー |
Boxファイルに追加されるBoxメタデータテンプレートのBoxテンプレートキー。これは、Box API でテンプレートを参照するために使われるキーです。コネクタを起動する前にテンプレートを手動で作成する必要はありません。このパラメーターに値を入力すると、このテンプレートキーでテンプレートが自動的に作成されます。提供されるキーは、Box環境で作成済みのテンプレートと重複しないようにしてください。 |
フローを実行する¶
プレーンを右クリックし、 Enable all Controller Services を選択します。
インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。
フローを実行した後、Cortex Searchサービスにクエリを実行できます。Cortex Searchサービスのクエリ方法については、 Cortex Searchサービスをクエリする をご参照ください。