vishal
03/17/2023, 7:14 AMsaurabh dubey
03/17/2023, 7:24 AMPinotSegmentRecordReader to do so
PinotSegmentRecordReader segmentRecordReader = new PinotSegmentRecordReader(mySegment);
GenericRow row = new GenericRow();
while (segmentRecordReader.hasNext()) {
row = segmentRecordReader.next(row);
<logic to dump row into csv here>
row.clear();
}
There might be some caveats around sort order, null values etc which you might have to be careful about. The record reader's options allow for those thingssaurabh dubey
03/17/2023, 7:25 AMvishal
03/17/2023, 7:25 AMsaurabh dubey
03/17/2023, 7:26 AMvishal
03/17/2023, 7:26 AMsaurabh dubey
03/17/2023, 7:29 AMMergeRollupTaskExecutor . It should be possible to write and plug your own custom minion tasksaurabh dubey
03/17/2023, 7:33 AMPinotSegmentRecordReader, and use the SegmentProcessorFramework and the config can be used to specify setMaxNumRecordsPerSegment to effectively achive 1 -> N segments. Then they can be replaced atomically using the segmentReplacevishal
03/17/2023, 8:52 AMvishal
03/17/2023, 8:57 AMPinotSegmentRecordReader segmentRecordReader = new PinotSegmentRecordReader(mySegment);
GenericRow row = new GenericRow();
while (segmentRecordReader.hasNext()) {
row = segmentRecordReader.next(row);
<logic to dump row into csv here>
row.clear();
}
do i need to write this code in pinot code?saurabh dubey
03/17/2023, 9:38 AMvishal
03/17/2023, 9:46 AMMayank