创建CarbonData表
操作场景
使用CarbonData前需先创建表,才可从表中加载数据和查询数据。
使用自定义列创建表
可通过指定各列及其数据类型来创建表。启用Kerberos认证的分析集群创建CarbonData表时,如果用户需要在默认数据库“default”以外的数据库创建新表,则需要在Hive角色管理中为用户绑定的角色添加指定数据库的“Create”权限。
命令示例:
CREATE TABLE IF NOT EXISTS productdb.productSalesTable (
productNumber Int,
productName String,
storeCity String,
storeProvince String,
revenue Int)
STORED BY 'org.apache.carbondata.format'
TBLPROPERTIES (
'table_blocksize'='128',
'DICTIONARY_EXCLUDE'='productName',
'DICTIONARY_INCLUDE'='productNumber');
上述命令所创建的表的详细信息如下:
参数 |
描述 |
---|---|
productSalesTable |
待创建的表的名称。该表用于加载数据进行分析。 表名由字母、数字、下划线组成。 |
productdb |
数据库名称。该数据库将与其中的表保持逻辑连接以便于识别和管理。 数据库名称由字母、数字、下划线组成。 |
productNumber productName storeCity storeProvince revenue |
表中的列,代表执行分析所需的业务实体。 列名(字段名)由字母、数字、下划线组成。
说明:
CarbonData暂不支持设置列是否允许为空、默认值以及主键。 |
table_blocksize |
CarbonData表使用的数据文件的block大小,默认值为1024,取值范围为1~2048,单位为MB。
一般情况下,建议根据数据量级别来选择大小。例如:GB级别用256,TB级别用512,PB级别用1024。 |
DICTIONARY_EXCLUDE |
设置指定列不生成字典,适用于数值复杂度高的列。系统默认为String类型的列做字典编码,但是如果字典值过多,会导致字典转换操作增加造成性能下降。 一般情况下,列的数值复杂度高于5万,可以被认定为高复杂度,则需要排除掉字典编码,该参数为可选参数。
说明:
在非字典列中,只支持String和Timestamp数据类型。 |
DICTIONARY_INCLUDE |
设置指定列生成字典,适用于数值复杂度低的列,可以提升字典列上的groupby性能,为可选参数。一般情况下,字典列的复杂度不应该高于5万。 |