WingsGo opened a new issue #2262: [Proposal] Support Dynamic Partition in Doris URL: https://github.com/apache/incubator-doris/issues/2262 ## Background: In some scenarios, when a user creates an Olap table that is range partition by time, the user needs to periodically add and remove partitions to ensure that the data is valid. As a result, adding and removing partitions dynamically can be very useful for users. ## How to Use When create a Olap Table in Doris, users can specify following properties: | Properties | Instructions | Value | | :-----| :----: | :----: | | dynamic_partition.window_timeunit | Dynamic partition units for olap tables | day/week/month | | dynamic_partition.window_end | Dynamic partition end location for olap tables | Integer | | dynamic_partition.template | The prefix partition name template | String | | dynamic_partition.buckets | The number of buckets in a partition | Integer | For example ``` CREATE TABLE `dynamic_partition` ( `olap_date` date NULL COMMENT "", `event_name` varchar(256) NULL COMMENT "", `distinct_id` varchar(36) NULL COMMENT "", `content` varchar(256) NULL COMMENT "" ) ENGINE=OLAP DUPLICATE KEY(`olap_date`, `event_name`, `distinct_id`) PARTITION BY RANGE(`olap_date`) (PARTITION p20191120 VALUES LESS THAN ("2019-11-21"), PARTITION p20191121 VALUES LESS THAN ("2019-11-22")) DISTRIBUTED BY HASH(`distinct_id`) BUCKETS 100 PROPERTIES ( "storage_type" = "COLUMN", "dynamic_partition.timeunit" = "day", "dynamic_partition.end" = 3, "dynamic_partition.format" = "p", "dynamic_partition.buckets" = "100" ); ``` In the example, the user specifies the automatically add partition units of time, and the number of partitions to be created in advance.dynamic_partition.format specifies the prefix of partition name, in this case, take 2019-11-21 as an example, a three-day partition named p20191122, p20191123 and p20191124 will be created in advance, and the number of buckets for each partition will be 100. ## How to realize 1. When create table, FE parse these properties, check if these properties are valid and persistents them to metadata. 2. Once FE starts, create a daemon called DynamicPartitionTask to check all tables properties if they have dynamic_partition property, if the dynamic_partition property is set, FE execute DDL stmt to add partitions. 3. User can set how often the daemon thread execute in fe.conf with key `dynamic_partition_check_interval_seconds`, the default value is 600.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org