默认情况下,Trafodion每张表只有一个HBase的Column Family,名字是”#1”,其好处是减少HFile文件的个数,但数据并没有真正按列存储。
Trafodion提供这样一种功能,在建表的时候可以指定创建Multiple column families,表可以拥有两个Column Family,第二个CF叫”cf2”。在HBase中,一个Column Family对于一个HFile,因此如果在表创建时定义多个Column Family,可以实现把常用数据放在一个文件中,而把不常用的字段单独放在另外一个文件中,这样可以帮忙在某些场景下查询只查询常用的数据,从而优化性能。
通过CQD TRAF_MULTI_COL_FAM ‘ON’;打开在表上可以创建多Column Families的功能,下面是创建多Column Families的示例,
SQL>cqd traf_aligned_row_format 'off';
--- SQL operation complete.
SQL>create table t5(
+>id int,
+>ts timestamp,
+>"cf2".other_cols varchar(200))
+>attribute default column family 'cf';
--- SQL operation complete.
SQL>showddl t5;
CREATE TABLE TRAFODION.SEABASE.T5
(
"cf".ID INT DEFAULT NULL SERIALIZED
, "cf".TS TIMESTAMP(6) DEFAULT NULL NOT SERIALIZED
, "cf2".OTHER_COLS VARCHAR(200) CHARACTER SET ISO88591
COLLATE DEFAULT DEFAULT NULL SERIALIZED
)
ATTRIBUTES DEFAULT COLUMN FAMILY 'cf'
;
--- SQL operation complete.