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 Schemaconvert(org.apache.flink.table.api.TableSchema schema) Deprecated.static Schemaconvert(org.apache.flink.table.catalog.ResolvedSchema flinkSchema) Convert the flink table schema to apache iceberg schema with column comment.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 FlinkTableSchemato aSchemabased on the given schema.static org.apache.flink.table.types.logical.LogicalTypeConvert aTypeto aFlink type.static org.apache.flink.table.api.TableSchematoSchema(org.apache.flink.table.types.logical.RowType rowType) Convert aRowTypeto aTableSchema.static org.apache.flink.table.api.TableSchemaConvert aSchemato aTableSchema.
-
Method Details
-
convert
Deprecated.Useconvert(ResolvedSchema)instead. -
convert
Convert the flink table schema to apache iceberg schema with column comment. -
convert
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 basedflinkSchema- a Flink TableSchema- Returns:
- the equivalent Schema
- Throws:
IllegalArgumentException- if the type cannot be converted or there are missing ids
-
convert
Convert aSchemato aFlink type.- Parameters:
schema- a Schema- Returns:
- the equivalent Flink type
- Throws:
IllegalArgumentException- if the type cannot be converted to Flink
-
convert
Convert aTypeto aFlink type.- Parameters:
type- a Type- Returns:
- the equivalent Flink type
- Throws:
IllegalArgumentException- if the type cannot be converted to Flink
-
convert
Convert aFlink typeto 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 aRowTypeto aTableSchema.- Parameters:
rowType- a RowType- Returns:
- Flink TableSchema
-
toSchema
Convert aSchemato aTableSchema.- Parameters:
schema- iceberg schema to convert.- Returns:
- Flink TableSchema.
-
convert(ResolvedSchema)instead.