このトピックでは、ニアリアルタイム データウェアハウス ソリューションで対処できるビジネス上の課題とその主要なアーキテクチャ上の特徴について説明します。
背景情報
企業はビッグデータ プラットフォームを活用して、大量のデータから迅速に洞察を得て、タイムリーかつ効果的な意思決定を行っています。また、データの鮮度とリアルタイム処理に対する要求もますます高まっています。ビッグデータ プラットフォームは一般的に、オフライン、リアルタイム、およびストリーム処理エンジンの組み合わせを使用して、リアルタイムのパフォーマンスと費用対効果に対するユーザーの要件を満たしています。しかし、多くのビジネス シナリオでは、行レベルの更新やデータ更新後数秒以内でのデータの可視性は必要ありません。代わりに、大量データのバッチ処理と組み合わせた、分または時間レベルのニアリアルタイム データ処理が必要です。MaxCompute は、元のオフライン バッチ処理エンジンに基づいてアーキテクチャをスペックアップし、ニアリアルタイム データウェアハウス ソリューションを立ち上げました。
このソリューションは、Delta テーブルに基づいて増分データと完全データの統合ストレージと管理を実装しています。また、豊富な増分計算機能を提供し、MaxCompute Query Accelerator 2.0(MaxQA、旧称 MCQA2.0)機能をスペックアップして、数秒以内のクエリ応答をサポートしています。
現状分析
典型的なデータ処理ビジネス シナリオ:
タイムリー性の要件が低い大規模な完全データ バッチ処理のシナリオでは、MaxCompute のみでビジネス要件を十分に満たすことができます。
タイムリー性の要件が高い数秒以内のリアルタイム データ処理またはストリーム処理の場合、要件を満たすためにリアルタイム システムまたはストリーム システムが必要です。
包括的なビジネス シナリオ: 分レベルまたは時間レベルのタイムリー性の要件と大量データ バッチ処理シナリオを伴うニアリアルタイム データ処理シナリオの場合、単一エンジンを使用する場合でも、フェデレーテッド クエリ用に複数のエンジンを使用する場合でも、いくつかの問題が発生します。
次の図はアーキテクチャを示しています。

MaxCompute のバッチ処理パイプラインのみを使用する場合、一部のシナリオでは、分レベルの増分データと完全データを継続的にマージおよび保存する必要があり、冗長な計算とストレージ コストが発生します。他のシナリオでは、さまざまな複雑なパイプラインと処理ロジックを T+1 バッチ処理に変換する必要があり、パイプラインの複雑さが大幅に増加し、タイムリー性が低下します。
リアルタイム システムのみを使用する場合、リソース消費コストが比較的高く、費用対効果が低く、大規模データ バッチ処理の安定性が不十分です。したがって、Lambda アーキテクチャは典型的なソリューションです。このアーキテクチャでは、MaxCompute パイプラインは完全バッチ処理に使用され、リアルタイム システム パイプラインはタイムリー性の要件が高い増分処理に使用されます。ただし、このアーキテクチャには、複数の処理エンジンとストレージ エンジンによって引き起こされるデータの不整合の問題、複数のデータ コピーの冗長なストレージと計算によってもたらされる追加コスト、複雑なアーキテクチャ、長い開発サイクルなど、いくつかの固有の欠陥もあります。
これらの問題に対応して、ビッグデータ オープンソース エコシステムは近年、さまざまなソリューションを立ち上げてきました。 Spark、 Flink、および Presto は、最も広く採用されているオープンソース データ処理エンジンです。これらのエンジンは、オープンソース データレイク フォーマットである Hudi、Delta Lake、および Iceberg と緊密に統合されており、統一されたコンピューティング エンジンと統一されたデータ ストレージを備えた包括的なソリューションを実装しています。このソリューションは、従来の Lambda アーキテクチャによってもたらされるさまざまな問題に対処します。
MaxCompute は、オフライン バッチ処理アーキテクチャに基づいて、独自に設計した増分データ ストレージおよび処理アーキテクチャを開発しました。オフライン処理とニアリアルタイム増分処理のための統合ソリューションを提供できます。バッチ処理の経済的で効率的な利点を維持しながら、分レベルの増分データの読み取り、書き込み、および処理のビジネス要件を満たす機能も備えています。さらに、Upsert や Time Travel などの一連の実用的な機能を提供してビジネス シナリオを拡張し、データの計算、ストレージ、および移行コストを効果的に削減し、ユーザー エクスペリエンスを向上させます。
MaxCompute ニアリアルタイム アーキテクチャ

