序文
私がソフトウェア・エンジニアリングのキャリアをスタートさせた2000年代初頭、ソフトウェア・システムを設計する際、データ分析は後回しにされることが多かった。1日に1回実行されるバッチジョブは、運用データベースからデータを抽出し、データウェアハウスにロードする。ビジネスアナリストは通常、昨日や先週のデータを見ることができれば満足し、レポートを作成したり、1回限りのクエリを実行したりしていた。
演算子データベース内で実行される、高度に最適化された手作業のクエリを除けば、ユーザー向けのアナリティクスというアイデアはほとんどなかった。それ以来、リアルタイム・アナリティクスに対する要求は大幅に高まっている。不正検知、リソース計画、コンテンツ推薦、予測分析、その他多くのユースケースは、価値を提供するために最新のデータを必要とする。インスタンスンス、あなたのクレジットカードが盗まれ、銀行が不正使用のパターンを検出した場合、あなたは明日ではなく今すぐカードをブロックしてほしいと思うだろう?
Apache Kafka(データストリーミング)、Apache Flink(ストリーム処理)、Apache Pinot(データ分析)、Apache Superset(データ可視化)などのツールやプラットフォームは、リアルタイム分析の優れた基盤を提供し、ここ数年で急速に普及している。同時に、最初のユースケースの実装を始めることは困難であり、次のような疑問を持つかもしれない:どの目的でどのツールを選ぶべきか?首尾一貫したソリューションを実現するために、個々のピースをどのように組み合わせるか?本番稼動にはどのような課題があり、それをどのように克服するのか?
マーク氏の著書は、これらやその他多くの懸念事項に関するガイダンスの宝庫である。リアルタイム・アナリティクスとは何なのか)という基礎から始まり、この分野のソフトウェア・エコシステムの包括的な概要を提供し、主要なリアルタイム・アナリティクス・プラットフォームの1つであるApache Pinotについて論じ、生産上の注意点だけでなく、地理空間クエリやアップサート演算(ほとんどのアナリティクス・ストアでは悪名高い厄介な部分)など、より具体的な側面にも踏み込んでいる。
変更データキャプチャ(CDC)のオープンソースプラットフォームであるDebeziumに長年携わってきた私にとって、このトピックに関する章全体が掲載されたことは特に喜ばしいことだ。MySQLやPostgreSQLのような演算子データベースからApache Pinotのような分析プラットフォームへ有効期間中のデータ変更を供給することは、Debeziumコミュニティで何度も目にした重要なユースケースである。マーク自身が経験豊富なCDCユーザであるため、CDCの主要なユースケースと実装アプローチを説明し、包括的な例でDebeziumのセットアップ方法を示すという素晴らしい仕事をしている。
細部へのこだわりと実践的なハンズオンスタイルは、この本全体の定義テーマである。概念的には、どのような議論にも必ず実践例が続き、読者にさまざまなアイデアや技術をどのように実行に移すかを詳細に示している。本書は端から端まで読むのに適しているが、特定のトピックについてもっと学びたい場合は、特定の章だけを選ぶこともできる。
私たちを取り巻く世界はリアルタイムであり、私たちが構築するソフトウェア・システムはその事実を考慮する必要がある。データをリアルタイムで把握するためのアナリティクスのユースケースを実装しているあなたにとって、『 ...