Openflow Connector for Google Sheets を設定する¶
注釈
コネクタには、 コネクタ利用規約 が適用されます。
このトピックでは、 Openflow Connector for Google Sheets を設定する手順について説明します。
前提条件¶
Openflow Connector for Google Sheets について を確認してください。
Openflowの設定 - BYOC または Openflowの設定 - Snowflakeデプロイメント - タスク概要 があることを確認してください。
認証情報を取得する¶
Googleクラウド管理者として、以下のタスクを実行します、
以下があることを確認します。
スーパー管理者権限を持つ Googleユーザー
以下のロールがある Google Cloud Project:
サービスアカウントキーの作成を有効にします。Googleはデフォルトでサービスアカウントキーの作成を無効にしています。Snowflake Openflowでサービスアカウント JSON を使用するには、このキー作成ポリシーをオフにする必要があります。サービスアカウントキーの作成を有効にするには、以下のタスクを実行します。
Google Cloud Console に、組織ポリシー管理者ロールを持つスーパー管理者アカウントでログインします。
組織内のプロジェクトではなく、組織に関連付けられたプロジェクトであることを確認します。
Organization Policies を選択します。
Disable service account key creation ポリシーを選択します。
Manage Policy を選択し、適用をオフにします。
Set Policy を選択します。
サービスアカウントとキー を作成します。
Google Sheetsのスプレッドシートをサービスアカウントのメールアドレスで共有します。メールアドレスは、サービスアカウント JSON ファイルの
client_emailフィールドの下にあります。共有権限をViewerに設定します。
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で作成したロールを付与します。
コネクタが使用するウェアハウスを指定します。まずは最小のウェアハウスサイズから始め、複製するテーブルの数や転送するデータ量に応じて異なるサイズを試してみてください。テーブル数が大きい場合は、通常、ウェアハウスのサイズを大きくするよりも、 マルチクラスターウェアハウス を使用した方がスケーリングが向上します。
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタをインストールおよび構成します。
コネクタをインストールする¶
Openflowの概要ページに移動します。Featured connectors セクションで、 View more connectors を選択します。
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。
Add を選択します。
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
フローパラメーター の説明に従って、必要なパラメーター値を入力します。
フローパラメーター¶
コネクタ定義の構成は、3つのパラメーターコンテキストに分けられます。
Google Sheetsソースパラメーター:Google Sheetsとの接続を確立するために使用します。
Google Sheets宛先パラメーター:Snowflakeとの接続を確立するために使用します。
Google Sheets取り込みパラメーター:Google Sheetsからダウンロードするデータの構成を定義するために使用します。
注釈
Google Sheets取り込みパラメーター のパラメーターコンテキストにはスプレッドシート固有の詳細が含まれているため、新しいスプレッドシートとプロセスグループごとに新しいパラメーターコンテキストを作成する必要があります。
新しいパラメーターコンテキストを作成するには、Openflow Canvasメニューから Parameter Contexts を選択し、新しいパラメーターコンテキストを追加します。これはGoogle Sheetsの宛先パラメーターおよびソースパラメーターのパラメーターコンテキストのパラメーターを継承したものです。
以下のテーブルで、パラメーターコンテキストに基づいて構成できるフローパラメーターについて説明します。
Google Sheets宛先パラメーター¶
パラメーター |
説明 |
必須 |
|---|---|---|
宛先データベース |
データが永続化されるデータベース。Snowflakeにすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。 |
有り |
宛先スキーマ |
データが永続化されるスキーマ。これはSnowflakeにすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。 次の例をご参照ください。
|
有り |
Snowflakeアカウント識別子 |
以下を使用する場合:
|
有り |
Snowflake認証ストラテジー |
以下を使用する場合:
|
有り |
Snowflake秘密キー |
以下を使用する場合:
|
無し |
Snowflake秘密キーファイル |
以下を使用する場合:
|
無し |
Snowflake秘密キーパスワード |
以下を使用する場合
|
無し |
Snowflakeロール |
以下を使用する場合
|
有り |
Snowflakeのユーザー名 |
以下を使用する場合
|
有り |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス。 |
有り |
Google Sheetソースパラメーター¶
パラメーター |
説明 |
|---|---|
サービスアカウント JSON |
client_id、client_email、private_keyなどのService Account認証情報を含むファイルのコンテンツ。ファイルの全コンテンツをコピーします。 |
Google Sheets取り込みパラメーター¶
以下のテーブルに、他のパラメーターコンテキストから継承されないパラメーターのみを一覧表示します。
パラメーター |
説明 |
|---|---|
日付時刻レンダリングオプション |
出力における日付の表示方法を決定します。 |
宛先データベース |
宛先テーブルが作成される宛先データベース。 |
宛先スキーマ |
宛先テーブルが作成される宛先スキーマ。 |
宛先テーブルプレフィックス |
宛先テーブルのプレフィックスには、Google Sheetsから取得したレポートデータが格納されます。コネクタは、各範囲に対して1つの宛先テーブルを作成します。 範囲が提供されない場合、シート名がテーブル識別子として使用されます。シートの最初の行は、宛先テーブルの列名を表します。 |
範囲 |
スプレッドシートから取得する範囲のリスト。範囲を指定しない場合は、指定したスプレッドシート内のすべてのシートがダウンロードされます。各範囲は、 A1 または R1C1 表記 のいずれかで、コンマで区切って提供します。例: |
スケジュールを実行する |
Google Sheetsからデータを取得し、Snowflakeに保存するスケジュールを実行します。デフォルトでは、タイマー駆動のスケジュールストラテジーが使用され、ここでユーザーは、 |
スプレッドシート ID |
スプレッドシートの 一意の識別子。スプレッドシートの URL にあります。 |
値レンダリングオプション |
出力における値のレンダリング方法を決定します。 |
注釈
宛先テーブルの識別子は、宛先テーブルのプレフィックスと範囲名の組み合わせで、一意でなければなりません。複数のスプレッドシートまたは単一のシートからデータをダウンロードし、範囲名が一意でない場合は、各フローに一意の宛先テーブルプレフィックスを指定する必要があります。宛先テーブル名が一意でない場合、既存の宛先テーブルを上書きしてコネクタが失敗することがあります。
フローを実行する¶
プレーンを右クリックし、 Enable all Controller Services を選択します。
インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。
注釈
インポートした .xlsx はGoogle Sheets形式でなければなりません。ファイルをインポートする場合は、フローを実行する前にファイルがGoogle Sheets形式に変換されていることを確認します。Google Sheets以外の形式のスプレッドシートは読み取れません。詳細については、 ファイルをGoogle Sheets形式に変換する をご参照ください。