1字节有符号整数,范围:[-128, 127]
2字节有符号整数,范围:[-32768, 32767]
4字节有符号整数,范围:[-2147483648, 2147483647]
8字节有符号整数,范围:[-9223372036854775808, 9223372036854775807]
16字节有符号整数,范围:[-2^127 + 1 ~ 2^127 - 1]
4字节浮点数
8字节浮点数
格式:DECIMAL(M[,D])。默认为DECIMAL(9, 0)
16字节高精度定点数,M 代表一共有多少个有效数字(precision,范围1 ~ 27),D 代表小数位有多少个数字(scale,范围0 ~ 9)。所以整数位数字个数的范围是1 ~ 18
与TINYINT一样,0代表false,1代表true
语法:CHAR(M)。默认是CHAR(1)
定长字符串,M代表的是定长字符串的长度。M的范围是1-255
变长字符串,M代表的是变长字符串的字节长度。M的范围是1-65533
变长字符串是以UTF-8编码存储的,因此英文字符占1个字节,中文字符占3个字节
变长字符串,最大支持2147483643字节(2GB-4)。String类型的长度还受BE配置参数 string_type_soft_limit
的影响, 实际能存储的最大长度取两者最小值
String类型只能用在value列,不能用在key列和分区分桶列
变长字符串是以UTF-8编码存储的,因此英文字符占1个字节,中文字符占3个字节
DATE类型:3字节,取值范围是:[‘0000-01-01’, ‘9999-12-31’], 默认的打印形式是’YYYY-MM-DD’
DATE函数:语法是:DATE(expr),表示将输入的类型转化为DATE类型。例如:SELECT DATE('2022-08-01 10:02:03');
3字节,日期时间类型,取值范围是:[‘0000-01-01 00:00:00’, ‘9999-12-31 23:59:59’],打印的形式是’YYYY-MM-DD HH:MM:SS’
是整型的集合,元素最大支持到2^64 - 1。BITMAP不能作为key列使用,建表时配合聚合类型为BITMAP_UNION。用户不需要指定长度和默认值。长度根据数据的聚合程度系统内控制
并且BITMAP列只能通过配套的bitmap_union_count、bitmap_union、bitmap_hash等函数进行查询或使用
离线场景下使用BITMAP会影响导入速度,在数据量大的情况下查询速度会慢于HLL,并优于Count Distinct
实时场景下BITMAP如果不使用全局字典,使用了bitmap_hash()可能会导致有千分之一左右的误差
查询示例:
select hour, BITMAP_UNION_COUNT(pv) over(order by hour) uv from(
select hour, BITMAP_UNION(device_id) as pv
from metric_table -- 查询每小时的累计UV
where datekey=20220801
group by hour order by 1
) final;
1~16385 个字节。HLL不能作为key列使用,建表时配合聚合类型为HLL_UNION。用户不需要指定长度和默认值。长度根据数据的聚合程度系统内控制
并且HLL列只能通过配套的hll_union_agg、hll_raw_agg、hll_cardinality、hll_hash进行查询或使用
HLL是模糊去重,在数据量大的情况性能优于Count Distinct。HLL的误差通常在1%左右,有时会达到2%
查询示例:
select hour, HLL_UNION_AGG(pv) over(order by hour) uv from(
select hour, HLL_RAW_AGG(device_id) as pv
from metric_table -- 查询每小时的累计UV
where datekey=20220801
group by hour order by 1
) final;