3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GCPのDataFlowを簡単に触ってみた記録

Last updated at Posted at 2020-09-23

Intro

Google Cloud Dataflowを触ることがあったので、備忘も兼ねてどんな感じだったか記録を残す。

Google Cloud Dataflowって?

簡単に言うと、ストリーミングデータやらの操作・管理を取り持ってくれるGCPのサービスです。
今回はPubSubで受けたデータをDataFlowを介してCloudStrageに配置しようと思います。
ログやトラッキングデータのような物が不特定多数postされ、それを保持したり後の分析に利用するようなケースを想定しています。

1.Pub/Subにトピックを作成

Pub/Subってまたストレートな名前ですが、こちらもGCPのサービスです。所謂メッセージングというかキューというか。
今回のデータの始点、ある意味トリガーとなります。
とりあえず普通にGUIのコンソールから名前をつけるだけです。

2.CloudStorageにバケット用意

今回の終点となる場所を用意しておきます。
新たにバケットを作るか、既存であれば任意のフォルダを用意してください。
一時ファイルを配置するフォルダも合わせて用意しておきましょう(後述)。

3.DataFlowをテンプレートから作成

ここまで準備できると、あとは画面からポチポチしていくだけでできてしまいます。
というのも、DataFlowには利用頻度の高いユースケースに合わせて、テンプレートが用意されているので、
適宜選んで、必要な設定をするだけである程度動くものができてしまいます。

「テンプレートからジョブを作成」リンクから作成画面にいったら、ジョブ名、リージョンを選択します。
そしてテンプレートを選択。
今回は「Pub/Sub to Text Files on Cloud Strage」(そのまま!)を選びます。
その他必須パラメータを設定する上でのポイントとしては、

  • Pub/SubのTopic名は"projects〜"から始まるものにすること(トピックの詳細ページでコピーできるもの)。
  • Output Directoryは日付フォーマットが使える。"gs://foo-bucket/bar-folder/YYYY/MM/DD"とかしておくとYMDのところは日付に応じて自動でフォルダを割り振ってくれる。
  • "一時的なロケーション"を指定する必要あり。(まぁ、任意のバケットに適当に/tmpとか作っておけば取りえあず大丈夫かと)

スクリーンショット 2020-09-23 13.30.41.png

4.TopicにPublishしてみる

以上までで、一通りの設定は完了。
ジョブを実行して、PubSubからメッセージをパブリッシュしてしばらくすると、CloudStorageにファイルができています。
中身にはパブリッシュしたメッセージが!
因みに、デフォルトは5分間でたまったメッセージが、それぞれ改行された上で1ファイルとしてCloudStorageに吐かれる模様。

備考・感想

  • そういえばsubscriptionを作っていません。通常、Topicに対してSubscriptionがあってPubSubが構成されるのですが、今回はジョブを作成した時点で自動でsubscriptionが作られていたようです。
  • 既存テンプレート以外の構成は、適宜テンプレートの実装を行う必要があります。ただし、githubにテンプレートのリポジトリがあるので、それをベースにカスタマイズすることが可能(ソースはJavaかPython)。
  • 最終的にはBigQueryも絡めてやってみたいが、今回の感触でそれも難しくなさそうな感じ。
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?