Trafodion表与HBase表如何映射

我们已经知道Trafodion中的表其实是映射和存储在HBase表中的, 本文通过一个简单DEMO介绍一下Trafodion中创建的表是如何映射到HBase表。


1 创建Trafodion测试表并插入样例数据

SQL>create table mytable(a integer not null, b char(10), primary key (a));

--- SQL operation complete.

SQL>insert into mytable values (1, 'abc'), (2, 'def');

--- 2 row(s) inserted.

SQL>select * from mytable;

A           B
----------- ----------
          1 abc
          2 def

--- 2 row(s) selected.

2 通过HBase Shell查询前面创建的表

hbase(main):002:0> scan 'TRAFODION.SEABASE.MYTABLE'
ROW                                COLUMN+CELL
 \x80\x00\x00\x01                  column=#1:\x01, timestamp=1475979256797, value=\x80\x00\x00\x01
 \x80\x00\x00\x01                  column=#1:\x02, timestamp=1475979256797, value=\x00abc
 \x80\x00\x00\x02                  column=#1:\x01, timestamp=1475979256800, value=\x80\x00\x00\x02
 \x80\x00\x00\x02                  column=#1:\x02, timestamp=1475979256800, value=\x00def

3 通过上述结果,我们可以验证以下结论

  • Trafodion中的每一列数据都存放在HBase表中单独的CELL中
  • 每一个Trafodion表采用单一column family,它的名字叫"#1"
  • Trafodion中每一列对应HBase表中有一个Column qualifier,它是一个整数的序号,从1开始计数,为了避免长名浪费空间
  • HBase表中的rowkey是对应Trafodion表主键所有字段进行编码后的结果,为了保证正确的进行二进制排序
  • 对于给定的Trafodion表,HBase表中的rowkey长度是一致的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值