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

PolarDB:CCI

最終更新日:Apr 23, 2025

このトピックでは、クラスタ化列指向インデックス(CCI)機能について説明します。

オンライン トランザクション処理(OLTP)およびオンライン分析処理(OLAP)ソリューションは、読み書き分離または抽出、変換、ロード(ETL)モデルに基づいて開発されています。これらのソリューションは、オンライン データベースからデータを抽出し、T+1 によって分析するためにデータをデータ ウェアハウスにロードします。ただし、これらのソリューションには、ストレージ コストが高い、リアルタイム機能が低い、メンテナンス コストと接続コストが高いなど、いくつかの欠点があります。

爆発的なデータ増加に対処するために、PolarDB-X は Object Storage Service(OSS)に基づく CCI 機能を提供します。この機能により、行指向データを列指向データにリアルタイムで同期し、以下の機能をサポートできます。

  • CCI 機能は、OLTP とリアルタイム データ分析を統合してサポートし、OLTP と OLAP が関係するシナリオの要件を満たします。

  • PolarDB-X の CCI 機能は、インテリジェント ルーティングと超並列処理(MPP)をサポートしています。計算レイヤーは、トランザクション処理(TP)トラフィックと分析処理(AP)トラフィックを正確に識別し、トラフィックを異なる記憶媒体にルーティングします。デフォルトでは、計算レイヤーは CCI をスキャンするために AP トレースで MPP が有効になっていることも保証します。これにより、クエリ分析機能が大幅に向上します。

  • CCI 機能は、Delta+Main モデルを使用して、数秒以内のリアルタイム更新を実装します。この機能は、マルチバージョン同時実行制御(MVCC)と統合されており、一貫性のあるスナップショット データをいつでも読み取ることができます。

使用上の注意

  • CCI 機能は、バージョンが 5.4.19-16989811 以降の Enterprise Edition インスタンスでのみサポートされています。

  • AUTO モードのデータベースのみが CCI の作成をサポートしています。

    説明

アーキテクチャ

ハイブリッド行指向列指向ストレージ

主要コンポーネント

  • 計算ノード(CN)はシステムのエントランスです。これらのノードはステートレス設計を使用し、SQL パーサー、オプティマイザー、エグゼキューターなどのモデルが含まれます。 CN は、分散データ ルーティング、計算、動的スケジューリング、2 フェーズ コミット(2PC)プロトコルに基づく分散トランザクション調整、およびグローバル セカンダリ インデックスのメンテナンスを担当します。 CN は、SQL スロットリングや 3 ロール モードなどのエンタープライズ レベルの機能を提供します

  • データ ノード(DN)は、永続的な行指向データの処理を担当します。 DN はデータの耐久性を確保し、マルチマジョリティ Paxos プロトコルに基づいて強力な整合性を保証します。 DN は MVCC を使用して分散トランザクションの可視性を維持します。 DN は、Project、Filter、Join、Aggregation など、分散アーキテクチャで計算タスクをプッシュ ダウンする必要がある操作の要件も満たすことができます。

  • グローバル メタ サービス(GMS)は、テーブル メタデータ、スキーマ メタデータ、統計メタデータなど、グローバルに一貫性のあるシステム メタデータの維持を担当します。 GMS は、ユーザー アカウントや権限などのセキュリティ関連情報を管理します。 GMS はタイムスタンプ オラクル(TSO)サービスを提供します。

  • 変更データ キャプチャ(CDC)は、MySQL バイナリ ログの形式とプロトコルに完全に互換性のある増分サブスクリプション機能を提供します。 CDC は、MySQL レプリケーション プロトコルと互換性のあるプライマリ/セカンダリ レプリケーション機能も提供します。

  • 列指向は永続的な CCI を提供し、分散トランザクションのバイナリ ログをリアルタイムで消費し、OSS に基づいて CCI を構築してリアルタイム更新の要件を満たします。 CN と組み合わせることで、列指向は CCI に対するスナップショット整合性クエリ機能を提供できます。

列指向ストレージ

アーキテクチャの概念

