• Apache Doris支持的数据类型详解


    1. TINYINT

    1字节有符号整数,范围:[-128, 127]

    2. SMALLINT

    2字节有符号整数,范围:[-32768, 32767]

    3. INT

    4字节有符号整数,范围:[-2147483648, 2147483647]

    4. BIGINT

    8字节有符号整数,范围:[-9223372036854775808, 9223372036854775807]

    5. LARGEINT

    16字节有符号整数,范围:[-2^127 + 1 ~ 2^127 - 1]

    6. FLOAT

    4字节浮点数

    7. DOUBLE

    8字节浮点数

    8. DECIMAL

    格式:DECIMAL(M[,D])。默认为DECIMAL(9, 0)

    16字节高精度定点数,M 代表一共有多少个有效数字(precision,范围1 ~ 27),D 代表小数位有多少个数字(scale,范围0 ~ 9)。所以整数位数字个数的范围是1 ~ 18

    9. BOOLEAN

    与TINYINT一样,0代表false,1代表true

    10. CHAR

    语法:CHAR(M)。默认是CHAR(1)

    定长字符串,M代表的是定长字符串的长度。M的范围是1-255

    11. VARCHAR(M)

    变长字符串,M代表的是变长字符串的字节长度。M的范围是1-65533

    变长字符串是以UTF-8编码存储的,因此英文字符占1个字节,中文字符占3个字节

    12. STRING

    变长字符串,最大支持2147483643字节(2GB-4)。String类型的长度还受BE配置参数 string_type_soft_limit的影响, 实际能存储的最大长度取两者最小值

    String类型只能用在value列,不能用在key列和分区分桶列

    变长字符串是以UTF-8编码存储的,因此英文字符占1个字节,中文字符占3个字节

    13. DATE

    DATE类型:3字节,取值范围是:[‘0000-01-01’, ‘9999-12-31’], 默认的打印形式是’YYYY-MM-DD’

    DATE函数:语法是:DATE(expr),表示将输入的类型转化为DATE类型。例如:SELECT DATE('2022-08-01 10:02:03');

    14. DATETIME

    3字节,日期时间类型,取值范围是:[‘0000-01-01 00:00:00’, ‘9999-12-31 23:59:59’],打印的形式是’YYYY-MM-DD HH:MM:SS’

    15. BITMAP

    是整型的集合,元素最大支持到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
    • 2
    • 3
    • 4
    • 5
    • 6

    16. HLL(HyperLogLog)

    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    1 Supervised Machine Learning Regression and Classification
    如何制作一个英语单词二维码?
    深入理解 Spring 事务:入门、使用、原理
    前端铺子-uniapp移动端:跨平台开发新篇章
    JVM-五大区
    mongodb使用简单文档
    RocketMQ
    PHP数组处理$arr1转换为$arr2
    SpringCloud 微服务全栈体系(四)
    AI播客下载:The TWIML AI Podcast (机器学习与人工智能周刊)
  • 原文地址:https://blog.csdn.net/yy8623977/article/details/126095143