SnowflakeにEmbulkでデータをETL(GCP GCS編)

はいさーい!年末年始は半袖半ズボンで暮らしていたaipaです(ちょっと寒かった)。
前回「Embulkを使ってS3からSnowflakeへデータを転送する。」という記事を書きました。

当時、embulk-output-snowflake という名前のpluginが2つあって色々ハマったのですが、記事公開後、なんとアップデートされたようです!!ありがたい!!!
アップデートについてはこちら
ということで、今回はGoogle Cloud Storage(以後 GCS)からSnowflakeへ(今度こそ)データ転送がサクッとできるか試してみました。

はじめに
・Embulkを使って、GCSからSnowflakeへデータを飛ばそう
・Dockerを使ってEmbulkを実行する

この記事を作成するにあたって使用した環境について

認証情報の用意(GCP)
GCSへbuketの用意と、アクセスするためにGCPでサービスアカウントを用意します。
今回の記事では省略します。

認証情報、DB等の用意(Snowflake)
Snowflakeへの登録手順、今回書き込むリソースの用意などはこの記事では省略します。
ユーザー名、パスワード、アカウントURL、作成するDB、WH名などをメモしておいてください。

Embulk実行環境の用意

前回に引き続き、Dockerおじさんの力をお借りします。
今回もDockerfileを修正します。

1.embulk-input-randomjで用意したdummyデータをembulk-output-gcsでGCSへ保存する
2.1で保存したデータをembulk-input-gcsで取得し、embulk-output-snowflakeでSnowflakeへ保存する

はい。あとはビルドして問題なく動作するか確認できたらおkです。

準備おk。

データの用意

GCS → Snowflakeへ転送するdummyデータを用意します。

※${}の箇所はご自分の環境や準備したリソースにあわせて修正してください。
用意ができましたら、早速実行していきましょう。

ブラウザでGCSのBucketを確認してみましょう。

GCSのBucket画面

はい。おkです。データの準備も完了しました。

GCS → SnowflakeでETL

それではSnowflakeへデータをETLしていきたいと思います。
ETLを実行するためのconfig.ymlを用意していきましょう。
項目の入力は面倒なのでguessりましょう。

guessオプションを実行して、inputの列やファイルフォーマットを自動推測します。

はいおkです。
次にoutputのsnowflakeの設定を用意します。
項目は前回の記事を参考にしています。

準備おkですね。それではコマンドを実行します。はたして(ちむどんどん)
修正後再度実行!

わーい。うまくいったようです!!snowflakeへログインしてデータが入っているか確認します。

転送確認画面

何事もなく転送できましたー!

まとめ

今度はすぐできることができました!!!これなら便利ですね〜〜〜。関係者の皆様に感謝ですー。
それではー


Snowflakeに関するお問い合わせはサービス/研修のお問い合わせからご連絡ください。



DATUM STUDIOは、クライアントの事業成長と経営課題解決を最適な形でサポートする、データ・ビジネスパートナーです。
データ分析の分野でお客様に最適なソリューションをご提供します。まずはご相談ください。

このページをシェアする: