OceanBaseデータベースV4.3.5は、APシナリオ向けの最初のLTSバージョンです。V4.3.4をベースに、新バージョンでは製品機能を引き続き強化し、ネストされたマテリアライズドビューのサポートを追加し、全文インデックスとベクトルインデックス機能を改善しました。さらに、データのインポートおよびエクスポート機能も強化されました。パーティション指定ダイレクトロード、外部テーブルによるORC形式ファイルの読み取り、SELECT INTO OUTFILEがParquetおよびORC形式のエクスポートをサポートするようになりました。オプティマイザー機能の強化には、ベースライン優先戦略に基づくSPMの進化、オプティマイザー行推定システムの改善、再帰共通テーブル式(CTE)の抽出とINLINEコスト検証の最適化が含まれます。また、Query Range抽出機能も強化されました。
互換性の面では、OceanBaseデータベースのMySQLテナントはXAトランザクション機能に対応し、Latin1文字セットが改善され、Oracleテナント間のストアドプロシージャのリモート呼び出しは複雑な型をサポートし、OracleおよびMySQL業務のスムーズな移行を支援します。
パフォーマンスの最適化に関して、V4.3.5はテーブルレベルの復旧性能、ダイレクトロード性能、DML性能、DDL性能をそれぞれ異なる程度で最適化しました。新バージョンは、行ストアとカラムストアのオンライン変換をサポートするだけでなく、高速な中間カラムの追加と並列DDL操作の拡張も実現しています。同時に、統計情報とCLOGログのコミットをリソース分離メカニズムに統合し、IO層の分離を実現することで、OceanBaseデータベースのリソース分離メカニズムをさらに強化しました。さらに、新バージョンではSQLレベルのメモリ使用制限をサポートし、ストアドプロシージャのメモリ使用を最適化し、共有スレッドプールを通じてテナントのメモリリソース消費を削減し、多様なシナリオでの安定性を向上させました。使いやすさの面では、ASHとWRの診断機能を強化し、ログストリームレプリカの並列移行最適化をサポートし、ログ転送リンクの監視ビューを実装することでログ同期リンクの可観測性を高め、OceanBaseデータベースをより使いやすくしました。新バージョンは、より豊富なARRAYおよびXML式をサポートし、JSON/XML/GISタイプデータの実行過程でのメモリ占有量を最適化しました。同時に、OBKV-HBaseおよびHBaseとの互換性を強化し、OBKVのP95/P99指標の観測をサポートしました。
この記事では、OceanBase V4.3.5の主な機能と主要なパフォーマンス向上について説明します。
主要な機能特性
ネストされたマテリアライズドビューのサポート
V4.3.5以前のバージョンでは、通常のユーザーテーブルに対してのみマテリアライズドビューを構築できましたが、データウェアハウスのシナリオでは、データ処理にマテリアライズドビューが使用されます。軽量級のリアルタイムデータウェアハウスシナリオをサポートするため、V4.3.5バージョンでは既存のマテリアライズドビューに基づいて新しいマテリアライズドビュー、すなわちネストされたマテリアライズドビューを作成できるようになりました。ネストされたマテリアライズドビューがサポートするリフレッシュ方式は、非ネストされたマテリアライズドビューと同様に、フルおよび増分更新を含みます。そのため、V4.3.5ではマテリアライズドビューに基づいてマテリアライズドビューログを作成できます。ネストされたマテリアライズドビュー内のデータの鮮度は、ベーステーブルのデータの鮮度に関連しており、上位のマテリアライズドビューのデータの鮮度を保証するためには、ユーザーがまず下層のマテリアライズドビューをリフレッシュする必要があります。
詳細については、マテリアライズドビューの作成(MySQLモード)またはマテリアライズドビューの作成(Oracleモード)のネストされたマテリアライズドビュー作成セクションを参照してください。
パーティションダイレクトロードの指定
V4.3.5では、
LOAD DATAおよびINSERT INTO SELECT構文を使用して、パーティションに対するダイレクトロードパスを指定できるようになりました。ただし、最後のレベルのパーティションタイプがHash/Keyであるパーティションの指定はサポートされていません。詳細については、フルダイレクトロードまたは増分ダイレクトロードを参照してください。
全文インデックス機能の強化
V4.3.5バージョンでは、全文インデックス機能を継続的に機能強化しており、主な内容は以下の通りです:
CREATE FULLTEXT INDEXまたはALTER TABLE ADD FULLTEXT INDEXステートメントを使用して、後から全文インデックスを作成できるようになりました。コストに基づく全文インデックス計画の選択がサポートされ、
MATCH AGAINSTを含む複数のfilter(フィルター)を持つSQLについて、コストに基づいてオーバーヘッドの小さいインデックスを選択してスキャンできるようになりました。Functional Lookupがサポートされました:
- クエリステートメントに複数の
MATCH AGAINST式を含むことができます。 - 全文インデックスを使用しながら他のインデックスも使用できるようになりました。
- フィルターセマンティクスを含まない
MATCH AGAINSTを投影列として出力することができます。 - フィルターセマンティクスを持つ
MATCH AGAINSTは、<=/<などの記号を使用してフィルタリングできます。 - フィルターセマンティクスを持つ
MATCH AGAINSTは、他のフィルターセマンティクスの論理とAND/ORで結合できます。
- クエリステートメントに複数の
詳細については、MATCH AGAINSTを参照してください。
SELECT INTO OUTFILE機能の強化
V4.3.5では、
SELECT INTOエクスポート機能が強化され、ParquetおよびORC形式へのSELECT INTOエクスポートがサポートされるようになりました。また、CSV形式へのSELECT INTOエクスポート時に圧縮アルゴリズムを指定できるようになり、SELECT INTOに新しい構文が追加されました。- format構文を使用してエクスポートオプションを設定します。
- CSV形式ファイルのエクスポート時に圧縮アルゴリズムを指定します。
- Parquet形式ファイルのエクスポート。
- ORC形式ファイルのエクスポート。
詳細については、OUTFILEステートメントを使用したデータのエクスポートを参照してください。
外部テーブルの強化
V4.3.5バージョンでは、外部テーブルがORC形式ファイルの読み取りをサポートします。
詳細については、外部テーブルの作成(MySQLモード)または外部テーブルの作成(Oracleモード)を参照してください。
中間カラムの迅速な追加
MySQL互換性に関して、V4.3.5では中間カラムのDDL操作をOffline DDLからOnline DDLに変更し、中間カラムのパフォーマンスを向上させました。中間
ADD COLUMNおよび中間ADD COLUMNとMODIFY COLUMNの複合2種類のシナリオに対するOnline DDLがサポートされます。
パフォーマンスの向上
行ストアからカラムストアへの変換操作に非同期Online DDLをサポート
V4.3.0バージョンでは、行ストア、純粋なカラムストア、および行とカラムのハイブリッドストアの3種類のテーブルストレージ形式がサポートされています。行ストアテーブルを行とカラムのハイブリッドストアテーブルまたはカラムストアテーブルに変換する操作はOffline DDLであり、顧客に影響を与える可能性があります。このため、V4.3.5バージョンでは行ストアテーブルを非同期でカラムストアテーブルに変換し、Online DDLを実現します。ユーザーはDDL文を実行する際にキーワード
delayedを指定するだけで、データ書き込みをブロックすることなく、リアルタイムでテーブルのスキーマ情報を変更できます。さらに、カラムストアのベースラインデータ再編は、ベースラインデータコンパクション時に非同期で実行されます。V4.3.5バージョンでは、行ストアテーブルをカラムストアテーブルおよび行とカラムのハイブリッドストアテーブルに変換するOnline DDLがサポートされています。詳細については、Online DDLとOffline DDL操作およびテーブルの変更を参照してください。
ダイレクトロード書き込みパスのベクトル化
V4.3.5バージョン以前では、ダイレクトロードの実装はベクトル化されておらず、書き込み関数はすべて行単位で処理されていたため、関数呼び出しのオーバーヘッドが大きくなっていました。さらに、SSTableへの書き込みプロセスはバックグラウンドで実行されており、特異的な最適化策が不足していました。V4.3.5バージョンでは、ダイレクトロードパスに対してベクトル化を行い、カラムストアエンコーディングを最適化することで、ダイレクトロードのパフォーマンスを向上させました。検証の結果、主キーのないカラムストアテーブルのダイレクトロード性能は約2倍向上しました。
信頼性の向上
構成パラメータおよびテナントリソース設定のバックアップをサポート
V4.3.5バージョンでは、クラスタレベルおよびテナントレベルの構成パラメータのバックアップがサポートされています。クラスタレベルの構成パラメータは
ALTER SYSTEMコマンドでパス情報を指定して個別にバックアップを開始できます。テナントレベルの構成パラメータはバックアップデータセットに含まれ、データバックアップを実行する際にはテナントレベルの構成パラメータも一緒にバックアップされます。テナントレベルの物理復旧を実行する際には、ターゲットテナントのリソース設定をソーステナントと同一にすることを推奨します。これにより、物理復旧の成功率およびその後の本番業務の安定性を効果的に保証できます。また、ターゲットテナントのリソース設定の参考とするため、V4.3.5バージョンではテナントのリソース設定情報およびレプリカの分散情報のバックアップもサポートされています。
セキュリティの強化
- Rocky Linux 9オペレーティングシステムに全面的に対応。
使いやすさの向上
ログストリームレプリカの並列移行の最適化
V4.3.5バージョンから、異なるゾーン上にある同一ログストリームのレプリカを並列で移行できるようになりました。これにより、スケーリング速度が向上し、ロードバランシング効率が高まり、スタンバイデータベースのレプリカ再構築確率が低下します。また、プライマリテナントとスタンバイテナントではログストリームレプリカの並列移行に対するニーズが異なります。プライマリテナントは主にPOC環境でのスケーリング速度の高速化を求めており、通常の運用時には並列移行を有効にしない場合があります。これは、複数のレプリカを同時に移行する際にコピーするデータ量が大きくなり、リーダーレプリカのI/O性能に影響を与える可能性があるためです。一方、スタンバイデータベースでは並列移行が強く求められており、並列移行によってスタンバイデータベースのレプリカ再構築確率を効果的に低減できます。並列移行の最適化では、テナントレベルの構成パラメータ
replica_parallel_migration_modeを提供しており、ログストリームレプリカの並列移行機能モードを制御できます。詳細については、replica_parallel_migration_modeを参照してください。
OBKV/マルチモーダル
JSON複数値インデックスに複雑なDML文のサポート
V4.3.5では、JSON複数値インデックスに複雑なDML文のサポートが強化されました。
UPDATE、DELETEなどの文で複数値述語をサポートし、複数値インデックスを用いた複雑なDMLもサポートされます。より豊富なARRAY式のサポート OceanBaseはV4.3.3バージョンで
ARRAYデータ型をサポートしました。業務でのARRAY型の利用をより良くサポートするため、V4.3.5バージョンではより多くのARRAY式をサポートし、業務の多様なシナリオのニーズに対応します。新バージョンでは、array_append、array_distinct、arrayMap、array_remove、cardinality、element_at、array_contains_all、array_overlaps、array_to_string、array_agg、unnest、rb_buildなどのARRAY式が追加されました。詳細については、配列関数の概要を参照してください。
ベクトルインデックス機能の強化 V4.3.5バージョンでは、既存のベクトルインデックス機能の安定性が強化されるだけでなく、ベクトルインデックスがサポートする最大ベクトル次元が2000次元から4096次元に引き上げられました。また、コサイン距離アルゴリズムも新たにサポートされました。ユーザーはテーブル作成時または後付けインデックス作成時にコサイン距離アルゴリズムを指定でき、
SELECTクエリ実行時にはcosine_distance式フィルタ条件を指定できます。OBKV-HBase互換性の強化
OceanBaseはV4.3.5でHbase 1.x/2.xの互換性を強化し、複数namespaceサポート/ColumnRangeFilter/ColumnValueFIlter/CheckAndMutateBuilder/ハイブリッドBatch/CheckAndMutateBuilderなどを含みます。
OBKV応答時間ヒストグラム
V4.3.4バージョンの応答時間ヒストグラム機能を基に、新バージョンでは
[G]V$OB_QUERY_RESPONSE_TIME_HISTOGRAMシステムビューにOBKV関連の統計カテゴリが追加されました。これにはTABLEAPI SELECT、TABLEAPI INSERT、TABLEAPI DELETE、TABLEAPI UPDATE、TABLEAPI REPLACE、TABLEAPI QUERY AND MUTATE、TABLEAPI OTHER、HBASE SCAN、HBASE PUT、HBASE DELETE、HBASE APPEND、HBASE INCREMENT、HBASE CHECK AND PUT、HBASE CHECK AND DELETE、HBASE HYBRID BATCHなどが含まれます。
関連ドキュメント
この記事では、主に重要な新機能や主要な特徴について説明しました。より詳細なバージョンの詳細やその他のバージョン情報については、バージョンリリース記録をご覧ください: