• doris 动态分区


    添加分区
    ALTER TABLE v2x_olap_database.government_car
    ADD PARTITION p20221203 VALUES LESS THAN ("2022-12-04");
    
    • 1
    • 2

    动态分区表不能添加分区,需要转为手动分区表
    在这里插入图片描述

    查看分区
    show partitions from <表名>
    
    • 1
    删除分区
    alter table <表名>
    drop partition <分区名>
    
    • 1
    • 2

    https://doris.apache.org/zh-CN/docs/advanced/partition/dynamic-partition

    CREATE TABLE IF NOT EXISTS v2x_olap_database.government_car
    (
        `temId` VARCHAR(20) COMMENT "mac",
        `tehNo` VARCHAR(20) COMMENT "手机号",
        `speed` FLOAT COMMENT "速度",
        `dayMileage` FLOAT COMMENT "里程数",
        `gpsTime` BIGINT COMMENT "时间戳",
        `status` VARCHAR(10) COMMENT "状态",
        `direction` INT COMMENT "方向",
        `k1` INT COMMENT "洒水状态",
        `longitude` DOUBLE COMMENT "经度",
    	  `latitude` DOUBLE COMMENT "纬度",
    	  `eventTime` VARCHAR(30) COMMENT "时间",
    	  `dt` date COMMENT "日期"
    )
    PARTITION BY RANGE(`dt`)()
    DISTRIBUTED BY HASH(`temId`) BUCKETS 10
    PROPERTIES (
    	"replication_allocation" = "tag.location.default: 3", -- 设置副本数
    	"dynamic_partition.enable" = "true",
        "dynamic_partition.time_unit" = "DAY",
        "dynamic_partition.end" = "3",
        "dynamic_partition.prefix" = "p",  -- p20221129
        "dynamic_partition.buckets" = "10"	
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • dynamic_partition.enable: 是否开启动态分区特性,可指定为 truefalse。默认为 true
    • dynamic_partition.time_unit: 动态分区调度的单位,可指定为 DAY WEEK MONTH,当指定为 DAY时,动态创建的分区名后缀格式为yyyyMMdd,例如- - 20200325。当指定为 WEEK 时,动态创建的分区名后缀格式为yyyy_ww即当前日期属于这一年的第几周。当指定为 MONTH 时,动态创建的分区名后缀格式为 yyyyMM,例如 202003
    • dynamic_partition.start: 动态分区的开始时间, 以当天为基准,超过该时间范围的分区将会被删除。如果不填写,则默认为Integer.MIN_VALUE-2147483648
    • dynamic_partition.end: 动态分区的结束时间, 以当天为基准,会提前创建N个单位的分区范围。
    • dynamic_partition.prefix: 动态创建的分区名前缀。
    • dynamic_partition.buckets: 动态创建的分区所对应的分桶数量。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    SHOW DYNAMIC PARTITION tables 查看动态分区
    在这里插入图片描述

    ### 设置启动自动分区,dynamic_partition.start 
    alter table express_car_routine_load  set ("dynamic_partition.enable" = "true", "dynamic_partition.start" = "-2147483648");
    
    • 1
    • 2

    在这里插入图片描述

    历史分区

    设置历史分区
    alter table <表名> set ("dynamic_partition.create_history_partition" = "true")
    
    • 1

    create_history_partitiontrue,即开启创建历史分区功能时,Doris 会根据 dynamic_partition.startdynamic_partition.history_partition_num 来决定创建历史分区的个数。

    假设需要创建的历史分区数量为 expect_create_partition_num,根据不同的设置具体数量如下:

    • create_history_partition = true
      1)dynamic_partition.history_partition_num 未设置,即 -1;expect_create_partition_num = end - start;
      2)dynamic_partition.history_partition_num 已设置 expect_create_partition_num = end - max(start, -histoty_partition_num);
    • create_history_partition = false 不会创建历史分区,expect_create_partition_num = end - 0;
      expect_create_partition_num 大于 max_dynamic_partition_num(默认500)时,禁止创建过多分区。

    注意:dynamic_partition.start 与 `expect_create_partition_num``如果未设置,则无法创建历史分区

    Provide start or history_partition_num property when creating history partition

    在这里插入图片描述

    dynamic_partition.start 不指定不创建历史分区
    dynamic_partition.end 通过指定预先今天以后的3个分区
    在这里插入图片描述

    手动分区表与动态分区表切换
    手动转自动
    alter table <表名> set ("dynamic_partition.enable" = "true")
    
    • 1

    注意: 如果设置了 dynamic_partition.start ,则分区范围在偏移量之前的历史分区将被删除

    自动转手动
    alter table <表名> set ("dynamic_partition.enable" = "false")
    
    • 1
  • 相关阅读:
    Linux文件及目录结构
    类和对象(中上)
    <HarmonyOS第一课>应用程序框架——闯关习题及答案
    css实现箭头
    【WinForm详细教程八】WinForm中的TreeView控件
    基于JAVA快递物流管理计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    Spring Boot 使用Knife4j
    Springboot老年人社区服务平台设计与实现x45mt计算机毕业设计-课程设计-期末作业-毕设程序代做
    Spring Boot项目开发实战:使用STS快速构建一个生产级项目
    C++ 内联函数以及类中的函数内联
  • 原文地址:https://blog.csdn.net/qq_15138049/article/details/128094871