Package org.apache.iceberg.flink
Class FlinkSchemaUtil
- java.lang.Object
-
- org.apache.iceberg.flink.FlinkSchemaUtil
-
public class FlinkSchemaUtil extends java.lang.Object
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
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Schema
convert(org.apache.flink.table.api.TableSchema schema)
Convert the flink table schema to apache iceberg schema.static org.apache.flink.table.types.logical.RowType
convert(Schema schema)
Convert aSchema
to aFlink type
.static Schema
convert(Schema baseSchema, org.apache.flink.table.api.TableSchema flinkSchema)
Convert a FlinkTableSchema
to aSchema
based on the given schema.static org.apache.flink.table.types.logical.LogicalType
convert(Type type)
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
toSchema(Schema schema)
Convert aSchema
to aTableSchema
.
-
-
-
Method Detail
-
convert
public static Schema convert(org.apache.flink.table.api.TableSchema schema)
Convert the flink table schema to apache iceberg schema.
-
convert
public static Schema convert(Schema baseSchema, org.apache.flink.table.api.TableSchema flinkSchema)
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:
java.lang.IllegalArgumentException
- if the type cannot be converted or there are missing ids
-
convert
public static org.apache.flink.table.types.logical.RowType convert(Schema schema)
Convert aSchema
to aFlink type
.- Parameters:
schema
- a Schema- Returns:
- the equivalent Flink type
- Throws:
java.lang.IllegalArgumentException
- if the type cannot be converted to Flink
-
convert
public static org.apache.flink.table.types.logical.LogicalType convert(Type type)
Convert aType
to aFlink type
.- Parameters:
type
- a Type- Returns:
- the equivalent Flink type
- Throws:
java.lang.IllegalArgumentException
- if the type cannot be converted to Flink
-
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
-
-