プラットフォームという観点から見た場合の最も顕著な選択肢は、「Apache」オープンソースプロジェクトと、サービス水準合意(SLA)やサポートを提供する企業や、クラウドプロバイダーを組み合わせるというものだ。1つ目のグループには「Apache Flink」とdata Artisansや、「Apache Spark」とDatabricks、「Apache Kafka」とConfluentがあり、2つ目のグループには「Amazon Kinesis」や「Azure Stream Analytics」「Google Cloud Dataflow」がある。
「Apache Beam」は、さまざまな選択肢の間に相互運用性を保証するレイヤを追加することで、すべてのストリーミングプラットフォームをまたぐ共通のAPIを提供しようとする興味深い試みだ。BeamはGoogleによって着手され、その後Flinkによって採用されたものの、Kafkaに携わる人々はテーブルのサポートが追加されない限り関心がないとしており、Sparkに携わる人々もリソースを割いてまでサポートする予定はないとしているため、足踏み状態になっているようだ。
#4:トランザクション処理とアナリティクス処理のハイブリッド
これまでは、業務用データベースとデータ分析用プラットフォームは異なる世界に属していた。トランザクションの整合性を維持しながら即座に結果を出すというユースケースに内在するすべてのニーズは、複雑な分析や長期間にわたって実行される処理を実現するためのニーズとは大きくかけ離れているため、このことは当然だと考えられてきた。
ただ、そのようにしても理想的な状況にはならない。業務用データベースとデータ分析用プラットフォームの間でのデータ移動が必要となるためだ。これによってコストと複雑さが増大するだけでなく、アナリティクス処理は最新のデータを利用できないようになる。ではここで、トランザクションを扱うデータベース処理と、データウェアハウスのような処理を統合できる方法があるとしたらどうだろうか?
こういったことは、「言うは易く行うは難し」であるのはもちろんであり、今まで実現されていないもっともな理由もある。しかし今日では、「ハイブリッド型トランザクション/アナリティクス処理」(Hybrid Transactional Analytical Processing:HTAP)という名称の考え方が存在している。しかも、現実世界でこれに挑戦する取り組みがあるという、より重要な点も指摘しておく必要があるだろう。
その一部はインメモリ型のアプローチに基づいている。インメモリ型のアプローチの例としては、インメモリデータグリッドとして生み出された後、本格的なトランザクションデータベースへと進化した「GridGain」や、インメモリデータグリッドとトランザクションデータベース(GemFire)をSparkと組み合わせた「SnappyData」がある。同様に、「Apache Hadoop」スタックの1つである「Apache HBase」のキーバリューストア(KVS)とプロプライエタリなテクノロジを組み合わせ、業務のワークロードとアナリティクスのワークロードを1つのソリューションとして実行する「Splice Machine」もある。