すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:ニアリアルタイムの増分インポート

最終更新日:Mar 26, 2026

データパイプラインがデータベース、ログシステム、またはメッセージキューを MaxCompute に接続する場合、バッチロードによってレイテンシーが発生し、最新のデータがクエリで利用できなくなります。ニアリアルタイムの増分書き込みは、受信した行を分レベルの間隔で Delta テーブルに継続的に書き込むことでこの問題を解決します。これにより、コミットされたデータはフルロードサイクルを待つことなく、すぐにクエリ可能になります。

書き込みモードの選択

書き込みモードレイテンシー利用シーン
ニアリアルタイムの増分書き込み分レベル継続的なデータストリーム。低レイテンシーとフォールトトレランスが求められる場合。
フルデータ書き込み上位定期的なバッチロード。データセット全体が一度に置き換えられる場合。

仕組み

MaxCompute は、オープンソースの Flink コネクタプラグインを提供しています。このプラグインは DataWorks の Data Integration や他のデータインポートツールと統合し、ニアリアルタイムの増分書き込みをサポートします。

image.png

上の図は、ビジネスデータの処理フローを示しています。

データフローは次のとおりです。

  1. データインポートツールは、MaxCompute Tunnel サービスの SDK クライアントを使用して、分レベルの間隔で Tunnel サーバーにデータを同時に書き込みます。

  2. Tunnel サーバーは、複数のワーカーノードに書き込みを分散させます。ワーカーノードは、各バケットのデータファイルにデータを並行して書き込みます。

  3. インポートツールがコミットインターフェイスを呼び出すと、その時点までに書き込まれたすべてのデータがアトミックに Delta テーブルにコミットされ、すぐにクエリ可能になります。

同時実行制御

write.bucket.num パラメーターを設定して、書き込みの同時実行数を制御します。バケット数を増やすと、書き込みスループットが向上します。バケットがパフォーマンスに与える影響の詳細については、「テーブルデータ形式」をご参照ください。

サポートされる操作

Tunnel SDK の書き込みインターフェイスは、次の操作をサポートしています

操作説明
UPSERT新しい行を挿入するか、既存の行を更新します
DELETEDelta テーブルから行を削除します

コミットセマンティクスとフォールトトレランス

コミットインターフェイスを呼び出すたびに、呼び出し前に書き込まれたすべてのデータがアトミックにコミットされます。コミットされたデータは、読み取り/書き込みのスナップショット分離を満たします。

成功した場合:コミットされたデータはすぐにクエリ可能になり、読み取り/書き込みのスナップショット分離を満たします。

失敗した場合:呼び出しが失敗した場合、データの書き込みをリトライできます。データ破損などの回復不能なエラーが原因でない場合、リトライは成功する可能性があり、データを再書き込みする必要はありません。それ以外の場合は、データを再書き込みして再コミットする必要があります。

障害タイプ回復アクション
回復不能ではない障害 (データ破損が原因ではない場合など)コミットを直接リトライします。データを再書き込みする必要はありません。
回復不能な障害 (データ破損や永続的なエラーなど)データを再書き込みして再コミットします。

次のステップ