Let's Go Talk#7 - GoでGoogle Cloud Dataflowやってみたい
by
あく
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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