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:

Copy
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 KeypartitionAggregationEnabled

    Valuetrue

  • To assign the rule to the source, add the following:

    Attribute KeypartitionMode

    Valuetrue

  • To use SQL statements or stored procedures for aggregation, add the following:

    Attribute KeypartitionStatements

    Value – 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 partitioningStatements instead of a SQL query, you must add the following attribute key as well:

    Attribute KeyuseStoredProcedurePartition

    Valuetrue

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.