カーキ色はヒンディー語らしい

技術記事は https://zenn.dev/notrogue

Building production-ready data pipelines using Dataflow: Planningのメモ

cloud.google.com

開発前に気にすることが紹介されている資料のメモです。他の章のメモはこちら。

 

サービスレベル

Data Freshness

何%のデータが時間内で処理される、未処理の一番古いデータがある時間、パイプラインが一定時間内に終るなどの指標。

 

Data correctness

開発時はユニットテスト結合テストBuilding production-ready data pipelines using Dataflow: Developing and testing data pipelinesで説明)で確認。

 

Data isolation/load balancing

重要度の異なるメッセージを処理する時、パイプラインを分けた方がやりやすい。

 

ソースとシンク

スケーラビリティを確保するために、ソースとシンクに関して

  • 外部システムのスケーラビリティ(Kafkaならパーティション数など)
  • ファイルフォーマット(並列化出来るか)
  • データやネットワークのロケーション
  • GCPのサービス)クオータ

を気にする必要がある

外部システムの負荷を減らすためには、batching(element毎に呼ぶのではなく貯めて呼ぶ)や、ワーカー増えると外部サービスの呼び出しも増える事に注意。

 

リージョン

  • ソースやシンクの近く
  • 法的な制限
  • 特定のリージョンしかサポートされていない機能(Shuffle,Streaming Engine)

などで決定。

ワーカーとEndpointは別に設定出来るが、同じにした方が良い(特にStreaming EngineとShuffle)。

 

暗号化とネットワーク

  • デフォルトで暗号化するが、KMSでカスタムの暗号化キーを使えるよ
  • プライベートIPアドレスに出来るよ(ただしPrivate Google Accessが必要)