TDSQL Boundless 与 HBase 兼容性

TDSQL Boundless HBase-Client 客户端实现了 Table 接口,其接口的兼容性如下。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、TDSQL Boundless(HBase 兼容模式)支持的数据类型

序号 数据类型 名称 示例 说明
1 String 字符串数据 "Hello TDSQL World!" –
2 Integer 整数数据 12345 边界值:Integer.MAX_VALUE,Integer.MIN_VALUE
3 Long 长整数数据 9876543210L 边界值:Long.MAX_VALUE,Long.MIN_VALUE
4 Double 双精度浮点数 3.141592654 边界值:Double.MAX_VALUE,Double.POSITIVE_INFINITY,Double.NaN
5 Float 单精度浮点数 2.71828f 边界值:Float.MAX_VALUE,Float.POSITIVE_INFINITY,Float.NaN
6 Boolean 布尔值 TRUE –
7 Short 短整数 32767 –
8 Byte 字节数据 127 –
9 Binary Data 二进制数据模式 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05} –
10 ASCII Data ASCII 编码数据 {0x48, 0x65, 0x6C, 0x6C, 0x6F} (Hello) –
11 Empty Data 空数据 {} –
12 List 列表类型 ["product_001", "product_002", "product_003", "product_002"] –
13 Set 集合类型 [1001, 1002, 1003, 1004, 1005] –
14 Text 文本类型 "TDSQL Boundless is a distributed database designed for large-scale data processing and real-time analytics." –
15 Sparse String 稀疏字符串 {"zh-CN": "你好", "ja-JP": "こんにちは", "ko-KR": "안녕하세요"} HBase用于存储稀疏的字符串数据,可以节省存储空间
16 Sparse Binary 稀疏字节数组 {"thumbnail": {0x89, 0x50, 0x4E, 0x47}, "avatar": {0xFF, 0xD8, 0xFF, 0xE0}} HBase用于存储稀疏的二进制数据,可以节省存储空间

二、HTable 接口

序号 修饰符和类型 方法和描述 TDSQL Boundless 兼容性
1 Result append(Append append) 支持
2 Object[] batch(List<? extends Row> actions)与 batch(List, Object[])类似,但返回结果数组,而不是使用结果参数引用。 支持
3 void batch(List<? extends Row> actions, Object[] results)批量执行 Deletes、Gets、Puts、Increments、Appends 和 RowMutations 的方法。 支持
4 boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier, byte[] value,Delete delete)原子性地检查行/列族/列限定符的值是否与预期值匹配。 支持
5 boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, byte[] value, Put put)原子性地检查行/列族/列限定符的值是否与预期值匹配。 支持
6 void close()释放所有占用的资源或内部缓冲区中的待处理更改。 支持
7 <T extends CoprocessorProtocol,R>Map<byte[],R> coprocessorExec(Class protocol, byte[] startKey, byte[] endKey, Batch.Call<T,R> callable)在选定区域的 CoprocessorProtocol 实例上调用传入的 Batch.Call 。 不支持
8 <T extends CoprocessorProtocol,R> void coprocessorExec(Class protocol, byte[] startKey, byte[] endKey, Batch.Call<T,R> callable, Batch.Callback callback)在选定区域的 CoprocessorProtocol 实例上调用传入的 Batch.Call,并使用回调处理结果。 不支持
9 <T extends CoprocessorProtocol > T coprocessorProxy(Class protocol, byte[] row)创建并返回一个代理,用于访问包含指定行的区域中的 CoprocessorProtocol 实例。 不支持
10 void delete(Delete delete)删除指定的单元格或行。 支持
11 void delete(List<Delete> deletes)批量删除指定的单元格或行。 支持
12 boolean exists(Get get)检查表中是否存在 Get 指定的列。 支持
13 void flushCommits()执行所有缓冲的 Put 操作。 不支持
14 Result get(Get get)从指定行中提取特定的单元格。 支持
15 Result[] get(List<Get> gets)批量从指定行中提取特定的单元格。 支持
16 org.apache.hadoop.conf.Configuration getConfiguration()返回当前实例使用的 Configuration 对象。 支持
17 ResultScanner getScanner(byte[] family)获取当前表中指定列族的扫描器。 支持
18 ResultScanner getScanner(byte[] family, byte[] qualifier)获取当前表中指定列族和列限定符的扫描器。 支持
19 ResultScanner getScanner(Scan scan)根据 Scan 对象返回当前表的扫描器。 支持
20 HTableDescriptor getTableDescriptor()获取当前表的 table descriptor。 不支持
21 byte[] getTableName()获取当前表的名称。 不支持
22 long getWriteBufferSize()返回当前表的写缓冲区最大大小(以字节为单位)。 不支持
23 Result increment(Increment increment)在单个行中增加一个或多个列的值。 支持
24 long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount)原子性地递增指定列的值。 支持
25 long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, Durability durability)原子性地递增指定列的值。 不支持
26 boolean isAutoFlush()检查是否启用了“自动刷新”功能。 不支持
27 void mutateRow(RowMutations rm)对单行执行多个原子性突变操作。 支持
28 void put(List<Put> puts)批量插入数据到表中。 支持
29 void put(Put put)插入数据到表中。 支持
30 void setAutoFlush(boolean autoFlush)参见 setAutoFlush(boolean, boolean)。 不支持
31 void setAutoFlush(boolean autoFlush, boolean clearBufferOnFail)启用或禁用“自动刷新”功能,并可以选择在失败时清除缓冲区。 不支持
32 void setWriteBufferSize(long writeBufferSize)设置缓冲区的大小(以字节为单位)。 不支持