クラウドネイティブ技術の人気が高まるにつれ、Snowflake などの新世代のクラウドネイティブ データ ウェアハウスと HTAP アーキテクチャが継続的にイノベーションを推進しています。近い将来、HTAP 機能を備えたハイブリッド行指向列指向ストレージがデータベースの標準要件になることは明らかです。したがって、現在の列指向ストレージ設計では、費用対効果、使いやすさ、高パフォーマンスなどの将来指向の側面に焦点を当てることが重要です。

PolarDB-X は CCI 機能を提供します。デフォルトでは、PolarDB-X の行指向テーブルには、主キー インデックスとセカンダリ インデックスがあります。 CCI は、列指向構造の上に構築されたセカンダリ インデックスであり、行指向テーブルのすべての列に対して有効です。テーブルには、行指向データと列指向データを含めることができます。

アーキテクチャの特徴

  • クラウドネイティブ アーキテクチャ(ストレージとコンピューティングの分離、費用対効果)

    PolarDB-X の CCI 機能は、プライマリ データ ストレージとして OSS を使用しており、ローカル ディスク ベースのストレージ コストの 6 分の 1 から 10 分の 1 のコストが発生します。この機能は、他のデータ型の 3 ~ 5 倍の列指向データの高い圧縮率も実現しています。これにより、CCI 機能は低コストで競争上の優位性を得ることができます。ハイブリッド行指向列指向ストレージが関係する HTAP シナリオでは、追加の列指向ストレージ コストを行指向ストレージ コストの 5% ~ 10% 以内に抑えることができます。

    PolarDB-X の CCI 機能は、ストレージ レイヤーの LSM 構造とタグ削除技術に似た Delta+Main の 2 層モデルを活用して、OSS が使用されている場合に高並列更新機能を提供します。ローカル データ キャッシュの複数レイヤーとマルチレベル統計メカニズムも、CCI 機能が OSS からデータを読み取るトレースで使用され、OSS ストレージ データへの不要なリモート アクセスを最小限に抑えます。

  • 分散データベース システム(線形スケーリング)

    従来の分散データベースでは、CCI は通常、Paxos または Raft プロトコルに基づくマルチレプリカ メカニズムを使用して構築されます。ただし、OLTP と OLAP には異なるクエリ要件とさまざまな程度の資源依存関係があります。異なるレプリカ間の強力な整合性パーティション ポリシーとスケーリング メカニズムは、TP と AP の線形スケーリング機能を制限する可能性があり、データベースのパフォーマンスが低下します。

    PolarDB-X の CCI 機能は、分散トランザクションのバイナリ ログのリアルタイム同期に基づいて、行指向データから列指向データへの異種変換(M:N)を実装します。この機能は、CCI の分散パーティション キーとソート キーを定義します。 PolarDB-X は分散並列処理技術を活用して、CCI ベースのクエリに線形スケーラビリティを提供します。行指向と列指向の記憶媒体は互いに分離されています。これにより、ストレージと計算リソースを簡単にスケーリングできます。分散環境では、CCI ベースのクエリは極端な線形スケーラビリティの恩恵を受けることができます。

  • 読み書き分離(従量課金制の読み取りに対応したサーバーレス アーキテクチャ)

    PolarDB-X の CCI 機能は、コンポーネント ベースの読み書き分離アーキテクチャを採用しています。このアーキテクチャは、列ストア ノードと計算ノードで構成されています。列ストア ノードは、外部クライアントからの書き込みリクエストを直接処理しないステートレス ノードです。代わりに、これらのノードはグループ コミット技術を活用して CCI データを一括更新します。計算ノードは、GMS ノードから列指向メタデータを取得し、OSS に格納されている CCI データに直接アクセスするステートレス ノードです。

    PolarDB-X インスタンスを作成する場合、システムは自動的に列ストア ノードを提供します。これらのノードは継続的に実行され、CCI を同期します。 DDL 文を実行することで、CCI を簡単に作成できます。 CCI が構築されると、CCI データは自動的に生成され、リアルタイムで更新されます。プライマリ インスタンスを使用するか、追加の読み取り専用インスタンスを購入して、行ストア インデックスと CCI にアクセスできます。サーバーレス モードは、ステートレス CN にも適しています。 CN の使用に対してのみ課金されます。

  • 行指向ストレージと列指向ストレージの組み合わせ(使いやすさ、統合されたベクトル化 SQL エンジン)

    PolarDB-X は CN の SQL エンジンを再利用して、CN の完全な機能を提供します。ハイブリッド行指向列指向シナリオのコスト オプティマイザーが構築されています。このコスト オプティマイザーは、実行コストに基づいてルートをインテリジェントに識別し、OLTP クエリを行ストア クエリ トレースに、OLAP クエリを CCI ベースのクエリ トレースに転送します。コスト オプティマイザーを使用すると、SQL オペレーター レベルで異なる行指向データと列指向データにアクセスできるため、HTAP のハイブリッド行指向列指向機能が完全に実装されます。コスト オプティマイザーでは、一連の SQL エンジンへの統一アクセスも可能です。

    PolarDB-X はベクトル化と完全に互換性があります。列指向チャンクのデータ構造は、TableScan オペレーターが列指向データを読み取るために使用されます。後続のオペレーター計算も、チャンクのメモリ内列指向構造を完全に継承します。これにより、エンドツーエンドのベクトル化に基づいてクエリ パフォーマンスが向上します。行指向ストレージの TableScan オペレーターも動的に列指向チャンクに変換され、統一データ構造に基づいてハイブリッド行指向列指向クエリを実装します。

  • ワンストップ ウェアハウス(ゼロ ETL)

    従来のデータ ウェアハウスは ETL を使用してデータを同期し、MPP やバルク同期並列(BSP)などの並列計算アーキテクチャを活用して複雑な OLAP クエリを処理します。ただし、高並列オンライン クエリ(サービス シナリオ)では、これらのウェアハウスにはリソースの並列性にボトルネックがあります。この場合、これらのウェアハウスはデータを OLTP データベースに返してオンライン クエリを提供します。

    PolarDB-X は AnalyticDB for MySQL と統合して、ワンストップ ウェアハウスを提供します。ウェアハウスは、ゼロ ETL の概念に基づいて共有 CCI データを活用します。ウェアハウスでは、複数の関係者がデータ集約クエリとデータ相関クエリを実行することもでき、AnalyticDB for MySQL ウェアハウジング機能に基づいて従来のウェアハウスとデータ レイク分析を提供します。 PolarDB-X の HTAP 機能を備えたハイブリッド行指向列指向アーキテクチャは、オンライン データの同時クエリにも使用できるため、従来のデータ ETL が不要になります。

