OceanBase
English日本語简体中文
ドキュメントホーム
製品
エコシステム
リリース

データベース

OceanBase CloudOceanBaseデータベース

データベース

OceanBase CloudOceanBaseデータベース
OceanBase CloudOceanBaseデータベース

OceanBaseデータベース

KV - V4.4.2
  • OBKVの概要
  • OBKVのアーキテクチャ
  • OBKV-Table
    • OBKV-Table概要
      • OBKV-Tableの概要
      • OBKV-Tableのコア機能
      • OBKV-Tableデプロイの概要
    • シンプルなKey-Valueストレージのクイックスタート(Java)
    • OBKV-Table Javaクライアントを使ったアプリケーション開発
      • OBKV-Table Java開発ガイド
      • OBKV-Table開発の準備
      • OBKV-Table Javaクライアントを使用してクラスタに接続する
      • OBKV-Table操作例
        • OBKV-Tableへのデータ書き込み
        • OBKV-Tableによるデータのクエリ
        • OBKV-Tableでのデータ更新
        • OBKV-Tableによるデータの削除
      • OBKV-Table Javaクライアントのパラメータ設定
    • OBKV-Table管理
      • OBKV-Table管理の概要
      • OBKV-Tableの高可用性
      • OBKV-Tableのセキュリティ権限
      • OBKV-Tableモニタリングメトリクス
    • OBKV-Tableリファレンス
      • OBKV-Tableのデータモデル
      • OBKV-Tableの操作タイプ
      • OBKV-Tableがサポートするデータ型
      • OBKV-Table全文インデックス
      • OBKV-Tableのグローバルインデックスの使用範囲と例
      • OBKV-Tableの期限切れデータ削除
      • OBKV-Tableのグループコミット
      • OBKV-Tableの弱い整合性読み取りと最寄りデータセンターからの読み取り
      • OBKV-Table関連ビュー
    • OBKV-Table よくある質問
  • OBKV-HBase
    • OBKV-HBaseの概要
    • OBKV-HBaseのコア機能
    • OBKV-HBaseのデプロイ
    • OBKV-HBaseによるアプリケーション開発
      • OBKV-HBase アプリケーション開発の概要
      • OBKV-HBase Javaクライアントを使用したクラスタへの接続
      • HBaseの業務コードをOBKV-HBaseに移行する
      • OBKV-HBase データ操作の例
    • OBKV-HBase 移行ガイド
    • OBKV-HBase管理
      • OBKV-HBase管理の概要
      • OBKV-HBaseの高可用性
      • OBKV-HBaseのセキュリティ権限
      • OBKV-HBaseモニタリングメトリクス
    • OBKV-HBaseクエリの最適化
    • OBKV-HBaseの性能テスト
    • OBKV-HBaseリファレンス
      • OBKV-HBaseデータモデル
      • OBKV-HBaseのデータスキーマ
      • HBaseとの互換インターフェース
      • HBaseと互換性のあるフィルター
      • OBKV-HBaseの自動パーティション分割
      • OBKV-HBaseにおける期限切れデータの削除
      • OBKV-HBaseの弱い整合性読み取りと最寄りデータセンターからの読み取り
      • OBKV-HBase関連ビュー
    • OBKV-HBaseエコシステム統合
      • Flink連携
        • Flinkコネクタを使用してOBKV-HBaseにデータを同期する
        • ネイティブFlinkによるOBKV-HBaseへのアクセス
      • HiveによるOBKV-HBaseへのアクセス
      • SparkによるOBKV-HBaseへのアクセス
  • OBKVリリースノート
    • OBKV Enterprise版

PDF をダウンロード

ドキュメントフィードバック
  1. ドキュメントセンター
  2. OceanBaseデータベース
  3. KV
  4. V4.4.2

OBKV-HBaseの自動パーティション分割

最終更新:2026-09-30 06:35:08

使用上の制限
使用方法と例
テーブル識別フラグ
クイックスタート
応用例

本ドキュメントでは、OBKV-HBaseの自動パーティション分割の仕組みと使用方法を説明します。この機能は、設定したデータ量のしきい値に基づいてパーティションを自動的に分割します。パーティション計画にかかる手間を抑えながら、OceanBaseデータベースの分散処理能力を活用できます。

使用上の制限

現在、自動Range/Range Columnsパーティションがサポートされています。これはRangeパーティションの利点の一つを継承しており、範囲スキャンのシナリオに適しています。また、通常のRangeパーティションにはない、データ量に応じて自動的に分割し、データ量を均等に分散する機能も備えています。

使用方法と例

テーブル識別フラグ

