🤖

RisingWaveとは?

2024/12/14に公開

RisingWaveは、リアルタイムイベントストリーミングデータを処理、分析、管理するための、最もシンプルコスト効率の高いアプローチを提供する、Postgres互換のSQLベースのストリーミングデータベースです。

RisingWaveは毎秒数百万件のイベントを取り込み、ライブデータストリームと履歴テーブルを継続的に結合・分析し、リアルタイムでアドホックなクエリを実行し、必要な場所で新鮮で一貫した結果を提供します。

architecture

RisingWaveはどんな場合に最適ですか?

RisingWaveは次のようなシナリオに最適なソリューションです:

  • KafkaストリームやデータベースCDCなどのリアルタイムデータソースの管理
  • 結合、集計、時間ウィンドウ処理などの複雑なクエリの実行
  • 一貫性のある、最新の結果をインタラクティブかつ同時に探索
  • 下流システムへの結果のシームレスな配信
  • ストリーミングデータとバッチデータの統合処理

RisingWaveはどのようなユースケースで優れたパフォーマンスを発揮しますか?

RisingWaveは以下のユースケースで特に効果的です:

  • ストリーミング分析:ライブダッシュボードでのサブ秒単位のデータ新鮮度を実現。株式取引やスポーツベッティング、IoT監視などの重要なシナリオに最適です。
  • イベント駆動型アプリケーション:詐欺や異常検出など、重要なアプリケーションのための高度な監視とアラートシステムを開発。
  • リアルタイムデータの強化:多様なデータソースからデータを継続的に取り込み、リアルタイムでデータを強化し、その結果を下流システムに効率的に提供。
  • 特徴量エンジニアリング:バッチデータとストリーミングデータを機械学習モデルの特徴量に変換し、統一されたコードベースを使用してシームレスな統合と一貫性を確保。

RisingWaveと他のシステムの比較

RisingWaveは単なる「代替」製品ではなく、ストリームプロセッサー、分析データベース、オペレーショナルデータベースと比較されることがよくあります。

ストリームプロセッサー

ksqlDB、Spark Structured Streaming、Flink SQLなどのストリームプロセッサーは、RisingWaveと比較されることがよくあります。これらのシステムにはそれぞれの強みがありますが、RisingWaveは非常にシンプルなPostgreSQLスタイルのユーザー体験を提供し、手動での状態管理の必要性を排除しています。特に優れた点は:

  • 結合、集計、時間ウィンドウなどの複雑なクエリを高パフォーマンスで処理
  • 動的スケーリングの透明性があり、数秒でスケールイン・スケールアウト可能
  • 即時の障害回復機能で、RisingWaveは数秒で回復します

さらに、RisingWaveは全体のアーキテクチャを大幅に簡素化します。詳細は、RisingWaveはどのようにイベント駆動型アーキテクチャを簡素化するか?をご覧ください。しかし、これらのストリームプロセッサーと比較すると、RisingWaveは低レベルのJavaおよびScala APIを提供していませんが、さまざまな言語のUDFやSDKを提供することで補っています。

分析データベース

ClickHouse(マテリアライズドビュー)、Snowflake(ダイナミックテーブル)、BigQuery(継続的クエリ)、Databricks(Delta Live Tables)などのモダンな分析データベースは、継続的な処理機能を提供します。RisingWaveは、次の点でこれらのソリューションを上回ります:

  • 時間ウィンドウ、ウォーターマークなどを含む、ストリーム処理の豊富な機能セットを提供
  • 複雑なストリーミングジョインを処理するために特に最適化
  • どのシステムからでもデータを取り込み、配信でき、特定のエコシステムにロックされることはない

さらに、RisingWaveの透明な動的スケーリングと即時の障害回復メカニズムは、他の分析データベースに勝ります。

ただし、RisingWaveはカラム型ストレージを使用していません。もしあなたのワークロードが、事前定義されたクエリではなく、アドホックな長期間のスキャンを主に含むものであれば、分析データベースの方が適しているかもしれません。

オペレーショナルデータベース

RisingWaveはPostgreSQLワイヤ互換で、PostgreSQLエコシステム内のほとんどのツールとシームレスに統合できます。RisingWaveは、ストリーミングデータの格納と処理に特化して設計されており、トランザクションデータではなく、メトリクスやイベントの管理に特に適しています。

注意点として、RisingWaveは内部でPostgreSQLエンジンを使用していないため、特定のPostgreSQLツールはサポートされていません。また、RisingWaveは読み書きトランザクションをサポートしていません。

RisingWaveはどのようにイベント駆動型アーキテクチャを簡素化するか?

RisingWaveは、イベント駆動型アーキテクチャの簡素化を目指しています。RisingWaveを統一システムとして考えると、イベントストリーミング、ストリーム処理、ストレージ、サービング機能を組み合わせたものです。開発者は、カスケードされたマテリアライズドビューを通じて複雑なストリーム処理ロジックを表現できます。さらに、データをシステム内で直接永続化することができ、結果を外部データベースに配信して格納・クエリサービングする必要がなくなります。

Stream processing with and without RisingWave

Discussion