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 Summary
Modifier and TypeMethodDescriptionstatic Schema
convert
(org.apache.flink.table.catalog.ResolvedSchema flinkSchema) Convert the flink table schema to apache iceberg schema with column comment.static Schema
convert
(org.apache.flink.table.legacy.api.TableSchema schema) Deprecated.static Type
convert
(org.apache.flink.table.types.logical.LogicalType flinkType) Convert aFlink type
to aType
.static org.apache.flink.table.types.logical.RowType
Convert aSchema
to aFlink type
.static Schema
Convert a FlinkResolvedSchema
to aSchema
based on the given schema.static Schema
Deprecated.since 1.10.0, will be removed in 2.0.0.static org.apache.flink.table.types.logical.LogicalType
Convert aType
to aFlink type
.static org.apache.flink.table.catalog.ResolvedSchema
toResolvedSchema
(org.apache.flink.table.types.logical.RowType rowType) Convert aRowType
to aResolvedSchema
.static org.apache.flink.table.catalog.ResolvedSchema
toResolvedSchema
(Schema schema) Convert aSchema
to aResolvedSchema
.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.static org.apache.flink.table.legacy.api.TableSchema
Deprecated.since 1.10.0, will be removed in 2.0.0.
-
Method Details
-
convert
Deprecated.will be removed in 2.0.0; useconvert(ResolvedSchema)
instead. -
convert
Convert 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 FlinkTableSchema
to aSchema
based 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 basedflinkSchema
- a Flink TableSchema- Returns:
- the equivalent Schema
- Throws:
IllegalArgumentException
- if the type cannot be converted or there are missing ids
-
convert
public static Schema convert(Schema baseSchema, org.apache.flink.table.catalog.ResolvedSchema flinkSchema) Convert a FlinkResolvedSchema
to aSchema
based 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 basedflinkSchema
- a Flink ResolvedSchema- Returns:
- the equivalent Schema
- Throws:
IllegalArgumentException
- if the type cannot be converted or there are missing ids
-
convert
Convert aSchema
to aFlink type
.- Parameters:
schema
- a Schema- Returns:
- the equivalent Flink type
- Throws:
IllegalArgumentException
- if the type cannot be converted to Flink
-
convert
Convert aType
to aFlink type
.- Parameters:
type
- a Type- Returns:
- the equivalent Flink type
- Throws:
IllegalArgumentException
- if the type cannot be converted to Flink
-
convert
Convert aFlink type
to 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 aRowType
to aTableSchema
.- Parameters:
rowType
- a RowType- Returns:
- Flink TableSchema
-
toResolvedSchema
public static org.apache.flink.table.catalog.ResolvedSchema toResolvedSchema(org.apache.flink.table.types.logical.RowType rowType) Convert aRowType
to aResolvedSchema
.- Parameters:
rowType
- a RowType- Returns:
- Flink ResolvedSchema
-
toSchema
Deprecated.since 1.10.0, will be removed in 2.0.0. UsetoResolvedSchema(Schema)
insteadConvert aSchema
to aTableSchema
.- Parameters:
schema
- iceberg schema to convert.- Returns:
- Flink TableSchema.
-
toResolvedSchema
Convert aSchema
to aResolvedSchema
.- Parameters:
schema
- iceberg schema to convert.- Returns:
- Flink ResolvedSchema.
-
convert(ResolvedSchema)
instead.