datagridview 选择指定列 winform_HBase列映射

Encode column names to save space and improve performance​issues.apache.org

3008f4c1122de78524d5f23d5ab515e2.png

在Phoenix DDL中创建表时,会将用户指定的列名替换成较短的名字以节省存储空间。用户仍可以在select语句中使用其定义的完整列名,只是在底层中会将列名转换为其利于排序的版本。

Column Mapping and Immutable Data Encoding : Apache Phoenix​blogs.apache.org
6e783c9492eb2c78236b4499f1898676.png

列映射的想法是:应该对非主键的 Phoenix 列使用基于数字的 hbase 列限定符,而不是直接使用其原始列名。这有助于 Phoenix 在 HBase 返回的已排序的Cell列表中查找Cell时,不再需要进行二分查找。随着非主键列的增加,这有助于提高某些查询的性能(如非主键列上的 order by 或 group by)

这种间接性还使我们能够编写快速的 DDL 操作,比如列重命名(PHOENIX-2341)和元数据级别列删除(PHOENIX-3680)。此外,由于这些基于数字的限定符通常比列名小(只占1到4个字节) ,表的磁盘占用更小,从而全面提高了性能。

根据官方的测试:带有列映射的 HDFS 磁盘大小 (100GB) 比非列映射表(160GB)小40%。使用列映射时的查询速度也快30-40%

Storage Formats | Apache Phoenix​phoenix.apache.org

只能在创建表时设置列映射属性。在决定使用列映射之前,您需要考虑一个表及其视图层次结构在生命周期中期望有多少列。对于各种映射方案,以下是列数的限制:

75fdbc35e1cc951f40069cc41359bf60.png

f5cd3153b15285598e93a29d9f5681a8.png

新建的Phoenix的表默认开启列映射,并使用2字节的映射方式。可在`phoenix.default.column.encoded.bytes.attrib` 中配置全局的列映射规则。

也可使用 COLUMN_ENCODED_BYTES 来为新创建的表单独指定列映射方式。

要禁用所有新表之间的列映射,需要将 phoenix.default.column.encoded.bytes.attrib 设置为0。还可以通过在 create table 语句中设置 COLUMN _ encoded _ bytes = 0属性。前者在全局情况下禁用该属性,后者可选择地禁用该属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值