第1章. ストリーミングの基礎
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
英雄の旅は常に呼び出しから始まる。いずれにせよ、ガイドが来て、「ほら、あなたは眠れる国にいる。目覚めよ。旅に出よう。君の意識、君の存在には、まだ触れていない側面がある。ここが家なのか?そうだ、そこにはまだ十分な君がいないんだ」。そうして始まる。
ジョセフ・キャンベル『アート・オブ・リビング(生きる技術)についての考察』:ジョセフ・キャンベル・コンパニオン
ストリーミング・データベースは、10年以上にわたるデータの処理とサービスから生まれた概念である。ストリーミング・データベースの出現に至る進化は、データベース管理システム、データ処理、そしてデジタル時代の要求の変化という幅広い歴史に根ざしている。この進化を理解するために、ストリーミング・データベースの発展を形作った重要なマイルストーンの歴史的な旅をしよう。
20世紀後半、インターネットの台頭とデジタルデータの爆発的な増加は、よりスケーラブルで柔軟なデータ管理ソリューションの必要性につながった。データウェアハウスやHadoopのようなバッチ指向の処理フレームワークは、この時代のデータサイズの課題に対処するために登場した。
「ビッグデータ」という言葉は、データの大きさだけでなく、非常に大きなデータをストアし処理するすべてのソリューションを指す言葉として使われ、現在も使われている。ビッグデータは1台のコンピュータやサーバには収まらない。より小さく、同じ大きさに分割し、複数のコンピューターに保存する必要がある。Hadoopや MapReduceのようなシステムが普及したのは、分散ストレージと分散処理が可能になったからだ。
これが、分散ストリーミングを使って大量のデータをHadoopに移動させるというアイデアにつながった。Apache Kafkaは、ビッグデータを扱うために設計されたメッセージングサービスの1つとして登場した。システムからシステムへデータを移動する方法を提供するだけでなく、リアルタイムで動いているデータにアクセスする方法も提供した。これは、リアルタイム・ストリーミングのユースケースに対する新たな需要の波となった。
Apache Flinkや Apache Sparkなどの新技術が開発され、これらの新しい期待に応えることができた。バッチ処理とストリーミングのための分散フレームワークとして、多くのサーバにまたがってデータを処理し、分析結果を提供することができた。Kafkaと組み合わせることで、このトリオはストリーミング・リアルタイムの分析ユースケースをサポートできるソリューションを提供した。ストリーム・プロセッサについては、第2章で詳しく説明する。
2010年代半ば、リアルタイム・データ処理の規模を拡大するために、よりシンプルで優れたストリーミング・パラダイムが登場した。これには2つの新しいストリーム処理フレームワーク、Apache Kafka Streams(KStreams)とApache Samzaが含まれる。KStreamsとSamzaはマテリアライズド・ビューを初めて実装し、ストリームのルック&フィールをデータベースのようにした。
Martin Kleppmannデータベースとストリーミングの組み合わせをさらに進化させた。2015年の講演「Turning the Database Inside-Out」で、彼はデータベース内部の機能をリアルタイムストリームに外部化するストリーム処理の実装方法について説明した。このアプローチは、よりスケーラブルでレジリエンスに優れたリアルタイム・ストリーム処理システムにつながった。 ...
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