CCI のしくみ

CCI の構築

image.png

説明
  • CCI は列ストア ノードによって構築されます。構築された CCI に関連するデータは、CSV 形式と ORC 形式のシャード オブジェクトに格納されます。 CSV 形式は、リアルタイムの増分データを格納するために使用されます。過剰な増分データは適時に圧縮され、ORC 形式にダンプされます。 PolarDB-X は CSV 形式と ORC 形式を最適化しています。最適化された形式は、ネイティブ形式のオープン ソース機能を継承し、2 つの形式が MySQL のデータ プロトコルを完全に表現できるようにします。

  • データ同期の観点からは、CCI の構築プロセスには、完全スナップショット読み取りと増分データ同期の 2 つの並列同期トレースが含まれます。 CCI を構築してからデータをインポートするシナリオでは、増分データのみが同期され、列ストア ノードはバイナリ ログを同時に消費して CCI を構築します。データを部分的にインポートしてから CCI を構築し、残りのデータをインポートするシナリオでは、増分データが同期され、列ストア ノードは既存の増分データと完全データを同時に消費して CCI の作成効率を向上させます。

  • 階層の観点からは、列ストア ノードは LSM 構造とタグ削除技術に似た Delta+Main の 2 層モデルを使用して、行指向ストレージと列指向ストレージ間の低レイテンシ データ同期と数秒以内のリアルタイム データ更新を保証します。データはリアルタイムで MemTable に書き込まれます。データはローカルの CSV ファイルに格納され、グループ コミット サイクル内で OSS の対応する CSV ファイルに追加されます。ローカル ファイルはデルタ ファイルと呼ばれます。 OSS の CSV ファイルは永続的に格納されるのではなく、圧縮によって時々 ORC ファイルに変換されます。

