Slide 1

Slide 1 text

© Magic Moment 2021 Go で Google Cloud Dataflow やってみたい © Magic Moment 2021 株式会社Magic Moment Technologiesチーム Akira Nakajima

Slide 2

Slide 2 text

© Magic Moment 2021 自己紹介 2 ● Akira Nakajima ● 株式会社Magic Moment / Software Engineer ● GitHub: @aqlwah ● Twitter: @aqlwah ● 昨年の10月までフロントエンドやってました

Slide 3

Slide 3 text

© Magic Moment 2021 Magic Moment / 営業行動支援システムMagic Moment Playbookについて① 3 ● 株式会社Magic Moment ● 営業行動支援システム 「Magic Moment Playbook」の開発・提供 ● 開発組織は20名+業務委託 ● 昨年9月にシリーズB完了で累計調達額20億円 ● バックエンドにはGoを使ってます!

Slide 4

Slide 4 text

© Magic Moment 2021 Magic Moment / 営業行動支援システムMagic Moment Playbookについて② 4

Slide 5

Slide 5 text

© Magic Moment 2021 今日話すこと 5 Google Cloud Dataflow (Apache Beam)の Go SDKを試してみたい!!! 🥳🥳🥳🎉🎉🎉

Slide 6

Slide 6 text

© Magic Moment 2021 Dataflowって何? 6 ● Google Cloudのマネージドデータパイプラインサービスです ○ 分散処理やスケーリングを隠蔽してくれます ○ 「データをどう扱うか」のみに集中できます ○ バッチ処理、ストリーミング処理の両方に対応できます ● 具体的には、Apache Beamの実行プラットフォームです ● ワンショットのデータ処理ジョブを実行するものです ○ 異なるジョブ同士の前後関係の管理や、ジョブのスケジューリングなどは別サービス (Cloud Composer)が必要になります

Slide 7

Slide 7 text

© Magic Moment 2021 Apache Beamって何?① 7 ● データパイプラインを抽象化して定義する 統 合プログラミングモデルです ● 特定のプラットフォームに対応する ランナーによって実行されます ○ Apache Spark、Google Cloud Dataflow、Direct(ローカル実行) etc. ● Python, Java, GoのSDKがあります 画像出典:https://beam.apache.org/

Slide 8

Slide 8 text

© Magic Moment 2021 Apache Beamって何?② 8 ● Pipeline:データパイプラインジョブを表す オブジェクト ● PCollection:ジョブの各ステップの 入力・出力となるデータセット ● PTransform:データセットの変換操作 ● ParDo:データセットに関数を実行する操作 ● パイプラインI/O:データソースとデータシン クのコネクタ 画像出典:https://beam.apache.org/

Slide 9

Slide 9 text

© Magic Moment 2021 ③ ParDo Format 作ってみたもの① 9 ① PubSubIO Read ② ParDo json.Unmarshal ④ ParDo DB INSERT PubSub Cloud SQL Dataflow PC1 PC2 PC3

Slide 10

Slide 10 text

© Magic Moment 2021 ● パイプラインを書く前準備 ● beam.Init() は必須 ● pipeline オブジェクトの生成も 必須 作ってみたもの② 10

Slide 11

Slide 11 text

© Magic Moment 2021 ● パイプラインのステップを書く ● 前のステップの戻り値の PCollection を次のステップ に渡していく 作ってみたもの③ 11

Slide 12

Slide 12 text

© Magic Moment 2021 ● beamx.Run() に pipeline オブジェクトを渡して実行 ● main() とパイプラインの実行 コンテキストは別なので DB コ ネクションはパイプライン中で 工面する必要がある 作ってみたもの④ 12

Slide 13

Slide 13 text

© Magic Moment 2021 動かしてみた感じ① 13

Slide 14

Slide 14 text

© Magic Moment 2021 動かしてみた感じ② 14 Cloud SQL PubSub

Slide 15

Slide 15 text

© Magic Moment 2021 まとめ 15 ● Google Cloud には、データパイプラインを イイ感じに動かしてくれる Dataflow(Apache Beam)という サービスがあります ● たったスライド3枚分のコードで PubSub -> Cloud SQL のパ イプラインが書けました ● 近年 Go SDK が整備されてきており、Gopher にも扱いやすく なってきているようです Go

Slide 16

Slide 16 text

© Magic Moment 2021 宣伝 16 We’re Hiring! 2/22(水)に弊社 VPoE&Tech Lead が 全員出る座談会やります! connpass で「Magic Moment」検索 https://magicmoment.connpass.com/event/274825/ Wantedly のブログ記事も ぜひご覧ください!🙏 https://www.wantedly.com/companies/magicmoment/stories

Slide 17

Slide 17 text

© Magic Moment 2021 THANK YOU © Magic Moment 2021 17