Openflow Connector for Excel を設定する

注釈

コネクタには、 コネクタ利用規約 が適用されます。

このトピックでは、 Openflow Connector for Excel を設定する手順について説明します。

前提条件

  1. Openflow Connector for Excel について を確認してください。

  2. Openflowを設定した ことを確認します。

認証情報を取得する

このセクションでは、コネクタを構成するための認証情報を取得する手順について説明します。データソースによって異なります、

AWS 認証情報を取得する

AWS 管理者として、以下のタスクを実行します。

  1. AWS IAM コンソールにログインします。

  2. Users の下にある番号を選択し、次に Create user を選択します。

  3. ユーザー名、グループ、および必要に応じて追加の権限を指定します。ユーザーは、S3バケットからコネクタによって読み取られたオブジェクトに対して、少なくとも s3:GetObject アクセス権を持っている必要があります。

  4. ユーザーが作成されたら、ユーザーのビューで、 Security Credentials » Access Keys に移動します。

  5. Create access key を選択します。新しいアクセスキーは、特定のリソースへのアクセス権のみを付与する必要があります。セキュリティとアクセス制御を強化するため、Snowflakeでは特定のS3バケットにのみアクセスを許可することを推奨しています。

  6. Access Key および Secret Access Key に留意してください。

SharePoint 認証情報を取得する

コネクタは以下のMicrosoft Graph APIs を使用して SharePoint からデータをフェッチします。

SharePoint 管理者として、以下のアクションを実行します。

  1. Microsoft Entra 管理センターにログインします。

  2. Applications » App registrations に移動します。

  3. 以下の MS Graph Application権限を持つアプリケーションがあることを確認します。詳細については、 ユーザーなしでアクセスする をご参照ください。

    • SharePoint サイトへのアクセスには、以下のいずれかの権限を付与する必要があります。

      • Sites.Read.All - すべてのサイトの読み取りアクセスを許可します。

      • Sites.Selected - 指定したサイトのみにアクセスを制限します。

    • SharePoint ファイルアクセス(ファイルダウンロード用)には、以下のいずれかの権限を付与する必要があります。

      • Files.Read.All - すべてのファイルの読み取りアクセスを許可します。

      • Files.SelectedOperations.Selected - 指定したサイトのファイルのみにアクセスを制限します。

    注釈

    Snowflakeでは、セキュリティとアクセス制御を強化するため、 選択された権限 を使用することを推奨しています。

  4. 以下の認証情報を取得します。この情報を取得するには、AzureまたはOffice 365のアカウント管理者に連絡する必要が生じる場合があります。

    • Snowflakeに取り込みたいファイルやフォルダーがあるMicrosoft 365 SharePoint サイトのサイト URL。

    • テナント ID。テナント ID とMicrosoft Entraでの探し方については、 Microsoft 365テナント ID を検索する をご参照ください。

    • Microsoft Entraアプリケーションのクライアント ID とクライアントシークレット。

Snowflakeアカウントを設定する

Snowflakeアカウント管理者として、以下のタスクを実行します。

  1. 新しいロールを作成するか、既存のロールを使用します。

  2. タイプを SERVICE として、新しいSnowflakeサービスユーザーを作成します。

  3. Snowflakeサービスユーザーに、前の手順で作成したロールを付与します。

  4. ステップ2のSnowflake SERVICE ユーザーを key-pair auth で構成します。

  5. 強く推奨 Openflowがサポートするシークレットマネージャ(AWS、Azure、Hashicorpなど)を構成し、公開キーと秘密キーをシークレットストアに格納します。

    注釈

    シークレットマネージャを使用しない場合は、組織のセキュリティポリシーに従って、キーペア認証に使用する公開キーと秘密キーファイルを保護する責任があります。

    1. シークレットマネージャを構成したら、その認証方法を決定します。AWS 上では、他のシークレットを永続化する必要がないように、Openflowに関連付けられた EC2 インスタンスロールを使用することを推奨します。

    2. Openflowで、右上のハンバーガーメニューから、このSecrets Managerに関連する Parameter Provider を構成します。 Controller Settings » Parameter Provider に移動し、パラメーターの値をフェッチします。

    3. この時点で、すべての認証情報を関連するパラメーターパスで参照することができるため、機密性の高い値をOpenflow内で永続化する必要はありません。

  6. 他のSnowflakeユーザーが、コネクタによって取り込まれた生の取り込みドキュメントやとテーブルへのアクセスを必要とする場合は(Snowflakeでのカスタム処理のためなど)、それらのユーザーにステップ1で作成したロールを付与します。

  7. 取り込んだデータを格納するコネクタ用に、Snowflakeでデータベースとスキーマを作成します。最初のステップで作成したロールに必要な データベース権限 を付与します。ロールのプレースホルダーを実際の値で置き換え、以下の SQL コマンドを使用します。

    CREATE DATABASE excel_destination_db;
    CREATE SCHEMA excel_destination_db.excel_destination_schema;
    GRANT USAGE ON DATABASE excel_destination_db TO ROLE <excel_connector_role>;
    GRANT USAGE ON SCHEMA excel_destination_db.excel_destination_schema TO ROLE <excel_connector_role>;
    GRANT CREATE TABLE ON SCHEMA excel_destination_db.excel_destination_schema TO ROLE <excel_connector_role>;
    
    Copy
  8. コネクタで使用するウェアハウスを作成するか、既存のウェアハウスを使用します。まずは最小のウェアハウスサイズから始め、複製するテーブルの数や転送するデータ量に応じて異なるサイズを試してみてください。テーブル数が大きい場合は、通常、ウェアハウスのサイズを大きくするよりも、 マルチクラスターウェアハウス を使用した方がスケーリングが向上します。

  9. コネクタで使用するロールを持つユーザーが、ウェアハウスを使用するために必要な権限を持っていることを確認します。権限がない場合は、ロールに必要な権限を付与してください。

    CREATE WAREHOUSE excel_connector_warehouse WITH WAREHOUSE_SIZE = 'X-Small';
    GRANT USAGE ON WAREHOUSE excel_connector_warehouse TO ROLE <excel_connector_role>;
    
    Copy

