Openflow Connector for Google Sheets を設定する

注釈

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

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

前提条件

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

  2. Openflowの設定 - BYOC または Openflowの設定 - Snowflakeデプロイメント - タスク概要 があることを確認してください。

認証情報を取得する

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で、右上のハンバーガーメニューから、このシークレットマネージャーに関連付けられたパラメータープロバイダーを構成します。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にすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。

次の例をご参照ください。

  • CREATE SCHEMA SCHEMA_NAME または CREATE SCHEMA schema_name: SCHEMA_NAME を使用します

  • CREATE SCHEMA "schema_name" または CREATE SCHEMA "SCHEMA_NAME": それぞれ schema_name または SCHEMA_NAME を使用します

有り

Snowflakeアカウント識別子

以下を使用する場合:

  • Session Token Authentication Strategy: 空白にする必要があります。

  • KEY_PAIR: データが永続化される[organization-name]-[account-name]形式のSnowflakeアカウント名。

有り

Snowflake認証ストラテジー

以下を使用する場合:

  • Snowflake Openflow Deployment:SNOWFLAKE_SESSION_TOKEN を使用します。このトークンはSnowflakeによって自動的に管理されます。

  • BYOC: 認証戦略の値として KEY_PAIR を使用します。

有り

Snowflake秘密キー

以下を使用する場合:

  • Session Token Authentication Strategy: 空白にする必要があります。

  • KEY_PAIR:認証に使用される RSA プライベートキーである必要があります。

    その RSA キーは PKCS8 標準に従ってフォーマットされ、標準の PEM ヘッダーとフッターを持つ必要があります。SnowflakeプライベートキーファイルまたはSnowflakeプライベートキーのいずれかを定義する必要があることに注意してください。

無し

Snowflake秘密キーファイル

以下を使用する場合:

  • Session token authentication strategy:プライベートキーファイルは空白である必要があります。

  • KEY_PAIR:Snowflakeへの認証に使用される RSA プライベートキーを含むファイルをアップロードします。これは、PKCS8 標準に従ってフォーマットされ、標準の PEM ヘッダーとフッターを含んでいる必要があります。ヘッダー行は で始まります -----BEGIN PRIVATE.プライベートキーファイルをアップロードするには、Reference asset チェックボックスを選択します。

無し

Snowflake秘密キーパスワード

以下を使用する場合

  • Session Token Authentication Strategy: 空白にする必要があります。

  • KEY_PAIR: Snowflakeプライベートキーファイルに関連付けられたパスワードを提供します。

無し

Snowflakeロール

以下を使用する場合

  • Session Token Authentication Strategy:ランタイムロールを使用します。ランタイムの View Details に移動すると、Openflow UI でランタイムロールを見つけることができます。

  • KEY_PAIR Authentication Strategy:サービスユーザーのために構成された有効なロールを使用します。

有り

Snowflakeのユーザー名

以下を使用する場合

  • Session Token Authentication Strategy: 空白にする必要があります。

  • KEY_PAIR: 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形式に変換する をご参照ください。