Openflow Connector for Google Sheets を設定する

注釈

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

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

前提条件

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

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

認証情報を取得する

Googleクラウド管理者として、以下のタスクを実行します、

  1. 以下があることを確認します。

  2. サービスアカウントキーの作成を有効にします。Googleはデフォルトでサービスアカウントキーの作成を無効にしています。Snowflake Openflowでサービスアカウント JSON を使用するには、このキー作成ポリシーをオフにする必要があります。サービスアカウントキーの作成を有効にするには、以下のタスクを実行します。

    1. Google Cloud Console に、組織ポリシー管理者ロールを持つスーパー管理者アカウントでログインします。

    2. 組織内のプロジェクトではなく、組織に関連付けられたプロジェクトであることを確認します。

    3. Organization Policies を選択します。

    4. Disable service account key creation ポリシーを選択します。

    5. Manage Policy を選択し、適用をオフにします。

    6. Set Policy を選択します。

  3. サービスアカウントとキー を作成します。

  4. Google Sheetsのスプレッドシートをサービスアカウントのメールアドレスで共有します。メールアドレスは、サービスアカウント JSON ファイルの client_email フィールドの下にあります。共有権限を Viewer に設定します。

Snowflakeアカウントを設定する

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

  1. 新しいロールを作成するか、既存のロールを使用して データベース権限 を付与します。

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

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

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

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

    注釈

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

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

    2. Openflowで、右上のハンバーガーメニューから、このシークレットマネージャに関連付けられたParameter Providerを構成します。 Controller Settings » Parameter Provider に移動し、パラメーターの値をフェッチします。

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

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

  7. コネクタが使用するウェアハウスを指定します。まずは最小のウェアハウスサイズから始め、複製するテーブルの数や転送するデータ量に応じて異なるサイズを試してみてください。テーブル数が大きい場合は、通常、ウェアハウスのサイズを大きくするよりも、 マルチクラスターウェアハウス を使用した方がスケーリングが向上します。

コネクタを設定する

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

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

  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. インポートしたプロセスグループを右クリックし、 Parameters を選択します。

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

フローパラメーター

コネクタ定義の構成は、3つのパラメーターコンテキストに分けられます。

注釈

Google Sheets取り込みパラメーター のパラメーターコンテキストにはスプレッドシート固有の詳細が含まれているため、新しいスプレッドシートとプロセスグループごとに新しいパラメーターコンテキストを作成する必要があります。

新しいパラメーターコンテキストを作成するには、Openflow Canvasメニューから Parameter Contexts を選択し、新しいパラメーターコンテキストを追加します。これはGoogle Sheetsの宛先パラメーターおよびソースパラメーターのパラメーターコンテキストのパラメーターを継承したものです。

以下のテーブルで、パラメーターコンテキストに基づいて構成できるフローパラメーターについて説明します。

Google Sheets宛先パラメーター

パラメーター

説明

宛先データベース

データが永続化されるデータベース。既に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 ヘッダーとフッターを持ちます。ヘッダー行は -----BEGIN PRIVATE で始まります。 Reference asset チェックボックスを選択し、秘密キーファイルをアップロードします。

Snowflake秘密キーパスワード

Snowflake秘密キーファイルに関連付けられたパスワード

Snowflakeロール

クエリ実行時に使用されるSnowflakeロール

Snowflakeのユーザー名

Snowflakeインスタンスへの接続に使用するユーザー名

Snowflakeウェアハウス

クエリの実行に使用されるSnowflakeウェアハウス

Google Sheetソースパラメーター

パラメーター

説明

サービスアカウント JSON

client_id、client_email、private_keyなどのService Account認証情報を含むファイルのコンテンツ。ファイルの全コンテンツをコピーします。

Google Sheets取り込みパラメーター

以下のテーブルに、他のパラメーターコンテキストから継承されないパラメーターのみを一覧表示します。

パラメーター

説明

日付時刻レンダリングオプション

出力における日付の表示方法を決定します。 SERIAL_NUMBERFORMATTED_STRING のいずれかのオプションを選択できます。 SERIAL_NUMBER を選択するのは、Value Render Optionパラメーターが UNFORMATTED_VALUE に設定されている場合のみです。詳細については、 DateTimeRenderOption をご参照ください。

宛先データベース

宛先テーブルが作成される宛先データベース。

宛先スキーマ

宛先テーブルが作成される宛先スキーマ。

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

宛先テーブルのプレフィックスには、Google Sheetsから取得したレポートデータが格納されます。コネクタは、各範囲に対して1つの宛先テーブルを作成します。範囲が提供されない場合、シート名がテーブル識別子として使用されます。シートの最初の行は、宛先テーブルの列名を表します。

範囲

スプレッドシートから取得する範囲のリスト。範囲を指定しない場合は、指定したスプレッドシート内のすべてのシートがダウンロードされます。各範囲は、 A1 または R1C1 表記 のいずれかで、コンマで区切って提供します。例: Sheet1!A1:B2,Sheet2!D4:E5,Sheet3

スケジュールを実行する

Google Sheetsからデータを取得し、Snowflakeに保存するスケジュールを実行します。デフォルトでは、タイマー駆動のスケジュールストラテジーが使用され、ここでユーザーは、 8h などの間隔を指定します。

スプレッドシート ID

スプレッドシートの 一意の識別子。スプレッドシートの URL にあります。

値レンダリングオプション

出力における値のレンダリング方法を決定します。 FORMATTED_VALUEUNFORMATTED_VALUE のいずれかのオプションを選択できます。 FORMATTED_VALUE を選択した場合、宛先テーブルの列はすべて VARCHAR タイプになります。詳細については、 ValueRenderOption をご参照ください。

注釈

宛先テーブルの識別子は、宛先テーブルのプレフィックスと範囲名の組み合わせで、一意でなければなりません。複数のスプレッドシートまたは単一のシートからデータをダウンロードし、範囲名が一意でない場合は、各フローに一意の宛先テーブルプレフィックスを指定する必要があります。宛先テーブル名が一意でない場合、既存の宛先テーブルを上書きしてコネクタが失敗することがあります。

フローを実行する

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

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

注釈

インポートした .xlsx はGoogle Sheets形式でなければなりません。ファイルをインポートする場合は、フローを実行する前にファイルがGoogle Sheets形式に変換されていることを確認します。Google Sheets以外の形式のスプレッドシートは読み取れません。詳細については、 ファイルをGoogle Sheets形式に変換する をご参照ください。