Jackie-Jiang commented on code in PR #13837:
URL: https://github.com/apache/pinot/pull/13837#discussion_r1742484129


##########
pinot-connectors/pinot-flink-connector/src/main/java/org/apache/pinot/connector/flink/sink/FlinkSegmentWriter.java:
##########
@@ -124,12 +135,26 @@ public void init(TableConfig tableConfig, Schema schema, 
Map<String, String> bat
         "batchConfigMaps must contain only 1 BatchConfig for table: %s", 
_tableNameWithType);
 
     Map<String, String> batchConfigMap = 
_batchIngestionConfig.getBatchConfigMaps().get(0);
+    batchConfigMap.put(BatchConfigProperties.UPLOADED_REALTIME_PARTITION_ID, 
Integer.toString(_indexOfSubtask));
+    batchConfigMap.put(BatchConfigProperties.SEGMENT_UPLOAD_TIME_MS, 
String.valueOf(_segmentUploadTimeMs));
+    batchConfigMap.computeIfAbsent(
+        BatchConfigProperties.SEGMENT_NAME_GENERATOR_PROP_PREFIX + "." + 
BatchConfigProperties.SEGMENT_NAME_PREFIX,

Review Comment:
   I believe this writer is shared for both upsert and non-upsert table. It 
will be behavior change if we add `flink` prefix to non-upsert table



##########
pinot-connectors/pinot-flink-connector/src/main/java/org/apache/pinot/connector/flink/sink/FlinkSegmentWriter.java:
##########
@@ -124,12 +132,26 @@ public void init(TableConfig tableConfig, Schema schema, 
Map<String, String> bat
         "batchConfigMaps must contain only 1 BatchConfig for table: %s", 
_tableNameWithType);
 
     Map<String, String> batchConfigMap = 
_batchIngestionConfig.getBatchConfigMaps().get(0);
+    batchConfigMap.put(BatchConfigProperties.PARTITION_ID, 
Integer.toString(_indexOfSubtask));
+    batchConfigMap.put(BatchConfigProperties.SEQUENCE_ID, 
Integer.toString(_seqId));
+    batchConfigMap.put(BatchConfigProperties.SEGMENT_CREATION_TIME_MS, 
String.valueOf(_segmentCreationTimeMs));
+    batchConfigMap.put(
+        BatchConfigProperties.SEGMENT_NAME_GENERATOR_PROP_PREFIX + "." + 
BatchConfigProperties.SEGMENT_NAME_PREFIX,
+        _segmentNamePrefix);
+
+    // generate segment name for simple segment name generator type(non upsert 
tables)
     String segmentNamePostfixProp = String.format("%s.%s", 
BatchConfigProperties.SEGMENT_NAME_GENERATOR_PROP_PREFIX,
         BatchConfigProperties.SEGMENT_NAME_POSTFIX);
     String segmentSuffix = batchConfigMap.get(segmentNamePostfixProp);
     segmentSuffix = segmentSuffix == null ? String.valueOf(_indexOfSubtask) : 
segmentSuffix + "_" + _indexOfSubtask;
     batchConfigMap.put(segmentNamePostfixProp, segmentSuffix);
 
+    // For upsert tables must use the UploadedRealtimeSegmentName for right 
assignment of segments
+    if (_tableConfig.isUpsertEnabled()) {
+      batchConfigMap.put(BatchConfigProperties.SEGMENT_NAME_GENERATOR_TYPE,
+          BatchConfigProperties.SegmentNameGeneratorType.UPLOADED_REALTIME);

Review Comment:
   Consider adding a check for upsert table, and add checks under that if branch



-- 
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.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to