前の図は、MaxCompute が上記の包括的なビジネス シナリオを効率的にサポートする新しいアーキテクチャを示しています。この新しいアーキテクチャでは、MaxCompute はさまざまなデータ ソースをサポートしており、カスタム アクセス ツールを使用して増分データと完全データを統一ストレージ システムに簡単にインポートできます。バックグラウンド データ管理サービスは、データ ストレージ構造を自動的に最適化します。統一されたコンピューティング エンジンを使用して、ニアリアルタイムの増分データ処理と大規模なオフライン データのバッチ処理の両方をサポートします。統一されたメタデータ サービスを使用して、トランザクションとファイルのメタデータ管理をサポートします。
このアーキテクチャの利点は非常に大きいです。純粋なオフライン システムが増分データを処理することによって引き起こされる冗長な計算とストレージ、タイムリー性の低さなどの問題を効果的に解決します。また、リアルタイム システムまたはストリーム システムのリソース消費コストの高さも回避します。さらに、Lambda アーキテクチャにおける複数システムの不整合の問題を解消し、複数コピーの冗長ストレージ コストとシステム間のデータ移行コストの両方を削減します。
SQL オプティマイザーは、特に[マテリアライズドビュー]の[増分更新]のコンテキストにおいて、増分クエリに特化した最適化によって強化されています。コストの見積もりに基づいて、オプティマイザーは更新操作に[状態ベースの増分アルゴリズム]を使用するか、[スナップショットベースの増分アルゴリズム]を使用するかを決定します。クエリ アクセラレーション レイヤー(MaxQA)は、仮想ウェアハウスベースの厳密に隔離されたリソース基盤上に構築されているため、クエリのパフォーマンスが向上するだけでなく、クエリ全体で高い安定性と一貫したパフォーマンスが保証されます。独自に開発された FDC に基づいて、アクセラレーション レイヤーはフルリンク キャッシュを最適化し、オプティマイザーは待機時間指向の最適化モードを追加し、ランタイムはベクトル化実行をさらに最適化して、実行フェーズ中の Codegen 関連のオーバーヘッドを回避します。
エンドツーエンドの統合アーキテクチャは、増分データ処理と分レベルのタイムリー性の計算とストレージの最適化のビジネス要件を満たし、バッチ処理の全体的な効率を確保し、リソース コストを効果的に削減します。
コア機能
MaxCompute ニアリアルタイム データウェアハウスは、Delta テーブル、増分計算、MaxQA の 3 つのコア機能を提供します。Delta テーブル機能は分レベルのデータ インポートをサポートし、増分計算機能は待機時間とスループットのバランスをより適切に調整するのに役立ち、新しくスペックアップされた MaxQA 機能は数秒以内のクエリ応答をサポートします。

3 つのコア機能は次のとおりです。
Delta テーブル: 増分データテーブル形式です。分単位のデータインポートを可能にし、AliORC を基盤となるファイル形式として使用し、UPSERT セマンティクスをサポートし、増分データを読み書きするための標準の変更データキャプチャ(CDC)メソッドを提供できます。MaxCompute のバックエンドストレージとメタデータサービスに依存して、自動データ管理を行います。
増分計算: Delta テーブル機能に基づいて、MaxCompute は、増分マテリアライズドビュー、タイムトラベル、ストリームテーブルなど、一連の増分計算機能を追加しました。同時に、増分マテリアライズドビューと定期的にスケジュールされたタスクは、異なるトリガー頻度を提供し、ユーザーはレイテンシとスループットのバランスをとるためのより多くの手段を得ることができます。
MaxQA: これは MaxCompute クエリ アクセラレーションの完全なスペックアップです。厳密に隔離された環境を通じてパフォーマンスの安定性を向上させ、SQL サポートを DQL SELECT クエリ(MCQA 1.0)のみから DDL 文と DML 文を含む完全な SQL クエリに拡張します。さらに、エンドツーエンド キャッシュやジョブ送信パイプラインにおける複数ステップの非同期化などの最適化手法を通じて、パフォーマンスをさらに向上させます。
これらの新機能はすべて、MaxCompute の元の SQL エンジンに基づいて構築および実装されています。MaxCompute ユーザーは、開発習慣を変えることなく、より高い費用対効果で大量のデータを分析できます。
利点
新しいアーキテクチャは、 Hudi や Iceberg などのオープンソース データレイク フォーマットの一般的な機能を包括的にサポートするように設計されており、関連するビジネス パイプライン全体のスムーズな移行を促進します。完全に独自に開発されたアーキテクチャとして、機能、パフォーマンス、安定性、統合の面で多くの独自の利点を提供します。
ストレージ、メタデータ、およびコンピューティング エンジンの統一設計を提供して、エンジンの緊密かつ効率的な統合を実現します。新しいアーキテクチャは、低いストレージ コスト、効率的なデータ ファイル管理、高いクエリ効率などの利点を提供します。さらに、MaxCompute バッチ クエリの多くの最適化ルールは、Time Travel および増分クエリで再利用できます。
新しいアーキテクチャのすべての機能をサポートするために、完全な統一 SQL 構文セットを提供します。これはユーザー操作を容易にします。
さまざまな複雑なビジネス シナリオをサポートするために、詳細にカスタマイズされ最適化されたデータ インポート ツールを提供します。
MaxCompute の既存のビジネス シナリオとシームレスに統合して、移行、ストレージ、および計算コストを削減します。
データ ファイルの自動管理をサポートして、より優れた読み取り/書き込みの安定性とパフォーマンスを確保し、ストレージ効率とコストの自動最適化をサポートします。
MaxCompute で完全に管理されます。追加のアクセス コストなしで、新しいアーキテクチャをすぐに使用できます。新しいアーキテクチャの機能を使用するには、Delta テーブルを作成するだけです。
完全に独自に開発されたアーキテクチャであるため、開発のタイムラインと要件を完全に制御できます。