Let's Go Talk#7 - GoでGoogle Cloud Dataflowやってみたい
by
あく
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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