表T1有列-app_id、start_time、end_time、value。我们有多个应用程序,希望通过app_id和start_time(每周分区)对表进行分区。这就是子分区应该看起来像的样子
T1_part1_2018
app_id start_time end_time value
1 10-10-2018 10-11-2018 garbage
T2_part2_2018
app_id start_time end_time value
2 10-10-2018 10-11-2018 garbage
T1_part1_2019
app_id start_time end_time value
1 10-10-2019 10-11-2019 garbage
T2_part2_2019
app_id start_time end_time value
2 10-10-2019 10-11-2019 garbage
我该如何完成这项工作?
我认为您正在寻找的是子分区机制:
- https://www.postgresql.org/docs/current/ddl-partitioning.html
- https://blog.dbi-services.com/postgresql-partitioning-8-sub-partitioning/
哪个分区必须是另一个分区的母亲也完全取决于您的需求:如果您从不需要请求多个app_id的数据,我建议将app_id作为母亲分区键。
编辑:这是pg_partman扩展项目页面:https://pgxn.org/dist/pg_partman/doc/pg_partman.html