final String sourceType = this.buildSourceType(type, size, precision); final FieldInfo.FieldInfoBuilder fieldInfo = FieldInfo.builder() .name(columns.getString("COLUMN_NAME")) .sourceType(sourceType) .type(this.typeConverter.toMetacatType(sourceType))
final String sourceType = this.buildSourceType(type, size, precision); final FieldInfo.FieldInfoBuilder fieldInfo = FieldInfo.builder() .name(columns.getString("COLUMN_NAME")) .sourceType(sourceType) .type(this.typeConverter.toMetacatType(sourceType))
private TableInfo getTableInfo( @Nonnull @NonNull final QualifiedName name, @Nonnull @NonNull final TableMetadata tableMetadata ) { final ImmutableList.Builder<FieldInfo> fieldInfoBuilder = ImmutableList.builder(); // TODO: Ignores clustering, primary key, index, etc columns. We need to rework TableInfo to support for (final ColumnMetadata column : tableMetadata.getColumns()) { final String dataType = column.getType().toString(); fieldInfoBuilder.add( FieldInfo.builder() .name(column.getName()) .sourceType(dataType) .type(this.typeConverter.toMetacatType(dataType)) .build() ); } return TableInfo.builder() .name(QualifiedName.ofTable(name.getCatalogName(), name.getDatabaseName(), tableMetadata.getName())) .fields(fieldInfoBuilder.build()) .build(); } }
/** * Convert from data source to partitionInfo. * * @param dataSource dataSource object * @return table info object */ public TableInfo getTableInfoFromDatasource(final DataSource dataSource) { final List<Segment> segmentList = dataSource.getSegmentList(); final Segment latestSegment = segmentList.get(segmentList.size() - 1); final List<FieldInfo> fieldInfos = new ArrayList<>(); for (String dim : latestSegment.getDimensions().split(",")) { fieldInfos.add(FieldInfo.builder() .comment(DruidConfigConstants.DIMENSIONS) .name(dim) .type(BaseType.STRING) .build()); } for (String dim : latestSegment.getMetric().split(",")) { fieldInfos.add(FieldInfo.builder() .comment(DruidConfigConstants.METRICS) .name(dim) .type(BaseType.DOUBLE) .build()); } return TableInfo.builder().fields(fieldInfos) .name(QualifiedName.ofTable(catalogName, DruidConfigConstants.DRUID_DB, dataSource.getName())) .build(); }
private TableInfo getTableInfo( @Nonnull @NonNull final QualifiedName name, @Nonnull @NonNull final TableMetadata tableMetadata ) { final ImmutableList.Builder<FieldInfo> fieldInfoBuilder = ImmutableList.builder(); // TODO: Ignores clustering, primary key, index, etc columns. We need to rework TableInfo to support for (final ColumnMetadata column : tableMetadata.getColumns()) { final String dataType = column.getType().toString(); fieldInfoBuilder.add( FieldInfo.builder() .name(column.getName()) .sourceType(dataType) .type(this.typeConverter.toMetacatType(dataType)) .build() ); } return TableInfo.builder() .name(QualifiedName.ofTable(name.getCatalogName(), name.getDatabaseName(), tableMetadata.getName())) .fields(fieldInfoBuilder.build()) .build(); } }
/** * hiveToMetacatField. * * @param field field * @param isPartitionKey boolean * @return field info obj */ private FieldInfo hiveToMetacatField(final FieldSchema field, final boolean isPartitionKey) { return FieldInfo.builder().name(field.getName()) .type(hiveTypeConverter.toMetacatType(field.getType())) .sourceType(field.getType()) .comment(field.getComment()) .partitionKey(isPartitionKey) .build(); }
/** * hiveToMetacatField. * * @param field field * @param isPartitionKey boolean * @return field info obj */ private FieldInfo hiveToMetacatField(final FieldSchema field, final boolean isPartitionKey) { return FieldInfo.builder().name(field.getName()) .type(hiveTypeConverter.toMetacatType(field.getType())) .sourceType(field.getType()) .comment(field.getComment()) .partitionKey(isPartitionKey) .build(); }
/** * Converts from column metadata to field. * @param field column * @return field info */ public FieldInfo toFieldInfo(final Field field) { return FieldInfo.builder().name(field.getName()).partitionKey(field.isPartitionKey()) .comment(field.getComment()).sourceType(field.getSourceType()).type(toType(field.getType())).build(); }