SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム
by Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy, 澤田 武男, 関根 達夫, 細川 一茂, 矢吹 大輔, Sky株式会社 玉川 竜司
25章データ処理のパイプライン
執筆:Dan Dennison
編集:Tim Harvey
本章では、深くて複雑なデータ処理パイプラインの管理における現実の課題に焦点を当てます。実行頻度の非常に低い定期的なパイプラインから、決して止まることのない継続的なパイプラインに至るまで、さまざまな実行頻度のパイプラインを見ていき、運用上の大きな問題を生むことがある不連続性について述べます。ビッグデータを処理するための定期的なパイプラインに対する、信頼性とスケーラビリティに優れた代案として、リーダー−フォロワーモデルの新たな見方を紹介します。
25.1 パイプラインのデザインパターンの起源
データ処理に対する旧来のアプローチは、データを読み取り、希望する何らかの方法でそのデータを変換し、新しいデータを出力するプログラムを書くというものでした。通常こういったプログラムは、cronのような定期スケジューリングを行うプログラムの制御の下でスケジュール実行されました。このデザインパターンはデータパイプラインと呼ばれます。データパイプラインは、コルーチン[Con63]、DTSS通信ファイル[Bul80]、Unixのパイプ[McI86]、そして後のETLパイプライン†1にまでさかのぼることができますが、こういったパイプラインは「ビッグデータ」†2あるいは「従来のデータ処理アプリケーションで処理することが困難なほど巨大で複雑なデータ集合」の台頭と共に注目を集めるようになりました。
25.2 シンプルなパイプラインパターンでのビッグデータの初期の効果
ビッグデータに対して定期的、あるいは連続的な変換を行うプログラムは、通常「シンプルで1フェーズのパイプライン」と呼ばれます。
ビッグデータは元来大規模で複雑な処理が必要になるものなので、通常プログラムは連鎖的なものとして構成され、1つのプログラムの出力が次のプログラムの入力となります。この構成にはさまざまな基本原理がありうるものの、たいていはシステムの理由付けが容易になるように設計されており、運用の効率性は焦点が当たっていません。この方法で編成されたプログラムは、連鎖中の各プログラムが個別のデータ処理のフェーズとして動作することから、 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access