コネクタを設定する

データエンジニアとして、以下のタスクを実行してコネクタをインストールおよび構成します。

コネクタをインストールする

  1. Openflowの概要ページに移動します。 Featured connectors セクションで、 View more connectors を選択します。

  2. Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。

  3. Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。

  4. Add を選択します。

    注釈

    コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。

  5. Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。

  6. Snowflakeアカウント認証情報でランタイムを認証します。

コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。

コネクタを構成する

  1. サポートされているシークレットマネージャから、コネクタが必要とする すべての シークレット(キーペア認証の秘密キーや証明書など)をフェッチするようにコネクタを構成します。

  2. インポートしたプロセスグループを右クリックし、 Parameters を選択します。

  3. フローパラメーター の説明に従って、必要なパラメーター値を入力します。

フローパラメーター

このセクションでは、データソースとパラメーターコンテキストに基づいて構成できるフローパラメーターについて説明します。

フローパラメーター: Amazon S3の場合

Microsoft Excel(S3~Snowflake)取り込みパラメーター

パラメーター

説明

必須

宛先テーブルプレフィックス

Excelファイルから取得したデータが永続化される宛先スキーマのテーブルのプレフィックス。テーブルはコネクタによって自動的に作成されます。

無し

ファイルパスワード

Excelファイルを保護するパスワード。保護タイプが PASSWORD の場合のみ該当。

無し

プロテクションタイプ

Excelファイルの保護タイプ。この値には、ファイルが保護されていない場合は UNPROTECTED を、ファイルがパスワードで保護されている場合は PASSWORD を指定します。

有り

範囲

値を取得するコンマで区切られた範囲のA1表記。例: Sheet1!A1:B2、Sheet2!D4:E5、Sheet3.選択範囲の最初の行は列名を表す必要があります。指定しない場合は、ワークブック全体が取り込まれます。指定された範囲は、 S3 Object Keys で指定された すべての ファイルに適用されます。

無し

S3バケット

ExcelファイルをフェッチするS3バケット。

有り

S3オブジェクトキー

フェッチするExcelファイルを含むS3バケット内のコンマで区切られたオブジェクトキーのリスト。例: file1.xlsx,file2.xlsx

有り

スケジュール

コネクタ取り込みのスケジュール。

有り

Microsoft Excel(S3~Snowflake)ソースパラメーター

パラメーター

説明

必須

AWS アクセスキー ID

Excelファイルのフェッチに使用される AWS ユーザーのアクセスキー ID。

有り

AWS シークレットアクセスキー

Excelファイルのフェッチに使用される AWS ユーザーのシークレットアクセスキー。

有り

AWS 地域

S3バケットが存在する AWS リージョン。

有り

Microsoft Excel(S3~Snowflake)宛先パラメーター

パラメーター

説明

必須

宛先データベース

データを取り込むSnowflakeデータベースの名前(大文字と小文字を区別)。

有り

宛先スキーマ

テーブルが作成されるSnowflakeスキーマの名前(大文字と小文字を区別)。

有り

Snowflakeアカウント識別子

Excelファイルから取得したデータが永続化されるSnowflakeアカウント名(形式: [organization-name]- [account-name])。

有り

Snowflake秘密キー

PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを含む、キーペア認証に使用される秘密キー。

有り

Snowflake秘密キーパスワード

Snowflake秘密キーのパスワード。キーがパスワードで保護されていない場合は、値を指定しないでください。

無し

Snowflakeロール

コネクタで使用されるSnowflakeロール。

有り

Snowflakeユーザー

Snowflakeアカウントのユーザー名。

有り

Snowflakeウェアハウス

宛先テーブルにデータを挿入する際にクエリを実行するために使用されるSnowflakeウェアハウス。

有り