三、Admin 接口

TDSQL Boundless HBase-Client 客户端实现了 Admin 接口,其接口的兼容性如下:

序号 修饰符和类型 方法和描述 TDSQL Boundless兼容性
1 void addColumnFamily(TableName tableName, ColumnFamilyDescriptor columnFamily)向现有表添加列族。 不支持
2 void createTable(TableDescriptor desc)创建新表。 支持
3 void deleteColumnFamily(TableName tableName, byte[] columnFamily)从表中删除列族。 不支持
4 void deleteTable(TableName tableName)删除表。 支持
5 void disableTable(TableName tableName)禁用表并等待完成。 支持
6 void enableTable(TableName tableName)启用表。 支持
7 org.apache.hadoop.conf.Configuration getConfiguration()返回实例使用的配置。 支持
8 Connection getConnection()返回此对象使用的连接。 支持
9 TableDescriptor getDescriptor(TableName tableName)获取表描述符。 支持
10 boolean isTableDisabled(TableName tableName)检查表是否被禁用。 支持
11 boolean isTableEnabled(TableName tableName)检查表是否启用。 支持
12 List<TableDescriptor> listTableDescriptors(List<TableName> tableNames)获取表描述符列表。 支持
13 List<TableDescriptor> listTableDescriptors(Pattern pattern)列出匹配给定模式的所有用户空间表。 支持
14 TableName[] listTableNames()列出所有用户空间表的名称。 支持
15 void majorCompact(TableName tableName)主压缩表。 不支持
16 void majorCompact(TableName tableName, byte[] columnFamily)主压缩表中的列族。 不支持
17 void modifyColumnFamily(TableName tableName, ColumnFamilyDescriptor columnFamily)修改表中的现有列族。 支持
18 void modifyTable(TableDescriptor td)修改现有表(更 IRB 友好的版本)。 支持
19 boolean tableExists(TableName tableName)检查表是否存在。 支持
20 void truncateTable(TableName tableName)截断表。 支持

四、Scan Filter 支持列表

TDSQL Boundless(HBase 兼容模式)支持以下 Scan Filter,Scan 与 Get 操作均可使用。

Filter 名称 说明 兼容性
ColumnPrefixFilter 返回所有以指定字符串作为列名前缀的列 支持
ColumnPaginationFilter 从指定列或偏移量开始返回指定数量的列 支持
FirstKeyOnlyFilter 每行只返回第一个 Cell 支持
KeyOnlyFilter 不返回 value,可选 lenAsVal 参数将值替换为值长度 支持
RandomRowFilter 按给定概率随机保留行(采样) 支持
TimestampsFilter 仅保留给定时间戳集合中的数据 支持
DependentColumnFilter 以指定列为依赖,返回同时间戳的其他单元;可选排除依赖列本身,支持值比较 支持
SingleColumnValueFilter 基于指定列的值进行比较过滤,符合条件的行保留该列 支持
SingleColumnValueExcludeFilter 基于指定列的值进行比较过滤,但剔除该比较列 支持
ColumnRangeFilter 只保留列名在指定范围内的列 支持
MultipleColumnPrefixFilter 仅保留列名匹配任一前缀的列 支持
MultiRowRangeFilter 仅保留落在多个 RowRange 区间内的行 支持
InclusiveStopFilter 返回直到指定行(含该行)为止的所有行 支持
FamilyFilter 基于特定列族名做比较过滤 支持
FuzzyRowFilter 基于模糊匹配规则过滤行键 支持
ColumnValueFilter 基于指定列的值进行比较过滤 支持
FilterList 支持 AND/OR 任意嵌套组合,语义对齐 HBase 2.6 支持

注意:说明:

赞 (0)
上一篇 4天前
下一篇 4天前