第1章. ストリーミング101
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ストリーミング・データ処理は、最近のビッグデータにおいて大きな話題となっているが、それには十分な理由がある。その中でも:
-
企業はデータに対するよりタイムリーな洞察を切望しており、ストリーミングへの切り替えは遅延の低減を実現する良い方法である。
-
現代のビジネスでますます一般的になっている、膨大で制限のないデータセットは、このような尽きることのないデータ量のために設計されたシステムを使うことで、より簡単に管理できる。
-
到着したデータを処理することで、ワークロードをタイムアウトで均等に分散させ、リソースの消費をより一貫した予測可能なものにする。
このようなビジネス主導によるストリーミングへの関心の高まりにもかかわらず、ストリーミング・システムは長い間、バッチの同胞に比べると相対的に未成熟なままだった。潮流が決定的に反対方向に振れたのは、ごく最近のことだ。これは、私が「ストリーミング101」と「ストリーミング102」のブログ記事(本書の最初の数章は、このブログ記事が元になっていることは明らかだ)で、ストリーミングの重要性を説いてきたおかげだと、私は思っている。しかし現実には、ストリーミング・システムが成熟するのを見たいという業界の関心が高いだけでなく、それを構築することを楽しんでいるスマートでアクティブな人々が大勢いるのだ。
一般化ストリーミング擁護のための戦いは、私の意見では事実上勝利したとはいえ、『ストリーミング101』での私の当初の引数は、ほぼそのまま提示するつもりだ。1つには、たとえ業界の多くがこの戦いの叫びに耳を傾け始めたとしても、それらは今日でも十分に通用するからだ。そして2つ目は、まだメモを受け取っていない人々が大勢いるということだ。本書は、これらの点を伝えるための拡大版である。
まず始めに、これからお話しするトピックのフレームを作るのに役立つ重要な背景情報をいくつか取り上げる。具体的には3つのセクションで説明する:
- 用語解説
-
複雑なトピックについて正確に語るには、用語の正確な定義が必要である。現在使用されているオーバーロードな解釈のある用語については、私がその用語を口にするときに何を意味しているのかを正確に説明することにしよう。
- 能力
-
ストリーミング・システムの欠点としてよく知られている点について述べる。また、現代のデータ・コンシューマのニーズに対応するために、データ処理システム・ビルダーが採用すべき心構えを提案する。
- タイムドメイン
-
データ処理に関連する2つの主要な時間領域を紹介し、それらがどのように関連しているかを示し、これら2つの領域がもたらす困難の点を指摘する。
用語解説:ストリーミングとは何か?
先に進む前に、、ひとつだけ整理しておきたい。ストリーミングとは何か?ストリーミングという用語は、今日、さまざまな意味で使われている(そして、わかりやすくするために、私は今までそれをやや緩く使ってきた)。そのため、ストリーミングとは本当は何なのか、ストリーミング・システムは実際に何ができるのかについて、誤解を招きかねない。そのため、私はこの用語をある程度正確に定義したいと思う。
この問題の核心は、本来であればその内容(無制限のデータ処理、おおよその結果など)で説明されるべき多くのことが、歴史的にどのように達成されてきたか(つまり、ストリーミング実行エンジンを介して)で口語的に説明されるようになったことである。このような用語の正確さの欠如は、ストリーミングの本当の意味を曇らせ、場合によっては、ストリーミング・システム自体に、その能力が、近似的な結果や推測可能な結果といった、歴史的に「ストリーミング」として説明されてきた特徴に限定されているという含みを持たせてしまう。 ...