Openflow Connector for Google Sheets を設定する¶
注釈
コネクタには、 コネクタ利用規約 が適用されます。
このトピックでは、 Openflow Connector for Google Sheets を設定する手順について説明します。
前提条件¶
Openflow Connector for Google Sheets について を確認してください。
Openflowを設定した ことを確認します。
認証情報を取得する¶
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で、右上のハンバーガーメニューから、このシークレットマネージャに関連付けられたParameter Providerを構成します。 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アカウント名(形式: [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ウェアハウス |
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形式に変換する をご参照ください。