このトピックでは、XUANWU_V2エンジンとAnalyticDB for MySQLのコンパクションサービスを使用する方法について説明します。
前提条件
次の要件を満たすAnalyticDB for MySQLクラスターが作成されます。
AnalyticDB for MySQLクラスターはData Lakehouse Edition (V3.0) です。
AnalyticDB for MySQLクラスターのマイナーバージョンは3.2.1以降です。
AnalyticDB For MySQLクラスターのマイナーバージョンを表示する方法については、「購入、構成変更、およびアップグレード」をご参照ください。
背景情報
AnalyticDB for MySQLは、XUANWU分析ストレージエンジンを使用して、高スループットの書き込みと高性能なクエリをリアルタイムで実行します。 デフォルトのストレージエンジンはXUANWU
です。 AnalyticDB for MySQL V3.2.0は、次世代ストレージエンジンXUANWU_V2
を起動し、次の機能を提供します。
すべてのデータをObject Storage Service (OSS) に保存し、クラウドディスクをキャッシュとして使用します。 これにより、ストレージコストが削減され、クエリのパフォーマンスが保証され、スケールアウトが速くなり、スケーリング効率が向上します。
元のストレージ形式に基づいて、次世代の列指向ストレージを提供します。 新しいストレージ形式は、メモリ使用量とディスクI/O使用量をより細かく制御し、高度な同時I/O操作をサポートし、メモリ使用量を削減し、クエリのパフォーマンスを向上させ、サービスの安定性に対するガベージコレクション (GC) の影響を軽減します。
独立したコンパクションサービスを使用して、LSMツリーアーキテクチャで大量のリソースを消費するコンパクション操作を実行します。 これにより、クエリと書き込みの安定性が向上し、より高いコンパクションスループットとより柔軟なリソーススケジューリング機能が提供されます。
制限事項
XUANWU_V2
エンジンは、XUANWU
エンジンと同じ機能を完全には提供しない。 次の機能はサポートされていません。
特定の複合データ型と複合インデックス型: JSON、ARRAY、MAP、FULLTEXTインデックス、VECTORインデックス、およびJSONインデックス。
バックアップと復元。
バイナリログ。
Spark elastic import。
ディスクキャッシュ機能の有効化
ディスクキャッシュ機能を有効にすると、キャッシュタイプとキャッシュサイズを指定して、ランダムデータの読み取りパフォーマンスを向上させることができます。
AnalyticDB for MySQL コンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 クラスターリスト ページで、エディションタブをクリックします。 管理するクラスターを確認し、クラスター ID をクリックします。
クラスター情報 ページの 構成情報 セクションで、クラスタークエリの高速化設定 パラメーターの横にある 設定 をクリックします。
[クラスタークエリアクセラレーション設定] ダイアログボックスで、クラウドディスクキャッシュパターン をオンにし、キャッシュタイプとキャッシュサイズを指定します。
重要テーブルエンジンをXUANWU_V2に設定した場合にのみ、ディスクキャッシュ機能を有効にする必要があります。
重大なパフォーマンス低下を防ぐため、ディスクキャッシュ機能を無効にしないことを推奨します。
テーブルエンジンをXUANWU_V2に設定します
ディスクキャッシュ機能を有効にすると、作成するテーブルのテーブルエンジンをXUANWU_V2
に設定できます。
ENGINEパラメーターのデフォルト値は
XUANWU
です。内部テーブルの作成時に
ENGINE
パラメーターをXUANWUに設定した場合、table_properties
パラメーターを {"format":"columnstore"} に設定する必要があります。 それ以外の場合、テーブルの作成に失敗します。作成するテーブルにテーブルエンジンを指定した後は、エンジンを変更することはできません。
CREATE TABLEステートメントのサンプル:
CREATE TABLE customer (
customer_id bigint NOT NULL COMMENT 'Customer ID',
customer_name varchar NOT NULL COMMENT 'Customer name',
phone_num bigint NOT NULL COMMENT 'Phone number',
login_time timestamp NOT NULL COMMENT 'Logon time',
PRIMARY KEY (login_time, customer_id, phone_num)
)
ENGINE = 'XUANWU_V2'
DISTRIBUTED BY HASH(customer_id)
PARTITION BY VALUE(DATE_FORMAT(login_time, '%Y%m%d')) LIFECYCLE 30
COMMENT 'Customer information table';
テーブルの作成方法については、「create table」をご参照ください。
コンパクションサービスの有効化
コンパクションサービスは、独立したリソースプールを使用して、独立したプロセスでローカルコンパクション操作を実行します。 これにより、リソース使用量が減り、サービスの安定性が向上します。 デフォルトでは、コンパクションサービスは無効になっています。 コンパクションサービスを有効にすると、従量課金に基づいてサービスに対して課金されます。 ビジネス要件に基づいてサービスを無効にできます。 コンパクションサービスの課金ルールの詳細については、
Data LakehouseEditionの価格。次の条件を満たすシナリオでは、コンパクションサービスを有効にすることを推奨します。
CPU使用率とメモリ使用率が高いです。
サービスパフォーマンスは、スケジュールされたコンパクション操作によって大きく影響されます。
手順
AnalyticDB for MySQL コンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 クラスターリスト ページで、エディションタブをクリックします。 管理するクラスターを確認し、クラスター ID をクリックします。
クラスター情報 ページの 構成情報 セクションで、クラスタークエリの高速化設定 パラメーターの横にある 設定 をクリックします。
[リモートビルド] をオンにして、コンパクションサービスを有効にします。