Apache Flink®からマルチテーブルトランザクションでデータをロードする
StarRocks Flink Connectorはマルチテーブルトランザクションをサポートしており、FlinkからStarRocksの複数のテーブルにアトミックにデータをロードできます。
ユースケース
単一のFlinkジョブが1つの処理サイクルで同じStarRocksデータベース内の複数のテーブルに書き込む場合、マルチテーブルトランザクションを有効にすることで以下が保証されます:
- クロステーブルアトミックコミット:同じコミットサイクル内で異なるテーブルに書き込まれたデータはアトミックに可視化されます — すべて成功するか、すべて失敗するかのどちらかです。
- ソーストランザクションの整合性:完全なアップストリームトランザクション (例:Kafkaからのもの)が2つのStarRocksトランザクションに分割されることはありません。
- サブ秒のデータ鮮度:データは
/api/transaction/loadを介してStarRocksに継続的に流れ込み、sink.buffer-flush.interval-msで設定された間隔でコミットされます。
典型的なシナリオ:
- 一般テーブルと詳細テーブルへの同期書き込み(例:
ordersとorder_items) - 異なるパーティションテーブルへのイベントルーティング(例:
events_202601、events_202602) - 複数の相互関連するダウンストリーム結果テーブルを管理する単一ジョブ
前提条件
マルチテーブルトランザクションを有効にするには、StarRocks v4.0以降(マルチテーブルトランザクションStream Loadサポートを含む)でクラスターを実行し、StarRocks Flink Connectorをv1.2.9以降で使用する必要があります。