public DruidRecordWriter(DataSchema dataSchema,
RealtimeTuningConfig realtimeTuningConfig,
DataSegmentPusher dataSegmentPusher,
int maxPartitionSize,
final Path segmentsDescriptorsDir,
final FileSystem fileSystem) {
File basePersistDir = new File(realtimeTuningConfig.getBasePersistDirectory(), UUID.randomUUID().toString());
this.tuningConfig =
Preconditions.checkNotNull(realtimeTuningConfig.withBasePersistDirectory(basePersistDir),
"realtimeTuningConfig is null");
this.dataSchema = Preconditions.checkNotNull(dataSchema, "data schema is null");
appenderator =
Appenderators.createOffline(this.dataSchema,
tuningConfig,
new FireDepartmentMetrics(),
dataSegmentPusher,
DruidStorageHandlerUtils.JSON_MAPPER,
DruidStorageHandlerUtils.INDEX_IO,
DruidStorageHandlerUtils.INDEX_MERGER_V9);
this.maxPartitionSize = maxPartitionSize;
appenderator.startJob();
this.segmentsDescriptorDir = Preconditions.checkNotNull(segmentsDescriptorsDir, "segmentsDescriptorsDir is null");
this.fileSystem = Preconditions.checkNotNull(fileSystem, "file system is null");
this.segmentGranularity = this.dataSchema.getGranularitySpec().getSegmentGranularity();
committerSupplier = Suppliers.ofInstance(Committers.nil())::get;
}