MPP

説明
  • PolarDB-X では、CN を使用してクエリと分析のトラフィックを処理します。前の図は、クエリ加速チェーン全体がオプティマイザー、エグゼキューター、ストレージ エンジンの 3 つのレベルで構成されていることを示しています。

  • PolarDB-X は、ハイブリッド行指向列指向シナリオに適したコスト オプティマイザーを提供します。コスト オプティマイザーは、実行コストに基づいてルートをインテリジェントに識別し、TP クエリを行ストア クエリ トレースに、AP クエリを CCI ベースのクエリ トレースに転送します。

  • PolarDB-X は、ハイブリッド行指向列指向シナリオに適した統合エグゼキューターを提供します。 HTAP シナリオでは、一連のエグゼキューターを使用できます。オペレーター レイヤーもベクトル化されており、MPP をサポートしています。複雑なクエリ シナリオでは、マルチノード リソースを並列計算に使用して、高スループットの複雑なクエリの要件を満たすことができます。コンピューティング リソースとストレージ リソースが分離されたアーキテクチャによって引き起こされるネットワーク レイテンシを解消するために、エグゼキューター レイヤーにはローカル キャッシング技術も導入されており、ホット データをローカル ディスクにリアルタイムでロードします。これにより、低レイテンシ クエリの要件が満たされます。

  • ストレージ エンジン レベルでは、CCI の構築によりコミットされたトランザクションの原子性が有効になり、トランザクション レベルで一貫性のあるデータをクエリできるようになります。

サービスの種類

説明
  • 列指向の導入により、PolarDB-X はプライマリ インスタンスと読み取り専用インスタンスとは別に、追加のサービスの種類を提供します。この追加されたサービスの種類は、読み取り専用列ストア インスタンスと呼ばれます。

  • プライマリ インスタンス:デフォルトでは、プライマリ インスタンスでは行指向データのみをクエリできます。ただし、読み取り専用インスタンスと組み合わせると、プライマリ インスタンスのエンドポイントで透過的で強力な整合性のある読み書き分離が可能になります。プライマリ インスタンスは、列指向データを直接クエリする機能を保持します。インテリジェント ルーティングとハイブリッド行指向列指向クエリ機能は、将来利用可能になります。

  • 読み取り専用インスタンス:読み取り専用インスタンスでは、行指向読み取り専用データと CCI データをクエリできます。読み取り専用インスタンスには、専用の読み取り専用エンドポイントがあります。アプリケーションはこれらの読み取り専用エンドポイントに個別の接続を確立して、読み取り操作を実行できます。これらの読み取り専用エンドポイントに接続することにより、アプリケーションは読み取り操作と書き込み操作を個別に管理できます。

  • 読み取り専用列ストア インスタンス:読み取り専用列ストア インスタンスでは、CCI データのみをクエリできます。インスタンスには、専用の読み取り専用エンドポイントがあります。アプリケーションはこれらの読み取り専用エンドポイントに個別の接続を確立して、読み取り操作を実行できます。インスタンスは CN のみで構成されており、費用対効果が高くなっています。

シナリオ

PolarDB-X の CCI 機能は、ワンストップ HTAP ソリューションを提供し、さまざまなビジネス シナリオで使用できます。

  • リアルタイム レポート ビジネスなど、数秒以内にオンライン データのリアルタイム分析が必要なシナリオ。

  • PolarDB-X の大容量データ ストレージ容量に依存して複数のアップストリーム データ ソースを集約し、PolarDB-X を専用のデータ ウェアハウスとして使用するデータ ウェアハウジング シナリオ。

  • PolarDB-X の CCI の強力で柔軟な計算機能に依存する ETL 対応の計算シナリオ。

PolarDB-X の CCI 機能は、TP と AP が関係するシナリオの要件を満たし、OSS とインテリジェント ルーティング技術に基づいて透過的で費用対効果の高い HTAP ソリューションを提供します。

パフォーマンステスト

PolarDB-X クラスタ化列指向インデックス(CCI)の PolarDB-X TPC ベンチマーク H(TPC-H)テストについては、参照100 GB のデータに基づく CCI の TPC-H テスト」をご参照ください。