接上篇《构建一个完整的数据仓库(八)doris入门使用jdbc查询数据》。上一篇我们完成了如何创建表,查询数据等信息。今天我们来了解下doris支持哪些数据结构。
我们知道在mysql里面,他支持一些数据结构,例如:int,bigint,varchar,text等等。同样的doris也有自己支持的数据结构。今天我们就来介绍下doris支持哪些数据结构。
序号 | 数据类型 | 数据类型说明 |
1 | BIGINT | 8字节有符号整数,范围[-9223372036854775808, 9223372036854775807] |
2 | BITMAP | BITMAP不能作为key列使用,建表时配合聚合类型为BITMAP_UNION。 用户不需要指定长度和默认值。长度根据数据的聚合程度系统内控制。 并且BITMAP列只能通过配套的bitmap_union_count、bitmap_union、bitmap_hash等函数进行查询或使用。 离线场景下使用BITMAP会影响导入速度,在数据量大的情况下查询速度会慢于HLL,并优于Count Distinct。 注意:实时场景下BITMAP如果不使用全局字典,使用了bitmap_hash()可能会导致有千分之一左右的误差。 |
3 | BOOLEAN | 与TINYINT一样,0代表false,1代表true |
4 | CHAR | CHAR(M)定长字符串,M代表的是定长字符串的长度。M的范围是1-255 |
5 | DATE | 日期类型,目前的取值范围是['0000-01-01', '9999-12-31'], 默认的打印形式是'YYYY-MM-DD' |
6 | DATETIME | 日期时间类型,取值范围是['0000-01-01 00:00:00', '9999-12-31 23:59:59']. 打印的形式是'YYYY-MM-DD HH:MM:SS' |
7 | DECIMAL | DECIMAL(M[,D])高精度定点数,M代表一共有多少个有效数字(precision),D代表小数点后最多有多少数字(scale)M的范围是[1,27], D的范围[1, 9], 另外,M必须要大于等于D的取值。默认的D取值为0 |
8 | DOUBLE | 8字节浮点数 |
9 | FLOAT | 4字节浮点数 |
10 | HLL | HLL HLL不能作为key列使用,建表时配合聚合类型为HLL_UNION。 用户不需要指定长度和默认值。长度根据数据的聚合程度系统内控制。 并且HLL列只能通过配套的hll_union_agg、hll_raw_agg、hll_cardinality、hll_hash进行查询或使用。 HLL是模糊去重,在数据量大的情况性能优于Count Distinct。 HLL的误差通常在1%左右,有时会达到2%。 |
11 | INT | 4字节有符号整数,范围[-2147483648, 2147483647] |
12 | LARGEINT | 16字节有符号整数,范围[-2^127 + 1 ~ 2^127 - 1] |
13 | SMALLINT | 2字节有符号整数,范围[-32768, 32767] |
14 | STRING | STRING 变长字符串,最大支持2147483643 字节(2GB-4)。String类型的长度还受 be 配置 `string_type_soft_limit`, 实际能存储的最大长度 取两者最小值,String类型只能用在value 列,不能用在 key 列和分区 分桶列 注意:变长字符串是以UTF-8编码存储的,因此通常英文字符占1个字节,中文字符占3个字节。 |
15 | TINYINT | 1字节有符号整数,范围[-128, 127] |
16 | VARCHAR | VARCHAR(M) 变长字符串,M代表的是变长字符串的字节长度。M的范围是1-65533。 注意:变长字符串是以UTF-8编码存储的,因此通常英文字符占1个字节,中文字符占3个字节。 |
上诉就是doris目前支持的数据结构,在创建表的时候,我们能看到和mysql不一样,除了varchar,decimal,char类型,其他类型在创建的时候都不需要知道对应的长度。这点和mysql不太一样,在创建表的时候一定要注意下。
还没有评论,来说两句吧...