• Apache Doris 动态分区使用示例


    Apache Doris 动态分区使用示例

    一、Doris分区概述

    在某些使用场景下,用户会将表按照天进行分区划分,每天定时执行例行任务,这时需要使用方手动管理分区,否则可能由于使用方没有创建分区导致数据导入失败,这给使用方带来了额外的维护成本。

    通过动态分区功能,用户可以在建表时设定动态分区的规则。FE 会启动一个后台线程,根据用户指定的规则创建或删除分区。用户也可以在运行时对现有规则进行变更。动态分区数默认最大500(参数max_dynamic_partition_num (fe.conf))

    Doris分区官方手册:https://doris.apache.org/master/zh-CN/administrator-guide/dynamic-partition.html

    一、动态分区创建示例

    DROP TABLE IF EXISTS  test_dynamic_partition;
    CREATE TABLE test_dynamic_partition (
      partition_key int(11) NOT NULL COMMENT '分区键',
      app_code varchar(64) NOT NULL COMMENT '应用编码',
      app_name varchar(255) NULL COMMENT '应用名称'
    ) 
    ENGINE=OLAP 
    DUPLICATE KEY(partition_key,app_code,app_name) 
    COMMENT '动态分区示例'
    PARTITION BY RANGE(partition_key) ()
    DISTRIBUTED BY HASH(partition_key)
    PROPERTIES
    (
    	"dynamic_partition.create_history_partition" = "true",
    	"dynamic_partition.history_partition_num" = "3",
        "dynamic_partition.enable" = "true",
        "dynamic_partition.time_unit" = "DAY",
        "dynamic_partition.start" = "-400",
        "dynamic_partition.end" = "3",
        "dynamic_partition.prefix" = "p",
        "dynamic_partition.buckets" = "1"
    );
    

    二、分区信息查看和修改

    #查看动态分区表调度情况
    SHOW DYNAMIC PARTITION TABLES;
    
    #展示指定db下指定表的所有非临时分区信息
    SHOW PARTITIONS FROM test_dynamic_partition;
    
    #修改分区参数
    ALTER TABLE test_dynamic_partition
    SET ("dynamic_partition.end" = "4");
    
    #清空表 tbl 的 p20211101 和 p20211102 分区
    TRUNCATE TABLE tbl PARTITION(p20211101, p20211102);
    
    #修改单分区表的实际副本数量(只限单分区表):
    ALTER TABLE example_db.my_table
    SET ("replication_num" = "3");
    
    #修改表的所有分区:
    ALTER TABLE example_db.my_table
    MODIFY PARTITION(*)
    SET ("replication_num" = "3");
    
    ALTER TABLE example_db.my_table
    MODIFY PARTITION (*) SET("storage_medium"="HDD");
    
    
    #修改表的动态分区属性(支持未添加动态分区属性的表添加动态分区属性)
    ALTER TABLE example_db.my_table set ("dynamic_partition.enable" = "false");
    
    #如果需要在未添加动态分区属性的表中添加动态分区属性,则需要指定所有的动态分区属性
    ALTER TABLE example_db.my_table set (
        "dynamic_partition.enable" = "true", 
        "dynamic_partition.time_unit" = "DAY", 
        "dynamic_partition.end" = "3", 
        "dynamic_partition.prefix" = "p", 
        "dynamic_partition.buckets" = "32"
    );
    
  • 相关阅读:
    Android开发学习之路-使用Handler和Message更新UI
    Android开发学习之路-Service和Activity的通信
    Android开发学习之路-自定义ListView(继承BaseAdapter)
    URI、URL、URN
    理解 node.js 的事件循环
    创建hexo风格的markdown页面
    heroku
    js通过沿着作用域链还是原型链查找变量
    浏览器中实现3D全景浏览
    数据可视化图表ECharts
  • 原文地址:https://www.cnblogs.com/huligong1234/p/15521287.html
Copyright © 2020-2023  润新知