Trafodion表物理设计与逻辑设计问答

1、
问题
primary key 与 clustering key区别?
解答
primary key是为了保证记录唯一性而设计; 特殊应用中不希望按照主键进行排序存储,则需要指定clustering key(单独指定聚簇键使用STORE BY语句);
区别:创建表的时候指定primary key,那么clustering key则和primary key相同;当创建表的时候没有指定clustering key,则clustering key为(, syskey)

2、
问题
A、primary key and store by是否可以同时存在?
B、如果可以同时存在,那么数据按照什么进行排序存储?
解答
A、在同一个建表语句中primary key与store by不能同时存在。否则出现如下错误:Duplicate STORE BY clauses were specified。
B、不会存在同时存在primary key与store by而导致数据存储排序问题。

3、
问题
A、建表的时候,syskey列在什么情况下会生成?
B、为什么有些时候会自动生成syskey列?
C、怎么查看自动生成的syskey?
解答
A、syskey列在创建表时没有指定primary key的时候会自动生成;
B、在没有指定primary key的情况下为了保证记录的唯一性,所以增加一个syskey保证数据在hbase rowkey为两行数据,否则数据的存储会被覆盖;
C、通过在select语句中显示指定syskey查询可以查看,另外一种方法是通过invoke $tableName;也可以查看。

4、
问题
A、创建表的时候 如果设置了Salting,Slating解决什么问题?
B、怎么解决?
C、Salt这个参数是否设置了底层hbase表的预分区呢?D、是怎么实现预分区的?
解答
A、Salting为了解决数据热点的问题;
B、通过把数据分配到多个Region进行处理的方法解决;
C、在创建表的时候指定了Salt时间在Hbase表上实现了预分区的功能,我们可以通过hbase:meta的数据查看创建的表的分区情况;
D、预分区的实现方式,针对数据落到那个分区,使用saltcolumn%saltnum得到对应的分区。

5、
问题
A、为什么需要创建Index?
B、创建Index的优缺点?
C、提高了查询效率,但是插入性能降低了,为什么?
解答
A、避免非primary key条件查询时进行全表扫描;
B、优点是,通过使用Index提高非primary key条件查询的效率;缺点是虽然提高了通过索引条件查询的效率,但是插入性能反而下降,并且存储空间也比以前增加;
C、插入性能降低主要是因为在创建索引之后,需要额外维护一张索引表,所以插入的时候比没有创建索引时更慢。

6、
问题
如果主表有Salt,Index表也增加Salt的情况下(当然,Index表可以不加Salt),Index表的Salt需要与主表保持一致,为什么?
解答
主要是为了保证索引表对应的数据Region与主表对应的数据Region在一个节点,提高访问效率。

7、问题
创建VIEW的优势是什么?
解答
数据访问的安全性考虑;可以简化逻辑与简化查询;限制用户可以查阅和修改的信息;做一些数据变化实现数据的统一性(通过case实现);屏蔽table的变化,view可以提供上层应用相同的数据结构。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值