このトピックでは、PolarDB for MySQLのインメモリ列インデックス (IMCI) 機能について説明します。
背景情報
PolarDB for MySQLは、大量のデータを生成するオンラインビジネスを含むオンライントランザクション処理 (OLTP) シナリオを対象としています。 ただし、行ストアベースのPolarDB for MySQLは、すべてのシナリオのクエリパフォーマンス要件を簡単に満たすことはできません。 ほとんどの場合、複雑な分析クエリを実行するには、PolarDB for MySQLからデータをエクスポートし、分析とクエリのためにオンライン分析処理 (OLAP) システムにデータをインポートする必要があります。 これには2つのデータベースシステムが必要であり、コスト、アーキテクチャの複雑さ、およびO&M負荷が増加します。
PolarDB for MySQLは、大量のデータに対する複雑なクエリを伴うOLAPシナリオにIMCI機能を提供します。 IMCI機能により、PolarDB for MySQLは、リアルタイムトランザクション処理とリアルタイムデータ分析を統合した、ワンストップのハイブリッドトランザクション /分析処理 (HTAP) ソリューションを提供できます。 その結果、1つのデータベースシステムのみでOLTPおよびOLAPシナリオの要件を満たすことができます。
制御ポリシー機能の動作
次の図は、PolarDB for MySQLでのIMCI機能の仕組みを示しています。
ストレージエンジン、演算子、オプティマイザの3つのレイヤーが含まれます。
ストレージエンジン層: リアルタイムのトランザクションの一貫性を保証するハイブリッド行と列ストレージをサポートします。
演算子層: 列ストアに向けられたベクトル化された並列演算子を使用します。 単一テーブルクエリとマルチテーブルクエリは、最小限の遅延で実装できます。
SQLパーサーとオプティマイザー層: ハイブリッド行と列ストレージ向けのコストベースのオプティマイザー (CBO) を使用します。 オプティマイザは、コストしきい値に基づいて行ストアまたは列ストアを自動的に選択し、クエリ要求を実行します。
このアーキテクチャは、PolarDB for MySQLがMySQLプロトコルと完全に互換性がありながら、PolarDB for MySQLがクエリを数桁高速化するのに役立ちます。
実装
OLAP と OLTP のコンピューティングリソースを分離するため、IMCI は読み取り専用ノードでのみ作成できます。すべての OLAP クエリは、読み取り専用ノード上でのみ実行されます。クエリ分散ルールを設定して、OLAP クエリを行ストアまたは列ストアの読み取り専用ノードにルーティングします。詳細については、「行ストアノードと列ストアノード間での HTAP ベースのリクエスト分散の概要」をご参照ください。
メリット
IMCI機能を搭載したPolarDB for MySQLには、次の利点があります。
MySQLとの完全な互換性: システムは列ストアに提供されます。 このシステムは、ローストアに提供されるシステムと一致し、柔軟なタイプの変換をサポートします。
究極のHTAPパフォーマンス: PolarDBは、OLTPに関して究極のパフォーマンスを提供します。 IMCI機能は、OLAPシステムによって提供される性能と同等の性能をOLAPに提供する。
ハイブリッド行-列ストレージ: 行ストアと列ストアの両方がサポートされているため、コストが節約されます。 さらに、行ストアおよび列ストアに対してトランザクションの一貫性が保証される。 コラムストアはまた、低コストの利点を有する。
シナリオ
PolarDB for MySQLのIMCI機能は、さまざまなビジネスシナリオで使用できるワンストップHTAPエクスペリエンスを提供します。
リアルタイムレポートなど、オンラインデータのリアルタイム分析が必要なシナリオ。
PolarDBの大容量データストレージ容量に依存して複数のアップストリームデータソースを集約し、PolarDBを専用データウェアハウスとして使用するデータウェアハウスシナリオ。
抽出、変換、負荷 (ETL) に対応した、PolarDBが提供するIMCIの強力で柔軟なコンピューティング機能に依存して、SQL構文を使用してETL機能を実装する高速データコンピューティングシナリオ。
料金
IMCI機能は無料で提供されます。 ただし、読み取り専用列ストアノードに対しては、一般的な計算ノードの料金に基づいて課金されます。 詳細については、「コンピューティングノードの従量課金料金」および「計算ノードのサブスクリプション価格」をご参照ください。 IMCIも請求可能なストレージスペースを占有します。 詳細については、「ストレージ料金」をご参照ください。
サポートされているバージョン
以下のいずれかの要件を満たす Enterprise Edition クラスタ:
リビジョンバージョンが 8.0.1.1.22 以降の PolarDB for MySQL 8.0.1。
リビジョンバージョンが 8.0.2.2.12 以降の PolarDB for MySQL 8.0.2。
Deploy a WordPress site to Azure App Service using the Azure CLI - Azure App Service Deploy a WordPress site to Azure App Service using the Azure CLI This tutorial shows you how to deploy a WordPress site to Azure App Service using the Azure CLI. The WordPress content is stored in Azure Database for MySQL. Prerequisites An Azure account with an active subscription. Create an account for free. The Azure CLI installed locally. If you don't have an Azure subscription, create a free account before you begin. Configure local MySQL In this section, you configure the local MySQL server to be used by your WordPress site. Download WordPress Download the latest zipped WordPress package to your local machine. For more information, see https://wordpress.org/download/. ``` ```html Azure CLI を使用して WordPress サイトを Azure App Service にデプロイする - Azure App Service Azure CLI を使用して WordPress サイトを Azure App Service にデプロイする このチュートリアルでは、Azure CLI を使用して WordPress サイトを Azure App Service にデプロイする方法について説明します。WordPress コンテンツは Azure Database for MySQL に格納されます。 前提条件 アクティブなサブスクリプションが含まれる Azure アカウント。無料アカウントを作成します。 ローカルにインストールされている Azure CLI。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。 ローカル MySQL の構成 このセクションでは、WordPress サイトで使用されるローカル MySQL サーバーを構成します。 WordPress のダウンロード 最新の zip 圧縮 WordPress パッケージをローカル マシンにダウンロードします。 詳細については、「https://wordpress.org/download/」をご参照ください。 ```x86X86 CPU アーキテクチャ を使用し、以下のいずれかの条件を満たす クラスタ:
リビジョンバージョンが 8.0.1.1.38 以降の PolarDB for MySQL 8.0.1
リビジョンバージョンが 8.0.2.2.19 以降の PolarDB for MySQL 8.0.2
注意事項
インメモリ列インデックス (IMCI) 機能は、グローバルデータベースネットワーク (GDN) をサポートしていません。
IMCIは、次の条件でのみ、フェールオーバーwithホットレプリカ機能の投票ディスクサービス (VDS) モジュールと一緒に使用できます。
リビジョンバージョンが8.0.1.1.42以降または8.0.2.2.23以降のクラスターの場合:
ホットレプリカ機能を使用したフェールオーバーが有効になっている読み取り専用ノードがクラスターに含まれている場合、読み取り専用列ストアノードをクラスターに追加できます。
読み取り専用列ストアノードがすでにクラスターに存在する場合、クラスター内の読み取り専用ノードに対してホットスタンバイ機能を有効にすることはできません。
リビジョンバージョンが8.0.1.1.42より前または8.0.2.2.23より前のクラスターの場合、IMCI機能とホットレプリカ機能のフェールオーバーを併用することはできません。
ホットレプリカ機能を使用したフェールオーバーが有効になっている読み取り専用ノードがクラスターに含まれている場合、読み取り専用列ストアノードをクラスターに追加することはできません。
説明読み取り専用列ストアノードをクラスターに追加する場合は、テクニカルサポートに問い合わせてVDSを無効にしてください。 VDSを無効にすると、クラスター内のすべてのノードが自動的に再起動されます。
読み取り専用列ストアノードがすでにクラスターに存在する場合、クラスター内の読み取り専用ノードに対してホットスタンバイ機能を有効にすることはできません。
パフォーマンス向上
IMCI機能は、SQLステートメントを使用して実行されるクエリを最大100倍高速化します。 次のセクションでは、アクセラレーション効果を検証するためのクエリテストについて説明します。 この例では、標準TPC-Hベンチマークに含まれるデータテーブルとSQL文が使用されています。
テスト方法TPC-Hは、データベースの分析クエリ機能を評価するために、Transaction Processing Performance Council (TPC) によって開発およびリリースされる一般的に使用されるベンチマークです。 TPC-Hベンチマークには、8つのテーブルと22の複雑なSQL文が含まれます。 ほとんどのクエリには、複数のテーブル、サブクエリ、およびGROUP BY句のJOIN句が含まれています。
この例では、TPC-Hベンチマークに基づくテストが実装されていますが、TPC-Hベンチマークテストのすべての要件を満たしているわけではありません。 したがって、テスト結果は、TPC-Hのベンチマークテストの公開結果と比較することはできません。
データサイズ: 100 GB。
テスト結果:
IMCIが有効なシナリオとIMCIが無効なシナリオの比較
次の図は、TPC-Hベンチマークの22の複雑なSQL文が実行された場合の、IMCIが有効なシナリオとIMCIが無効なシナリオの応答時間の差を示しています。
ClickHouseとIMCI対応PolarDB for MySQLの比較
次の図は、TPC-Hベンチマークの21の複雑なSQL文が実行された場合のClickHouseとIMCI対応PolarDB for MySQLの応答時間の差を示しています。 2つのデータベースには、同じ量のデータと同じデータスキーマがあります。 ClickHouseはクエリステートメント21をサポートしていないため、クエリステートメント21は実行されません。
結論:
IMCI機能は、最も複雑なクエリを最大100倍まで加速します。
従来のOLAPデータベースサービスClickHouseとIMCI対応のPolarDB for MySQLにはそれぞれ独自の利点があります。 IMCI対応のPolarDB for MySQLは、テーブルに対するSCANおよびAGGREGATE操作、JOIN操作などのシナリオで優れています。 将来的には、PolarDB for MySQLのIMCI機能は継続的に調整され、集約アクセラレーションとウィンドウ関数の面でブレークスルーを行います。