• 沒有找到結果。

CarbonData支持以下数据类型:

● Int

● String

● BigInt

● Smallint

● Char

● Varchar

● Boolean

● Decimal

● Double

● TimeStamp

● Date

● Array

● Struct

● Map

下表对所支持的数据类型及其各自的范围进行了详细说明。

3-10 CarbonData 数据类型

数据类型 范围

Int 4字节有符号整数,从-2,147,483,648到2,147,483,647 说明非字典列如果是Int类型,会在内部存储为BigInt类型。

String 100000字符

说明如果在CREATE TABLE中使用Char或Varchar数据类型,则这两 种数据类型将自动转换为String数据类型。

如果存在字符长度超过32000的列,需要在建表时,将该列加入 到tblproperties的LONG_STRING_COLUMNS属性里。

BigInt 64-bit,从-9,223,372,036,854,775,808到 9,223,372,036,854,775,807

SmallInt 范围-32,768到32,767 Char 范围A到Z&a到z Varchar 范围A到Z&a到z&0到9 Boolean 范围true或者false

Decimal 默认值是(10,0) ,最大值是(38,38) 说明

当进行带过滤条件的查询时,为了得到准确的结果,需要在数字 后面加上BD。例如,select * from carbon_table where num = 1234567890123456.22BD.

Double 64-bit,从4.9E-324到1.7976931348623157E308 TimeStamp NA,默认格式为“yyyy-MM-dd HH:mm:ss”。

Date DATE数据类型用于存储日历日期。 默认格式为“yyyy-MM-dd”。

Array<data_type> NA

说明现仅支持2层复杂类型的嵌套。

Struct<col_name:

data_type COMMENT col_comment, ...>

Map<primitive_type, data_type>

3.3.2.2 新建 CarbonData Table 操作场景

使用CarbonData前需先创建表,才可在其中加载数据和查询数据。可通过Create Table命令来创建表。该命令支持使用自定义列创建表。

使用自定义列创建表

可通过指定各列及其数据类型来创建表。

命令示例:

CREATE TABLE IF NOT EXISTS productdb.productSalesTable ( productNumber Int,

productName String, storeCity String, storeProvince String, productCategory String, productBatch String, saleQuantity Int, revenue Int)

STORED AS carbondata TBLPROPERTIES ( 'table_blocksize'='128');

上述命令所创建的表的详细信息如下:

3-11 表信息定义

参数 描述

productSalesTable 待创建的表的名称。该表用于加载数据进行分析。

表名由字母、数字、下划线组成。

productdb 数据库名称。该数据库将与其中的表保持逻辑连接以便于识 别和管理。

数据库名称由字母、数字、下划线组成。

productName storeCity storeProvince procuctCategory productBatch saleQuantity revenue

表中的列,代表执行分析所需的业务实体。

列名(字段名)由字母、数字、下划线组成。

参数 描述

table_blocksize CarbonData表使用的数据文件的block大小,默认值为 1024,最小值为1,最大值为2048,单位为MB。

如果“table_blocksize”值太小,数据加载时,生成过多的小 数据文件,可能会影响HDFS的使用性能。

如果“table_blocksize”值太大,数据查询时,索引匹配的 block数据量较大,某些block会包含较多的blocklet,导致读 取并发度不高,从而降低查询性能。

一般情况下,建议根据数据量级别来选择大小。例如:GB级 别用256,TB级别用512,PB级别用1024。

说明

● 所有Integer类型度量均以BigInt类型进行处理与显示。

● CarbonData遵循严格解析,因此任何不可解析的数据都会被保存为null。例如,在BigInt列 中加载double值(3.14),将会保存为null。

● 在Create Table中使用的Short和Long数据类型在DESCRIBE命令中分别显示为Smallint和 Bigint。

● 可以使用DESCRIBE格式化命令查看表数据大小和表索引大小。