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-Tableのグローバルインデックスの使用範囲と例

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

適用範囲
Javaクライアントの使用例

OBKV-Tableはグローバルインデックスをサポートしており、SQLの動作と同じです。

適用範囲

グローバルインデックスをパーティション化する場合、クライアントの対応範囲により、使用できるパーティショニング方式は次のとおりです。

パーティショニング方式
Javaクライアント
key サポート
hash サポート
range サポート

クライアントは複雑な式を解析・計算できないため、パーティションキーには1つ以上の列を直接指定する必要があります。列を使った式は指定できません。例を以下に示します。

サポート
サポートなし
CREATE INDEX idx ON tb(C2) GLOBAL PARTITION BY HASH(C2);
CREATE INDEX idx ON tb(C2) GLOBAL PARTITION BY RANGE(C2, C3);
CREATE INDEX idx ON tb(C2) GLOBAL PARTITION BY HASH(C2+C3);

Javaクライアントの使用例

例:

public void test_update() throws Exception {
    test_update("test_global_hash_hash", 20);
    test_update("test_global_key_key", 20);
    test_update("test_global_range_range", 20);
}

public void test_update(String tableName, int recordCount) throws Exception {
    try {
        client.addRowKeyElement(tableName, new String[] { "C1" });
        String[] properties_name = { "C2", "C3" };
        // prepare data
        for (int i = 0; i < recordCount; i++) {
            int key = gen_key(i);
            long affectRows = client.insert(tableName, new Object[] { key }, properties_name,
                new Object[] { key + 1, ("hello " + key).getBytes() });
            Assert.assertEquals(1, affectRows);
        }
        // update global index key
        for (int i = 0; i < recordCount; i++) {
            int key = gen_key(i);
            long affectRows = client.update(tableName, new Object[] { key },
                new String[] { "C2" }, new Object[] { key + 2 });
            Assert.assertEquals(1, affectRows);
            Map<String, Object> result = client.get(tableName, new Object[] { key },
                properties_name);
            Assert.assertEquals(key + 2, result.get("C2"));
            Assert.assertEquals("hello " + key, result.get("C3"));
        }
        // update other key
        for (int i = 0; i < recordCount; i++) {
            int key = gen_key(i);
            long affectRows = client.update(tableName, new Object[] { key },
                new String[] { "C3" }, new Object[] { "hi " + key });
            Assert.assertEquals(1, affectRows);
            Map<String, Object> result = client.get(tableName, new Object[] { key },
                properties_name);
            Assert.assertEquals(key + 2, result.get("C2"));
            Assert.assertEquals("hi " + key, result.get("C3"));
        }
        checkIndexTableRow(tableName, recordCount);
    } finally {
        // delete data
        for (int i = 0; i < recordCount; i++) {
            int key = gen_key(i);
            long affectRows = client.delete(tableName, new Object[] { key });
            Assert.assertEquals(1, affectRows);
        }
        checkIndexTableRow(tableName, 0);
    }
}

Javaクライアントでグローバルインデックスを使用するその他の例については、GitHub Javaクライアント グローバルインデックスを参照してください。

前のトピック

OBKV-Table全文インデックス
前へ

次のトピック

OBKV-Tableの期限切れデータ削除
次へ
このページの内容
適用範囲
Javaクライアントの使用例