创建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万。  |