Partitioning Aggregation
The JDBC connector supports the manual partitioning through configured SQL statements.
For example, if there is an employee dataset that has 100,000 rows with a sequential employeeId field, the partitioning statements that can be used are as follows:
select x,y,z from a where employeeId <= 10000;
select x,y,z from a where employeeId > 10000 AND employeeId <= 20000;
select x,y,z from a where employeeId > 20000 AND employeeId < =30000;
…
select x,y,z from a where employeeId > 90000;
The above example has 10 partitions, handling approximately 10,000 accounts. The last row (with employeeId > 90000) handles a larger number of accounts depending on the total number of employees in the system.
Note
An additional aggregation option, noAttributePromotion, has been added. If this attribute is set to true, the attribute promotion is skipped during aggregation.
To enable partitioning, add the following attribute key-value pairs into the source XML using the REST API.
-
To trigger a specific operation rule, add the following:
Attribute Key –
partitionAggregationEnabledValue –
true -
To assign the rule to the source, add the following:
Attribute Key –
partitionModeValue –
true -
To use SQL statements or stored procedures for aggregation, add the following:
Attribute Key –
partitionStatementsValue – Enter either of the following:
-
SQL query
For example:
select x,y,z from a where employeeId <= 10000;
-
Stored procedure
For example:
EXEC emp ;
Important
To use a stored procedure with the
partitioningStatementsinstead of a SQL query, you must add the following attribute key as well:Attribute Key –
useStoredProcedurePartitionValue –
true -
Note
For more information on SailPoint's REST APIs, refer to Best Practices: REST API Authentication and REST API - Update Source (Partial) in the SailPoint Developer Community.