MonetDB : Partitioning Data by Time Intervals



我使用MonetDB的时间序列数据。我想按时间间隔(例如按天)对表进行分区。因此,每个分区将包含特定日期的数据。理想情况下,这将加快查询运行时。

从文档中,我可以看到MonetDB提供分区作为一个功能,但我不知道如何实现它,我尝试过例如:PARTITION BY DAY,这是由其他系统实现的,但没有工作。

如何在MonetDB中使用固定的时间段间隔对表进行分区?

在MonetDB中没有PARTITION BY DAY。但是你能做的是

CREATE MERGE TABLE merge_table (d DATE) PARTITION BY VALUES USING (d);
CREATE TABLE part_table_30_05_30(d DATE);
CREATE TABLE part_table_30_05_31(d DATE);

ALTER TABLE merge_table ADD TABLE part_table_30_05_30 AS PARTITION IN ('2022-05-30');
ALTER TABLE merge_table ADD TABLE part_table_30_05_31 AS PARTITION IN ('2022-05-31');
INSERT INTO merge_table VALUES ('2022-05-31');
SELECT * FROM merge_table;
+------------+
| d          |
+============+
| 2022-05-31 |
+------------+
1 tuple
SELECT * FROM part_table_30_05_31;
+------------+
| d          |
+============+
| 2022-05-31 |
+------------+
1 tuple
SELECT * FROM part_table_30_05_30;
+---+
| d |
+===+
+---+
0 tuples

最新更新