【ノーコード】Snowflake のデータを Google スプレッドシートにインポートする方法
CData API Server は、Snowflake をREST API(OData) として公開することによりWeb サービスから接続することを可能にします。Google スプレッドシートでは、ImportData 関数を使ってWeb サービスデータをSCV フォーマットで取得することができます。次の手順で Google スプレッドシートでImportData 関数を使ってSnowflake のデータ にアクセスする方法を説明します。
Snowflake データ連携について
CData は、Snowflake のライブデータへのアクセスと統合を簡素化します。お客様は CData の接続機能を以下の目的で活用しています:
- Snowflake データを迅速かつ効率的に読み書きできます。
- 指定された Warehouse、Database、Schema のメタデータを動的に取得できます。
- OAuth、OKTA、Azure AD、Azure マネージド サービス ID、PingFederate、秘密鍵など、さまざまな方法で認証できます。
多くの CData ユーザーは、CData ソリューションを使用して、お気に入りのツールやアプリケーションから Snowflake にアクセスし、さまざまなシステムからデータを Snowflake にレプリケートして、包括的なウェアハウジングと分析を行っています。
CData ソリューションとの Snowflake 統合についての詳細は、ブログをご覧ください:https://jp.cdata.com/blog/snowflake-integrations
はじめに
API Server の設定
以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなSnowflake OData サービスを作成していきましょう。
Snowflake への接続
Google スプレッドシートからSnowflake のデータを操作するには、まずSnowflake への接続を作成・設定します。
- API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。
- 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「Snowflake」を選択します。
- 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
CData コネクタの追加方法はこちら >> - それでは、Snowflake への接続設定を行っていきましょう!
-
それでは、Snowflake データベースに接続していきましょう。認証に加えて、以下の接続プロパティを設定します。
- Url:お使いのSnowflake URL を指定します。例:https://orgname-myaccount.snowflakecomputing.com
- Legacy URL を使用する場合:https://myaccount.region.snowflakecomputing.com
- ご自身のURL は以下のステップで確認できます。
- Snowflake UI の左下にあるユーザー名をクリックします
- Account ID にカーソルを合わせます
- Copy Account URL アイコンをクリックして、アカウントURL をコピーします
- Database(オプション):CData 製品によって公開されるテーブルとビューを、特定のSnowflake データベースのものに制限したい場合に設定します
- Schema(オプション):CData 製品によって公開されるテーブルとビューを、特定のSnowflake データベーススキーマのものに制限したい場合に設定します
Snowflakeへの認証
CData 製品では、Snowflake ユーザー認証、フェデレーション認証、およびSSL クライアント認証をサポートしています。認証するには、User とPassword を設定し、AuthScheme プロパティで認証方法を選択してください。
キーペア認証
ユーザーアカウントに定義されたプライベートキーを使用してセキュアなトークンを作成し、キーペア認証で接続することも可能です。この方法で接続するには、AuthScheme をPRIVATEKEY に設定し、以下の値を設定してください。
- User:認証に使用するユーザーアカウント
- PrivateKey:プライベートキーを含む.pem ファイルへのパスなど、ユーザーに使用されるプライベートキー
- PrivateKeyType:プライベートキーを含むキーストアの種類(PEMKEY_FILE、PFXFILE など)
- PrivateKeyPassword:指定されたプライベートキーのパスワード
その他の認証方法については、ヘルプドキュメントの「Snowflakeへの認証」セクションをご確認ください。
- Url:お使いのSnowflake URL を指定します。例:https://orgname-myaccount.snowflakecomputing.com
- 接続情報の入力が完了したら、「保存およびテスト」をクリックします。
それでは、Snowflake データベースに接続していきましょう。認証に加えて、以下の接続プロパティを設定します。
- Url:お使いのSnowflake URL を指定します。例:https://orgname-myaccount.snowflakecomputing.com
- Legacy URL を使用する場合:https://myaccount.region.snowflakecomputing.com
- ご自身のURL は以下のステップで確認できます。
- Snowflake UI の左下にあるユーザー名をクリックします
- Account ID にカーソルを合わせます
- Copy Account URL アイコンをクリックして、アカウントURL をコピーします
- Database(オプション):CData 製品によって公開されるテーブルとビューを、特定のSnowflake データベースのものに制限したい場合に設定します
- Schema(オプション):CData 製品によって公開されるテーブルとビューを、特定のSnowflake データベーススキーマのものに制限したい場合に設定します
Snowflakeへの認証
CData 製品では、Snowflake ユーザー認証、フェデレーション認証、およびSSL クライアント認証をサポートしています。認証するには、User とPassword を設定し、AuthScheme プロパティで認証方法を選択してください。
キーペア認証
ユーザーアカウントに定義されたプライベートキーを使用してセキュアなトークンを作成し、キーペア認証で接続することも可能です。この方法で接続するには、AuthScheme をPRIVATEKEY に設定し、以下の値を設定してください。
- User:認証に使用するユーザーアカウント
- PrivateKey:プライベートキーを含む.pem ファイルへのパスなど、ユーザーに使用されるプライベートキー
- PrivateKeyType:プライベートキーを含むキーストアの種類(PEMKEY_FILE、PFXFILE など)
- PrivateKeyPassword:指定されたプライベートキーのパスワード
その他の認証方法については、ヘルプドキュメントの「Snowflakeへの認証」セクションをご確認ください。
API Server のユーザー設定
次に、API Server 経由でSnowflake にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。
- 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
-
次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
-
その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。
Snowflake 用のAPI エンドポイントの作成
ユーザーを作成したら、Snowflake のデータ用のAPI エンドポイントを作成していきます。
-
まず、「API」ページに移動し、
「 テーブルを追加」をクリックします。
-
アクセスしたい接続を選択し、次へをクリックします。
-
接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。
OData のエンドポイントを取得
以上でSnowflake への接続を設定してユーザーを作成し、API Server でSnowflake データのAPI を追加しました。これで、OData 形式のSnowflake データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。
作成したAPI にGoogle シートから接続
- 次にGoogle Sheet からの接続のために、認証トークンをクエリ文字列で渡せるようにします。
クエリ文字列パラメータとして認証トークンを使用する HTTP フォームポストデータ、もしくはクエリパラメータの一部として提供される_@authtoken_ パラメータの値として認証トークンを指定することができます。ただし、デフォルトではAPI Server はクエリ文字列パラメータにおいて認証トークンを渡すことをサポートしていません。 settings.cfg のアプリケーションセクションにて、次のオプションを設定することで有効化できます。クエリ文字列パラメータとして認証トークンを使用する を参照してください。 - エンドポイントURL をAPI Server が自動生成するAPI ドキュメントからコピーします。authtoken はAPI Server の[ユーザー]を作成し、生成されたトークンを使います。
-
新しいGoogle スプレッドシートで、=ImportData() 関数をつかって、公開されたデータソースからCSV ファイルでデータをリクエストします。このサンプルでは、Products テーブル全体をリクエストします。 Google は定期的に関数の結果を更新し、シートが最新のデータを保有している状態に保ちます。次のように関すを設定してみます。:
=ImportData("https://your-server/api.rsc/Products?@csv&@authtoken=your-authtoken")