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.api.TableSchema schema) Deprecated.static Schema
convert
(org.apache.flink.table.catalog.ResolvedSchema flinkSchema) Convert the flink table schema to apache iceberg schema with column comment.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 FlinkTableSchema
to aSchema
based on the given schema.static org.apache.flink.table.types.logical.LogicalType
Convert aType
to aFlink type
.static org.apache.flink.table.api.TableSchema
toSchema
(org.apache.flink.table.types.logical.RowType rowType) Convert aRowType
to aTableSchema
.static org.apache.flink.table.api.TableSchema
Convert aSchema
to aTableSchema
.
-
Method Details
-
convert
Deprecated.Useconvert(ResolvedSchema)
instead. -
convert
Convert the flink table schema to apache iceberg schema with column comment. -
convert
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
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
public static org.apache.flink.table.api.TableSchema toSchema(org.apache.flink.table.types.logical.RowType rowType) Convert aRowType
to aTableSchema
.- Parameters:
rowType
- a RowType- Returns:
- Flink TableSchema
-
toSchema
Convert aSchema
to aTableSchema
.- Parameters:
schema
- iceberg schema to convert.- Returns:
- Flink TableSchema.
-
convert(ResolvedSchema)
instead.