arekusuri commented on a change in pull request #2722: GOBBLIN-865: Add feature that enables PK-chunking in partition URL: https://github.com/apache/incubator-gobblin/pull/2722#discussion_r319713269
########## File path: gobblin-salesforce/src/main/java/org/apache/gobblin/salesforce/SalesforceSource.java ########## @@ -146,6 +156,95 @@ protected void addLineageSourceInfo(SourceState sourceState, SourceEntity entity @Override protected List<WorkUnit> generateWorkUnits(SourceEntity sourceEntity, SourceState state, long previousWatermark) { + String partitionType = state.getProp(PARTITION_TYPE, "PK_CHUNKING"); + if (partitionType.equals("PK_CHUNKING")) { + return generateWorkUnitsPkChunking(sourceEntity, state, previousWatermark); + } else { + return generateWorkUnitsStrategy(sourceEntity, state, previousWatermark); + } + } + + /** + * generate workUnit with noQuery=true + */ + private List<WorkUnit> generateWorkUnitsPkChunking(SourceEntity sourceEntity, SourceState state, long previousWatermark) { + List<SalesforceExtractor.BatchIdAndResultId> batchIdAndResultIds = executeQueryWithPkChunking(state, previousWatermark); + List<WorkUnit> ret = createWorkUnits(sourceEntity, state, batchIdAndResultIds); + return ret; + } + + private List<SalesforceExtractor.BatchIdAndResultId> executeQueryWithPkChunking( + SourceState sourceState, + long previousWatermark + ) throws RuntimeException { + Properties commonProperties = sourceState.getCommonProperties(); + Properties specProperties = sourceState.getSpecProperties(); + State state = new State(); + state.setProps(commonProperties, specProperties); + WorkUnit workUnit = WorkUnit.createEmpty(); + try { + WorkUnitState workUnitState = new WorkUnitState(workUnit, state); + workUnitState.setId("test" + new Random().nextInt()); + workUnitState.setProp(ENABLE_PK_CHUNKING_KEY, true); // set extractor enable pk chunking + int chunkSize = workUnitState.getPropAsInt(PARTITION_PK_CHUNKING_SIZE, DEFAULT_PK_CHUNKING_SIZE); Review comment: I was thinking we may want to keep 2nd level PK-chunking and better have different property for them. As we discussed, we don't 2nd level PK-chunking doesn't make sense. Will remove this property. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services