/**
* Copyright (C) 2014-2016 LinkedIn Corp. (pinot-core@linkedin.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.linkedin.pinot.server.util;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import com.linkedin.pinot.common.data.Schema;
import com.linkedin.pinot.core.data.readers.FileFormat;
import com.linkedin.pinot.core.indexsegment.generator.SegmentGeneratorConfig;
import com.linkedin.pinot.core.indexsegment.generator.SegmentVersion;
import com.linkedin.pinot.core.indexsegment.utils.AvroUtils;
public class SegmentTestUtils {
public static SegmentGeneratorConfig getSegmentGenSpecWithSchemAndProjectedColumns(File inputAvro, File outputDir,
TimeUnit timeUnit, String clusterName, Schema inputPinotSchema) throws IOException {
Schema schema;
if (inputPinotSchema == null) {
schema = AvroUtils.extractSchemaFromAvro(inputAvro);
} else {
schema = inputPinotSchema;
}
SegmentGeneratorConfig segmentGenSpec = new SegmentGeneratorConfig(schema);
segmentGenSpec.setInputFilePath(inputAvro.getAbsolutePath());
segmentGenSpec.setSegmentTimeUnit(timeUnit);
if (inputAvro.getName().endsWith("gz")) {
segmentGenSpec.setFormat(FileFormat.GZIPPED_AVRO);
} else {
segmentGenSpec.setFormat(FileFormat.AVRO);
}
segmentGenSpec.setSegmentVersion(SegmentVersion.v1);
segmentGenSpec.setTableName(clusterName);
segmentGenSpec.setOutDir(outputDir.getAbsolutePath());
return segmentGenSpec;
}
}