Package org.apache.iceberg.flink
Class FlinkSchemaUtil
java.lang.Object
org.apache.iceberg.flink.FlinkSchemaUtil
Converter between Flink types and Iceberg type. The conversion is not a 1:1 mapping that not
 allows back-and-forth conversion. So some information might get lost during the back-and-forth
 conversion.
 
This inconsistent types:
- map Iceberg UUID type to Flink BinaryType(16)
- map Flink VarCharType(_) and CharType(_) to Iceberg String type
- map Flink VarBinaryType(_) to Iceberg Binary type
- map Flink TimeType(_) to Iceberg Time type (microseconds)
- map Flink TimestampType(_) to Iceberg Timestamp without zone type (microseconds)
- map Flink LocalZonedTimestampType(_) to Iceberg Timestamp with zone type (microseconds)
- map Flink MultiSetType to Iceberg Map type(element, int)
- 
Method SummaryModifier and TypeMethodDescriptionstatic Schemaconvert(org.apache.flink.table.catalog.ResolvedSchema flinkSchema) Convert the flink table schema to apache iceberg schema with column comment.static Schemaconvert(org.apache.flink.table.legacy.api.TableSchema schema) Deprecated.static Typeconvert(org.apache.flink.table.types.logical.LogicalType flinkType) Convert aFlink typeto aType.static org.apache.flink.table.types.logical.RowTypeConvert aSchemato aFlink type.static SchemaConvert a FlinkResolvedSchemato aSchemabased on the given schema.static SchemaDeprecated.since 1.10.0, will be removed in 2.0.0.static org.apache.flink.table.types.logical.LogicalTypeConvert aTypeto aFlink type.static org.apache.flink.table.catalog.ResolvedSchematoResolvedSchema(org.apache.flink.table.types.logical.RowType rowType) Convert aRowTypeto aResolvedSchema.static org.apache.flink.table.catalog.ResolvedSchematoResolvedSchema(Schema schema) Convert aSchemato aResolvedSchema.static org.apache.flink.table.legacy.api.TableSchematoSchema(org.apache.flink.table.types.logical.RowType rowType) Deprecated.since 1.10.0, will be removed in 2.0.0.static org.apache.flink.table.legacy.api.TableSchemaDeprecated.since 1.10.0, will be removed in 2.0.0.
- 
Method Details- 
convertDeprecated.will be removed in 2.0.0; useconvert(ResolvedSchema)instead.
- 
convertConvert the flink table schema to apache iceberg schema with column comment.
- 
convert@Deprecated public static Schema convert(Schema baseSchema, org.apache.flink.table.legacy.api.TableSchema flinkSchema) Deprecated.since 1.10.0, will be removed in 2.0.0. Useconvert(Schema, ResolvedSchema)instead.Convert a FlinkTableSchemato aSchemabased on the given schema.This conversion does not assign new ids; it uses ids from the base schema. Data types, field order, and nullability will match the Flink type. This conversion may return a schema that is not compatible with base schema. - Parameters:
- baseSchema- a Schema on which conversion is based
- flinkSchema- a Flink TableSchema
- Returns:
- the equivalent Schema
- Throws:
- IllegalArgumentException- if the type cannot be converted or there are missing ids
 
- 
convertpublic static Schema convert(Schema baseSchema, org.apache.flink.table.catalog.ResolvedSchema flinkSchema) Convert a FlinkResolvedSchemato aSchemabased on the given schema.This conversion does not assign new ids; it uses ids from the base schema. Data types, field order, and nullability will match the Flink type. This conversion may return a schema that is not compatible with base schema. - Parameters:
- baseSchema- a Schema on which conversion is based
- flinkSchema- a Flink ResolvedSchema
- Returns:
- the equivalent Schema
- Throws:
- IllegalArgumentException- if the type cannot be converted or there are missing ids
 
- 
convertConvert aSchemato aFlink type.- Parameters:
- schema- a Schema
- Returns:
- the equivalent Flink type
- Throws:
- IllegalArgumentException- if the type cannot be converted to Flink
 
- 
convertConvert aTypeto aFlink type.- Parameters:
- type- a Type
- Returns:
- the equivalent Flink type
- Throws:
- IllegalArgumentException- if the type cannot be converted to Flink
 
- 
convertConvert aFlink typeto aType.- Parameters:
- flinkType- a FlinkType
- Returns:
- the equivalent Iceberg type
 
- 
toSchema@Deprecated public static org.apache.flink.table.legacy.api.TableSchema toSchema(org.apache.flink.table.types.logical.RowType rowType) Deprecated.since 1.10.0, will be removed in 2.0.0. UsetoResolvedSchema(RowType)insteadConvert aRowTypeto aTableSchema.- Parameters:
- rowType- a RowType
- Returns:
- Flink TableSchema
 
- 
toResolvedSchemapublic static org.apache.flink.table.catalog.ResolvedSchema toResolvedSchema(org.apache.flink.table.types.logical.RowType rowType) Convert aRowTypeto aResolvedSchema.- Parameters:
- rowType- a RowType
- Returns:
- Flink ResolvedSchema
 
- 
toSchemaDeprecated.since 1.10.0, will be removed in 2.0.0. UsetoResolvedSchema(Schema)insteadConvert aSchemato aTableSchema.- Parameters:
- schema- iceberg schema to convert.
- Returns:
- Flink TableSchema.
 
- 
toResolvedSchemaConvert aSchemato aResolvedSchema.- Parameters:
- schema- iceberg schema to convert.
- Returns:
- Flink ResolvedSchema.
 
 
- 
convert(ResolvedSchema)instead.