OBKV-HBaseのパーティション分割機能は、kv_attributesパラメータを使用して、指定されたテーブルがOBKV-HBaseテーブルであるかどうかを識別します。そのため、システムがOBKVテーブルタイプを正確に認識できるように、テーブル作成時にkv_attributes設定を追加することを強く推奨します。詳細については、OBKV-HBaseのデータスキーマ:テーブル識別フラグを参照してください。

クイックスタート

自動パーティション機能を使用するには、まず2つのパラメータに注意する必要があります:

パラメータ
説明
enable_auto_split テナントの自動パーティション機能を有効にするかどうかを制御します。デフォルト値はFALSEです。
auto_split_tablet_size テナントで自動パーティション機能が有効な場合、パーティションの自動分割をトリガーするしきい値を指定します。デフォルト値は128MBです。

自動パーティションを有効にするコマンドは次のとおりです:

ALTER SYSTEM SET enable_auto_split = true TENANT='tenant';

テーブル作成時または変更時に自動パーティション機能を有効にしたものの、自動パーティションのしきい値を設定しなかった場合、auto_split_tablet_sizeパラメータのデフォルト値である128MBがそのテーブルの自動パーティションのしきい値となります。パーティションのディスク使用量がこの設定値を超えると、パーティション分割がトリガーされます。自動パーティションのしきい値を手動で設定する場合、サンプルコマンドは次のとおりです:

-- 自動パーティションのしきい値を256MBに設定
AlTER SYSTEM SET auto_split_tablet_size = '256MB';

応用例

構成パラメータのみを設定することで、OBKV-HBaseの自動パーティション分割機能を迅速に有効にできますが、これによりテナント内のすべての業務にこの機能が適用されます。一部の業務テーブルの自動パーティション分割機能をより細かく管理したい場合は、以下のユースケース例を参考にしてください:

  1. OBKV-HBaseを利用する新しい業務。

このユースケースでは、当該業務の新規テーブルに対して自動パーティションを有効にします。例:

-- 自動パーティションの非パーティションテーブルを作成する(デフォルト設定の128MBを分割しきい値として使用)
CREATE TABLE auto_pt2 (c1 int, c2 int, primary key(c1));
				PARTITION BY RANGE ();

-- 自動パーティションの非パーティションテーブルを作成する(分割しきい値を1024MBに設定、ユーザー設定を使用)
CREATE TABLE auto_pt3 (c1 int, c2 int, primary key(c1))
				PARTITION BY RANGE () SIZE('1024MB');
  1. 古いバージョンのOBKV-HBaseクラスタを、自動パーティションをサポートする新しいバージョンにアップグレードしたい場合。

このようなシナリオでは、既存のテーブルに自動パーティション機能を有効にする必要があります。これは、自動パーティションの属性を変更することで実現できます。例:

-- 古いバージョンから新しいバージョンにアップグレードしたい業務テーブルt1は、古いバージョンでテーブル作成時に自動パーティションが有効になっていません。
CREATE TABLE t1 (C1 INT, C2 INT, PRIMARY KEY(C1))
		PARTITION BY RANGE(C1) SIZE('10GB')
  (PARTITION p0 VALUES LESS THAN(100),
   PARTITION p1 VALUES LESS THAN(200),
   PARTITION p_max VALUES LESS THAN (MAXVALUE)
  );
-- 新しいバージョンで、自動パーティション化されていないテーブルt1のパーティション属性を変更し、自動パーティションを有効にする
ALTER TABLE t1 PARTITION BY RANGE() SIZE('128MB');
  1. 手動パーティション化を推奨される業務。

現在の自動パーティション分割機能はデータ量の均等化のみをサポートしているため、一部のパーティションのデータ量が少ない一方で、他のパーティションの負荷が高くなる場合があります。そのような状況では、手動でパーティションを分割し、分割のしきい値を設定することで、高負荷のパーティションのデータを異なるパーティションに均等に分散させることができます。例:

-- t1というテーブルがあり、自動パーティションが有効になっていないと仮定します。
CREATE TABLE pt1 (c1 int, c2 int, c3 int, primary key(c1))
      PARTITION BY RANGE(c1)
      (PARTITION p0 VALUES LESS THAN(50),
       PARTITION p1 VALUES LESS THAN(100),
       PARTITION p_max VALUES LESS THAN (MAXVALUE)
      );

-- 0-50のパーティションの負荷が高いことが判明した場合、さらに複数のパーティションに分割できます。
ALTER TABLE t1 REORGANIZE PARTITION p0 INTO (
  PARTITION p0_1 VALUES LESS THAN (30),
  PARTITION p0_2 VALUES LESS THAN (50)
);

前のトピック

HBaseと互換性のあるフィルター
前へ

次のトピック

OBKV-HBaseにおける期限切れデータの削除
次へ
このページの内容
使用上の制限
使用方法と例
テーブル識別フラグ
クイックスタート
応用例