ITPub博客

首页 > 数据库 > SQL on Hadoop > EsgynDB/QianBase如何选择用某一列作为salt键

EsgynDB/QianBase如何选择用某一列作为salt键

原创 SQL on Hadoop 作者:joshliu 时间:2021-02-09 17:41:34 0 删除 编辑

        在EsgynDB、QianBase处理大数据量的表情况下,一般会指定salt建创建表结构,并按照该键值的UEC情况将数据分布在各个节点上;

        查询的时候,SQL执行引擎会根据salt的列存储的各种值并发扫描或者定向查询,以提升大数据量场景下的查询性能;


在选择salt键时,需要满足以下两个条件:

1、查询表各列的UEC情况,保证salt列的值大于表的分区的200倍以上;

-- 查看UEC,首先需要对该表做统计更新
update statistics for table seabase.uirb_data_version on every column sample; 
-- 统计更新执行完成后即可查看表中各字段的UEC
showstats for table uirb_data_version on every column;

2、salt列不能有热点数据;

所谓热点数据是指,当一张表上亿条数据,某个列的一个值为字符串'qwer',以该值查询数据量达到7千万左右,大部分数据相同了;

-- 通过这个语句可以查看那些列的值比较多,即热点数据
select card_nbr,count(*) from tbl_event group by 1 order by 2 desc limit 50;


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69985104/viewspace-2757018/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-10-09

  • 博文量
    74
  • 访问量
    30978