25章データ処理のパイプライン

執筆:Dan Dennison

編集:Tim Harvey

本章では、深くて複雑なデータ処理パイプラインの管理における現実の課題に焦点を当てます。実行頻度の非常に低い定期的なパイプラインから、決して止まることのない継続的なパイプラインに至るまで、さまざまな実行頻度のパイプラインを見ていき、運用上の大きな問題を生むことがある不連続性について述べます。ビッグデータを処理するための定期的なパイプラインに対する、信頼性とスケーラビリティに優れた代案として、リーダー−フォロワーモデルの新たな見方を紹介します。

25.1 パイプラインのデザインパターンの起源

データ処理に対する旧来のアプローチは、データを読み取り、希望する何らかの方法でそのデータを変換し、新しいデータを出力するプログラムを書くというものでした。通常こういったプログラムは、cronのような定期スケジューリングを行うプログラムの制御の下でスケジュール実行されました。このデザインパターンはデータパイプラインと呼ばれます。データパイプラインは、コルーチン[Con63]、DTSS通信ファイル[Bul80]、Unixのパイプ[McI86]、そして後のETLパイプライン†1にまでさかのぼることができますが、こういったパイプラインは「ビッグデータ」†2あるいは「従来のデータ処理アプリケーションで処理することが困難なほど巨大で複雑なデータ集合」の台頭と共に注目を集めるようになりました。

25.2 シンプルなパイプラインパターンでのビッグデータの初期の効果

ビッグデータに対して定期的、あるいは連続的な変換を行うプログラムは、通常「シンプルで1フェーズのパイプライン」と呼ばれます。

ビッグデータは元来大規模で複雑な処理が必要になるものなので、通常プログラムは連鎖的なものとして構成され、1つのプログラムの出力が次のプログラムの入力となります。この構成にはさまざまな基本原理がありうるものの、たいていはシステムの理由付けが容易になるように設計されており、運用の効率性は焦点が当たっていません。この方法で編成されたプログラムは、連鎖中の各プログラムが個別のデータ処理のフェーズとして動作することから、 ...

Get SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.