表格存储服务 CloudTable
表格存储服务 CloudTable
- 最新动态
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- HBase用户指南
- Doris用户指南
- ClickHouse用户指南
- 权限管理
- 审计日志
- 集群日志管理
- 最佳实践
- 开发指南
- API参考
- SDK参考
-
常见问题
-
通用类
- CloudTable集群能够提供什么服务?
- 为什么要选择CloudTable服务?
- 创建CloudTable HBase集群要准备什么?
- 使用CloudTable服务时需要关注什么?
- CloudTable HBase集群支持哪些压缩算法?
- 能停止CloudTable服务吗?
- CloudTable中的HBase外部接口支持哪些编程语言?
- 故障RegionServer个数怎么判断?
- CloudTable HBase支持的特殊符号?
- CloudTable数据进行删除,导致索引表和数据表不对应查询异常处理办法?
- python通过thrift访问cloudtable,多个任务并行缓慢
- 如何查看HBase shell的TTL属性?
- 服务器资源为什么会被释放?
- 资源停止服务或逾期释放说明
- 哪些场景会影响数据均衡?
- 如何调整数据均衡的灵敏度,调整后有哪些影响?
- Doris集群回收站数据处理
- 连接访问类
- 数据读写类
- 数据导入
- 网络配置
- 计费类
-
通用类
- 文档下载
- 通用参考
链接复制成功!
创建数据表开启标签索引
功能介绍
建表功能同创建表,在此基础上,表属性配置标签索引schema。
样例代码
public void testCreateTable() { LOG.info("Entering testCreateTable."); HTableDescriptor tableDesc = new HTableDescriptor(tableName); HColumnDescriptor cdm = new HColumnDescriptor(FAM_M); cdm.setDataBlockEncoding(DataBlockEncoding.FAST_DIFF); tableDesc.addFamily(cdm); HColumnDescriptor cdn = new HColumnDescriptor(FAM_N); cdn.setDataBlockEncoding(DataBlockEncoding.FAST_DIFF); tableDesc.addFamily(cdn); // Add bitmap index definitions. List<BitmapIndexDescriptor> bitmaps = new ArrayList<>();//(1) bitmaps.add(BitmapIndexDescriptor.builder() // Describe which column should be indexed. .setColumnName(FamilyOnlyName.valueOf(FAM_M))//(2) // Describe how to extract term(s) from KeyValue .setTermExtractor(TermExtractor.NAME_VALUE_EXTRACTOR)//(3) .build()); // It will help to add several properties into HTableDescriptor. // SHARD_NUM should be less than the region number IndexHelper.enableAutoIndex(tableDesc, SHARD_NUM, bitmaps);//(4) List<byte[]> splitList = Arrays.stream(SPLIT.split(LemonConstants.COMMA)) .map(s -> org.lemon.common.Bytes.toBytes(s.trim())) .collect(Collectors.toList()); byte[][] splitArray = splitList.toArray(new byte[splitList.size()][]); Admin admin = null; try { // Instantiate an Admin object. admin = conn.getAdmin(); if (!admin.tableExists(tableName)) { LOG.info("Creating table..."); admin.createTable(tableDesc, splitArray); LOG.info(admin.getClusterStatus()); LOG.info(admin.listNamespaceDescriptors()); LOG.info("Table created successfully."); } else { LOG.warn("table already exists"); } } catch (IOException e) { LOG.error("Create table failed.", e); } finally { if (admin != null) { try { // Close the Admin object. admin.close(); } catch (IOException e) { LOG.error("Failed to close admin ", e); } } } LOG.info("Exiting testCreateTable."); }
注意事项
- (1) BitmapIndexDescriptor描述哪些字段使用什么规则来抽取标签,数据表可以定义一个或多个BitmapIndexDescriptor。
- (2) 定义哪些列需要抽取标签。取值范围:
- ExplicitColumnName:指定列。
- FamilyOnlyName:某一ColumnFamily下的所有列。
- PrefixColumnName:拥有某一前缀的列。
- (3) 定义列的抽取标签的规则,可选值如下:
- (4) 索引表的分区数量SHARD_NUM必须要小于或等于数据表。
父主题: 样例代码说明