Support configure Ssystem log table's ttl in config.xml

This commit is contained in:
felixxdu 2020-11-26 17:37:42 +08:00
parent 747453b008
commit 4cc6594cb8
2 changed files with 6 additions and 0 deletions

View File

@ -589,6 +589,9 @@
toStartOfHour(event_time) toStartOfHour(event_time)
--> -->
<partition_by>toYYYYMM(event_date)</partition_by> <partition_by>toYYYYMM(event_date)</partition_by>
<!-- How many days data would be kept. It works only when this option is opened and is set greater than 0.
-->
<ttl>30</ttl>
<!-- Instead of partition_by, you can provide full engine expression (starting with ENGINE = ) with parameters, <!-- Instead of partition_by, you can provide full engine expression (starting with ENGINE = ) with parameters,
Example: <engine>ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY (event_date, event_time) SETTINGS index_granularity = 1024</engine> Example: <engine>ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY (event_date, event_time) SETTINGS index_granularity = 1024</engine>

View File

@ -65,6 +65,9 @@ std::shared_ptr<TSystemLog> createSystemLog(
engine = "ENGINE = MergeTree"; engine = "ENGINE = MergeTree";
if (!partition_by.empty()) if (!partition_by.empty())
engine += " PARTITION BY (" + partition_by + ")"; engine += " PARTITION BY (" + partition_by + ")";
int ttl = config.getInt(config_prefix + ".ttl", 0);
if (ttl > 0)
engine += " TTL event_date + INTERVAL " + toString(ttl) + " DAY DELETE ";
engine += " ORDER BY (event_date, event_time)"; engine += " ORDER BY (event_date, event_time)";
} }