首批通过分布式安全可靠测评,为关键业务系统打造
OBKV-Table 支持的数据类型
更新时间:2026-07-24 11:46:26
OBKV-Table 提供表模型接口,在概念定义上和 SQL 接近,因此也有数据类型的概念。本文档介绍了 OBKV-Table 支持的数据类型。
OBKV 支持的类型(Schema 定义)
String 类型
OBKV-Table 支持的 String 类型如下:
- Varchar, Char
- Tiny Text, Text, Medium Text, Long Text
需要注意的是,OBKV 客户端没有提供设置字符集的接口,客户端的数据默认会转为 utf8mb4_general_ci 字符集的数据,如果 Schema 上定义的字符集不同,在存储的时候,会有额外的字符集转换开销。
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 类型,因此在定义 Schema 中不允许存在 unsigned 属性。
- 定点数以及浮点数的精度(Precision)以及小数位数(Scale)都基于 Schema 定义,如果数据和 Schema 不匹配,则会报错。
日期时间类型
OBKV-Table 支持的数值类型如下:Date / Time / DataTime / Timestamp / Year。
需要注意的是,在使用 DataTime / Timestamp 的时候,默认的精度是 0,代表精度只能到秒。比如 Java 的一些函数, 返回的是毫秒级别的时间值,可能会导致精度校验的时候失败。因此在时间列的时候,可以将精度调整至 6(最大精度)。
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 |
注意
- 在 Java 中使用 String / Byte[] 类型时,不能超过表中 Varchar 列的数据长度限制。。
- 对于 Java 中的时间类型(Timestamp、java.sql.Date、Date),不能超过表中 TimeStamp 列或 DateTime 列的精度限制,TimeStamp 列或 DateTime 列的默认精度为 0。