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

OBKVがサポートするデータ型(スキーマ定義)
String型
Binary型
数値型
日付・時刻型
JSON型
Java型とOBKV-Table型のマッピング

OBKV-Tableはテーブルモデルインターフェースを提供しており、概念定義がSQLに近いため、データ型の概念も存在します。このドキュメントでは、OBKV-Tableがサポートするデータ型について説明します。

OBKVがサポートするデータ型(スキーマ定義)

String型

OBKV-TableがサポートするString型は以下のとおりです:

  • Varchar, Char
  • Tiny Text, Text, Medium Text, Long Text

注意点として、OBKVクライアントには文字セットを設定するインターフェースがないため、クライアント側のデータはデフォルトでutf8mb4_general_ci文字セットに変換されます。スキーマで定義されている文字セットが異なる場合、保存時に追加の文字セット変換オーバーヘッドが発生します。

Binary型

Binary型はString型に似ていますが、文字列ではなくバイナリデータを格納する点が異なります。

OBKV-TableがサポートするBinary型は以下のとおりです:

  • VarBinary, Binary
  • Tiny Blob, Blob, Medium Blob, Long Blob

数値型

OBKV-Tableがサポートする数値型は以下のとおりです:

  • 整数型:Bool / Boolean / TinyInt / SmallInt / MediumInt / Int / Integer / BigInt
  • 固定小数点数:Decimal / Numeric
  • 浮動小数点数:Float / Double

注意点:

  • OBKV-Tableが主にサポートするクライアントはJavaクライアントです。Javaはunsigned型をサポートしていないため、スキーマ定義においてunsigned属性の存在は許可されません。
  • 固定小数点数および浮動小数点数の精度(Precision)と小数桁数(Scale)はすべてスキーマ定義に基づきます。データとスキーマが一致しない場合、エラーが発生します。

日付・時刻型

OBKV-Tableがサポートする日付・時刻型は、Date / Time / DateTime / Timestamp / Yearです。

DateTime / Timestampのデフォルトの精度は0で、秒単位の値を格納します。Javaの関数などが返すミリ秒単位の値をそのまま使用すると、精度の検証に失敗する場合があります。必要に応じて、列の精度を最大値の6に設定してください。

JSON型

JSONデータ型は、データベース内でJSON(JavaScript Object Notation)データを格納および処理するための特殊なデータ型です。JSON値は、オブジェクト(JSONオブジェクト)、配列、文字列、数値、ブール値(false/true)、または null で構成されている必要があります。ここで、false、true、null は小文字のみを許可します。

ユーザーはテーブルにJSON列を作成し、OBKV-Table Javaクライアントインターフェースを使用してJSONデータの読み書きを行うことができます。クライアントから書き込む際には、JSONデータを特定のJava型に変換して渡す必要があります。現在サポートされているJava型は以下のとおりです:

  • String
  • byte[]

ユーザーは各テーブルに複数のJSON型列を作成できますが、以下の点に注意してください:

  • JSON型の列は PRIMARY KEY、FOREIGN KEY、UNIQUE KEY としては使用できませんが、NOT NULL または CHECK 制約を追加できます。
  • JSON型の列にはデフォルト値を含めることはできません。
  • JSON型の列はパーティションキーとしては使用できません。
  • JSONデータの長さは LONGTEXT の長さを超えてはなりません。各JSONオブジェクトまたは配列の最大深さはデフォルトで 100 ですが、パラメータ json_document_max_depth で設定できます。
  • クライアントからJSONデータを書き込むと、内部のキーが並べ替えられる可能性があります。例えば、{"b": 1, "a": 2} を書き込んだ場合、読み取ったデータは {"a":2, "b":1} になる可能性があります。"a" と "b" の順序が入れ替わっていますが、それでも同じJSONオブジェクトです。

OBKV-TableでJSON型を使用する際の制限事項は以下のとおりです:

  • JSONデータの格納と取得のみをサポートしており、JSON関連の関数(例:JSON_EXTRACT など)はサポートしていません。
  • クライアントは put インターフェースを使用してJSONデータを書き込むことはできません。insertOrUpdate インターフェースを使用した書き込みを推奨します。
  • その他の非サポートJava型(例:Integer、Booleanなど)を使用してJSON列に書き込もうとすると、OB_KV_COLUMN_TYPE_NOT_MATCH エラーが発生します。

JSON列を作成する例:

CREATE TABLE t1_json(
  k BIGINT,
  v JSON,
  PRIMARY KEY(k))
  kv_attributes = '{"Table": {}}'
  PARTITION BY KEY(k) PARTITIONS 97;

クライアントからJSONデータを書き込む例:

Row rowKey = row(colVal("k", 1));
String jsonText = "{ \"greeting\" : \"Hello!\", \"farewell\" : \"bye-bye!\", \
\"json_text\" : \"test!\" }";
client.insertOrUpdate("test")
      .setRowKey(rowKey)
      .addMutateColVal(colVal("v", jsonText)).execute();

クライアントからJSONデータを読み取る例:

Map<String, Object> res = client.get(tableName)
                                .setRowKey(row(colVal("k", 1)))
                                .select("k", "v")
                                .execute();
System.out.println(res.get("v"));

Java型とOBKV-Table型のマッピング

Javaデータ型とOBKV-Tableデータ型の対応関係は以下のとおりです:

Java型
OBKV-Table型
Boolean TinyInt
Byte Varbinary
Short SmallInt
Integer Int
Long BigInt
String Varchar
Byte[] Varchar
Double Double
Float Float
Timestamp Timestamp
java.sql.Date DateTime
Date DateTime
String (JSON形式) JSON

注意

  • JavaでString / Byte[]型を使用する場合、テーブル内のVarchar列のデータ長制限を超えてはなりません。
  • Javaの時刻型(Timestamp、java.sql.Date、Date)は、テーブル内のTimeStamp列またはDateTime列の精度制限を超えてはなりません。TimeStamp列またはDateTime列のデフォルト精度は0です。

前のトピック

OBKV-Tableの操作タイプ
前へ

次のトピック

OBKV-Table全文インデックス
次へ
このページの内容
OBKVがサポートするデータ型(スキーマ定義)
String型
Binary型
数値型
日付・時刻型
JSON型
Java型とOBKV-Table型のマッピング