XUANWU分析ストレージエンジンは、信頼性が高く、可用性の高いエンタープライズクラスのデータストレージ機能を高性能で低コストで提供します。 これにより、AnalyticDB for MySQLは、高スループットのリアルタイムデータ書き込みと高性能のリアルタイムクエリを実装できます。
高スループット、リアルタイムデータ書き込み
AnalyticDB for MySQLは、3層アーキテクチャを使用して高スループット機能を提供します。 アクセスノード層、ストレージノード層、および永続的分散ストレージ層は、並列にスケールアウトすることができる。 AnalyticDB for MySQLは、ハイスループット、高並行性、リアルタイムデータ書き込みを実装するために、ハイブリッド行と列ストレージ形式と増分データの非同期移行をサポートしています。
AnalyticDB for MySQLは、Raftコンセンサスプロトコルとapplyメソッドを使用してデータを同期的に書き込みます。 これにより、データの書き込み直後にデータをクエリでき、書き込みの一貫性が確保されます。 XUANWU分析ストレージエンジンは、mark-for-deleteテクノロジーを使用して、高スループットでリアルタイムにデータを更新および削除できます。また、マルチバージョン同時実行制御 (MVCC) テクノロジーを使用して、データの原子性と整合性を確保します。
ハイブリッド行-列ストレージ形式
XUANWU分析ストレージエンジンは、Apache HadoopのOptimized row Columnar (ORC) またはParquet形式と同様のハイブリッド行-列ストレージ形式をサポートしています。 ハイブリッド行と列ストレージ形式は、分析的な列のプルーニング、高スループットのデータスキャン、および行のアライメントをサポートして、特に多次元インデックスフィルタリングを伴うシナリオで、高性能でランダムなクエリを実装します。
次の図は、行と列のハイブリッドストレージ形式を示しています。
アダプティブインデクシング
オンライン分析処理 (OLAP) シナリオでは、多次元クエリが必要ですが、従来のオンライントランザクション処理 (OLTP) シナリオの単一列または結合インデックスは要件を満たすことができません。 XUANWU分析ストレージエンジンは、列のアダプティブインデックスを使用して、STRING、NUMBER、TEXT、JSON、VECTORなどの列タイプのインデックスデータ構造を自動的に設定します。 さらに、XUANWU分析ストレージエンジンは、列レベルのインデックスを使用して、プログレッシブストリーミング方式で多次元結合検索とマルチウェイマージを実装します。 これにより、データフィルタリングのパフォーマンスが大幅に向上します。
次のタイプのインデックスがサポートされています: 転置インデックス、BKDツリーインデックス、およびビットマップインデックス。 インデックスのパフォーマンスは、範囲クエリのカーディナリティやテーブルレコード数などのデータ分散特性によって異なります。 特定のシナリオでは、インデックスオーバーヘッドはスキャンオーバーヘッドよりも高くなります。 例: age > 0およびage <100。 XUANWU分析ストレージエンジンは、コストベース最適化 (CBO) に基づいてデータをインデックス化するかスキャンするかを決定します。
次の図は、さまざまな種類のインデックスに対してマルチウェイマージを使用する方法を示しています。
構造化インデックスと非構造化インデックスの融合
XUANWU分析ストレージエンジンのインデックスマネージャは、ストレージ層で構造化インデックスと非構造化インデックスを集中的に管理します。 インデックスには、数値のBKDインデックス、文字列の転置インデックス、非構造化JSONおよびベクトルインデックス、テキストデータのフルテキストインデックスが含まれます。 インデックスマネージャは、計算層のための統一された式を提供し、これは、計算層のSQLロジックが異なるデータ型と互換性があることを可能にし、クエリを加速する。 AnalyticDB for MySQLは、複雑なSQLロジックをサポートするために、フルテキストデータと構造化テーブル間の相関分析を実行します。