Difference between revisions of "Table Partitioning"
| Line 67: | Line 67: | ||
A schedule process called '''Create/Update Table Partitions''' is created to run the '''Create/update partition''' process daily. | A schedule process called '''Create/Update Table Partitions''' is created to run the '''Create/update partition''' process daily. | ||
[[File:Table Partitioning Scheduler.png|none|thumb|800x800px]] | [[File:Table Partitioning Scheduler.png|none|thumb|800x800px]] | ||
| + | |||
| + | == Future enhancement == | ||
| + | Implement second partition key column as sub-partition of first partition key column. | ||
| + | |||
| + | For e.g: | ||
| + | * Set C_Order as Partition table | ||
| + | * Set C_Order.AD_Client_ID as Partition Key Column with sequence of 10 and Partition Method of List | ||
| + | * Set C_Order.Created as Partition Key Column with sequence of 20 and Partition Method of Range | ||
| + | * With this configuration, C_Order.AD_Client_ID is the first List partition and C_Order.Created is the Range sub-partition of the C_Order.AD_Client_ID partition | ||
Revision as of 17:59, 16 December 2023
Feature: Table Partitioning Support
Goal: Technical
Developers: Hengsin, Elaine Tan
Feature Ticket: IDEMPIERE-5943
Description: Table partitioning support for PostgreSQL and Oracle
- Support partition by List and Range
- Support partition of new and existing table
- Support moving of data and constraints from existing table to partitioned table (For PostgreSQL only)
- Support auto addition of new partition through scheduled process
Not cover:
- List/range partitioning for more than one partition key
- Sub-partition
Configuration
Configure the partition information at Table and Column window
Table
- Partition: Indicates this is a partitioned table
- Create/update partition: Process which create or update table partitions based on the information in the table and column records
Column
- Partition Key: Indicates this is a partition key
- Partition Key Sequence: Indicates the order of the partition keys where the lowest number comes first
- Partitioning Method: Indicates how the Table is partitioned (List or Range)
- List partitioning - The data distribution is defined by a discrete list of values
- Range Partitioning - The data is distributed based on a range of values
- Range Partition Interval: Indicates the interval used in a range partitioning (date or number)
- Examples of date intervals: 1 year; 6 months;
- Examples of number intervals: 5000; 100000;
Execution of the process
The process can be called from the Table and Column window or Menu
Table and Column window
The process can be called from the Create/update partition button on the Table and Column window.
Menu
The process can be called from the Create/Update Table Partition menu item. The Partitioning Method and Table Name parameters are optional. By default, the process will execute the process for all partitioned table records (i.e. Table > Partition = Yes)
- Partitioning Method: The partitioning method of the table
- Table Name: This is a table name, or a LIKE clause (e.g. AD_%)
View the table partition info
Read-only. Capture the database partition info from the database to the Table Partition table (i.e. AD_TablePartition). Each Table Partition record represents an actual database partition
- Name: The name of the partition
- Expression: SQL clause of the partition
Auto addition of new partition
A schedule process called Create/Update Table Partitions is created to run the Create/update partition process daily.
Future enhancement
Implement second partition key column as sub-partition of first partition key column.
For e.g:
- Set C_Order as Partition table
- Set C_Order.AD_Client_ID as Partition Key Column with sequence of 10 and Partition Method of List
- Set C_Order.Created as Partition Key Column with sequence of 20 and Partition Method of Range
- With this configuration, C_Order.AD_Client_ID is the first List partition and C_Order.Created is the Range sub-partition of the C_Order.AD_Client_ID partition
