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"
);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM