Snowflake Knowledge - INSIGHT LAB

【データ連携】troccoでGoogle SpreadsheetsからSnowflakeへデータを送ってみた

作成者: BI LAB編集室|2020年12月04日

troccoとは?

troccoとは、primeNumber社が提供しているSaaS型のデータ統合(連携)ツールです。
データ転送・整備・ワークフロー構築が簡単にGUIで簡単に実現できるのが特徴です。

処理エンジンにはデータ転送のOSSとして実績豊富なEmbulkを採用。
インフラはKubernetesクラスタで管理されているためスケーラビリティが高く、同時実行性能にも優れています。

 

   

 

私見ですが、スクラッチで同じようなツールを作ろうとすると初期構築コストが結構掛かると思います。
まずはコンテナオーケストレーションサービス(AWSだとECS/EKS + Fargate)でEmbulkの実行環境を用意して、次に各種プラグインをインストールして、DigDagでワークフロー管理して、Git連携して、etc...
想像したら結構ハードですね…

 

troccoなら初期構築コストが不要で、10万円/月~で導入することができます。
トライアルも用意されているので、興味のある方はぜひ公式HPをご確認ください。
https://trocco.io/lp/index.html

やりたいこと

さて今回は表題の通り、troccoを使ってGoogle Spreadsheetsに入力したデータをSnowflakeに転送してみようと思います。

設定から転送まで10分程度で完了します。(速い!)

では早速やってみましょう。

接続情報を設定

troccoの[接続情報]ページを開き、[新規作成]をクリックします。

 

Google Spreadsheetsの設定

[接続情報作成]ページが開きます。[Google Spreadsheets]を選択して下さい。

 

認証方法をGoogleアカウントかJSONキーか選べますが、今回は[Googleアカウントを連携する]を選択します。

 

Google認証画面が表示されるので、任意のGoogleアカウントを選択し、認証を完了します。

 

任意の接続名を入力し、[保存]をクリックします。

 

[接続情報]ページを確認すると、スプレッドシートの接続先が一覧に追加されています。

続いてSnowflakeの接続情報も設定しましょう。

 

Snowflakeの設定

先ほど同様、接続情報作成画面を開いたら[Snowflake]を選択して下さい。

 

任意の接続名/接続先ホスト(URL)/ユーザー名/パスワードを入力し、[保存]をクリックします。

 

[接続情報]ページを確認すると、Snowflakeの接続先が一覧に追加されています。

接続情報の設定は以上です。

 

転送設定を作成

[転送設定]ページを開き、[新規転送設定作成]をクリックします。

 

転送元に[Google Spreadsheets]、転送先に[Snowflake]を選択し、[この内容で作成]をクリックします。

 

概要設定

[転送設定作成]ページが開きます。

最初は概要設定です。任意の転送名を入力して下さい。

 

転送元Google Spreadsheetsの設定

次はGoogle Spereadsheetsの設定です。

[Google Spreadsheets接続情報]欄では、
先ほど設定した接続情報(画面では「spreadsheets」)を選択して下さい。

他の欄については、読み込みたいスプレッドシートを確認して入力してください。

 

ちなみに今回読み込むスプレッドシートは下記です。
ヘッダ行があるので、[取り込み開始行番号]は2にする必要がありますね。

 

転送先Snowflakeの設定

続いてSnowflakeの設定です。

[Snowflake接続情報]欄では、
先ほど設定した接続情報(画面では「snowflake」)を選択して下さい。

[ウェアハウス]欄には今回の転送処理で利用したいウェアハウス名を入力し、
[データベース名]/[スキーマ]/[テーブル]欄に転送先の情報を入力します。

[転送モード]欄ではinsert/insert_direct/truncate_insert/replaceの4モードが選べます。
画面では「全件削除して挿入」処理になるtruncate_insertを選択しています。

設定し終えたら[保存して自動データ設定・プレビューへ]をクリックします。

 

データプレビュー・詳細設定

データプレビューが表示されます。
プレビューが問題ないようでしたら、[設定を完了する]をクリックします。

ちなみに下のタブ(データ設定/入力オプション/出力オプション/ジョブ設定)で詳細設定ができますが、今回は省略します。
※詳細設定ではデータのマスキングや文字列置換、ジョブのリトライ回数等の設定ができます。

これで転送設定は完了です。

 

転送ジョブを実行する

ジョブを実行してデータを転送してみましょう。

先ほど作成した転送設定の[実行]をクリックします。

 

続いて[ジョブを実行]をクリックします。

 

ジョブの実行ページが開きます。

ステータスが[SUCCEEDED]になったら実行成功です。

 

Snowflakeを開いてデータが入っているか確認してみましょう。

SnowflakeのWebコンソールから該当テーブルにSELECT文を実行してみると…この通り!

Spreadsheetsで入力したデータが転送されていますね。

 

最後に

今回はGoogle Spreadsheets → Snowflakeのデータ連携を検証しました。
troccoは他にも50種類以上のデータソースに対応していますので、別のデータソースでの検証記事も今後掲載できれば、と思います。

以上、「【データ連携】troccoでGoogle SpreadsheetsからSnowflakeへデータを送ってみた」でした!