import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.apache.avro.generic.GenericData; import org.rakam.collection.FieldType; import java.util.HashMap; import static org.rakam.util.AvroUtil.getAvroSchema; public class TestClickHouse { private Object generateSample(FieldType type) { switch (type) { case STRING: return "test"; case BINARY: return new byte[] {1}; case DECIMAL: case DOUBLE: return 1.0; case BOOLEAN: return true; case INTEGER: case DATE: case TIME: return 1; case LONG: case TIMESTAMP: return 1L; default: if (type.isArray()) { FieldType arrayElementType = type.getArrayElementType(); return new GenericData.Array(getAvroSchema(type), ImmutableList.of(generateSample(arrayElementType))); } if (type.isMap()) { return ImmutableMap.of("test", generateSample(type.getMapValueType())); } else { throw new IllegalArgumentException(); } } } }