フローパラメーター: SharePoint の場合

Microsoft Excel(SharePoint からSnowflakeへ)取り込みパラメーター

パラメーター

説明

必須

宛先テーブルプレフィックス

Excelファイルから取得したデータが永続化される宛先スキーマのテーブルのプレフィックス。テーブルはコネクタによって自動的に作成されます。

無し

ファイルパスワード

Excelファイルを保護するパスワード。保護タイプが PASSWORD の場合のみ該当。

無し

プロテクションタイプ

Excelファイルの保護タイプ。この値には、ファイルが保護されていない場合は UNPROTECTED を、ファイルがパスワードで保護されている場合は PASSWORD を指定します。

有り

範囲

値を取得するコンマで区切られた範囲のA1表記。例: Sheet1!A1:B2、Sheet2!D4:E5、Sheet3.選択範囲の最初の行は列名を表す必要があります。指定しない場合は、ワークブック全体が取り込まれます。指定された範囲は、 SharePoint Files で指定された すべての ファイルに適用されます。

無し

スケジュール

コネクタ取り込みのスケジュール。

有り

SharePoint ドキュメントライブラリ名

取り込まれたファイルが存在する SharePoint サイト内のライブラリ。

有り

SharePoint ファイル

取り込むExcelファイルのコンマで区切られたパス(ドキュメントライブラリのルートからの相対パス)のリスト。例: file1.xlsx,folder/file2.xlsx

有り

Microsoft Excel(SharePoint からSnowflakeへ)ソースパラメーター

パラメーター

説明

必須

SharePoint クライアント ID

Microsoft Entraクライアント ID。クライアント ID とMicrosoft Entraでの探し方については、 アプリケーション ID (クライアント ID) をご参照ください。

有り

SharePoint クライアントシークレット

Microsoft Entraクライアントシークレット。Microsoft Entraにおけるクライアントシークレットとその探し方については、 証明書およびシークレット をご参照ください。

有り

SharePoint サイト URL

取り込まれたファイルがダウンロードされる SharePoint サイトの URL。

有り

SharePoint テナント ID

Microsoft Entraテナント ID。テナント ID とMicrosoft Entraでの探し方については、 Microsoft 365テナント ID を検索する をご参照ください。

有り

Microsoft Excel(SharePoint からSnowflakeへ)宛先パラメーター

パラメーター

説明

必須

宛先データベース

データを取り込むSnowflakeデータベースの名前(大文字と小文字を区別)。

有り

宛先スキーマ

テーブルが作成されるSnowflakeスキーマの名前(大文字と小文字を区別)。

有り

Snowflakeアカウント識別子

Excelファイルから取得したデータが永続化されるSnowflakeアカウント名(形式: [organization-name]- [account-name])。

有り

Snowflake秘密キー

PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを含む、キーペア認証に使用される秘密キー。

有り

Snowflake秘密キーパスワード

Snowflake秘密キーのパスワード。キーがパスワードで保護されていない場合は、値を指定しないでください。

無し

Snowflakeロール

コネクタで使用されるSnowflakeロール。

有り

Snowflakeユーザー

Snowflakeアカウントのユーザー名。

有り

Snowflakeウェアハウス

宛先テーブルにデータを挿入する際にクエリを実行するために使用されるSnowflakeウェアハウス。

有り

フローを実行する

  1. プレーンを右クリックし、 Enable all Controller Services を選択します。

  2. インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。

生成されたテーブル名

コネクタは、以下のテンプレートを使用して名前を付けた宛先テーブルを作成します: {PREFIX}{FILENAME}_{RANGE}。名前は常に 二重引用符で囲まれた識別子 になります。

  • {PREFIX} は、 prfx_ のように、 Destination Table Prefix パラメーターの値で置き換えられます。

  • {FILENAME} は、 file1.xlsxfolder/file2.xlsx のように、取り込まれたファイルのフルパスに置き換えられます。

  • {RANGE} は次に置き換えられます。

    • Ranges パラメーターの値が空の場合、取り込まれたシートの名前。

    • Sheet1!A1:B2 のように、 Ranges パラメーターで指定された取り込み範囲のある取り込まれたシートの名前。

生成されたテーブル名の例:

  • "file1.xlsx_Sheet1"

  • "prfx_folder/file2.xlsx_Sheet1!A1:B2"

(オプション)現在実行中のコネクタを再構成する

コネクタのパラメーターは、コネクタがデータの取り込みを開始した後で再構成できます。取り込まれたファイルや範囲を変更する必要がある場合は、以下の手順を実行して、データが適切にSnowflakeに送信されるようにします。

  1. コネクタを停止する: すべてのOpenflowプロセッサーが停止していることを確認します。

  2. 構成設定にアクセスする: Openflow内のコネクタの構成設定に移動します。

  3. パラメーターを変更する: 必要に応じてパラメーターを調整します。

  4. コネクタを起動する: コネクタを起動し、すべてのコントローラサービスが起動していることも確認します。