public class AvroSchemaConverter extends Object
RowTypeInfo
for
representing objects and converts Avro types into types that are compatible with Flink's Table &
SQL API.
Note: Changes in this class need to be kept in sync with the corresponding runtime classes
AvroRowDeserializationSchema
and AvroRowSerializationSchema
.
Modifier and Type | Method and Description |
---|---|
static DataType |
convertToDataType(String avroSchemaString)
Converts an Avro schema string into a nested row structure with deterministic field order and
data types that are compatible with Flink's Table & SQL API.
|
static DataType |
convertToDataType(String avroSchemaString,
boolean legacyTimestampMapping)
Converts an Avro schema string into a nested row structure with deterministic field order and
data types that are compatible with Flink's Table & SQL API.
|
static org.apache.avro.Schema |
convertToSchema(LogicalType schema)
Converts Flink SQL
LogicalType (can be nested) into an Avro schema. |
static org.apache.avro.Schema |
convertToSchema(LogicalType schema,
boolean legacyTimestampMapping)
Converts Flink SQL
LogicalType (can be nested) into an Avro schema. |
static org.apache.avro.Schema |
convertToSchema(LogicalType logicalType,
String rowName)
Converts Flink SQL
LogicalType (can be nested) into an Avro schema. |
static org.apache.avro.Schema |
convertToSchema(LogicalType logicalType,
String rowName,
boolean legacyTimestampMapping)
Converts Flink SQL
LogicalType (can be nested) into an Avro schema. |
static <T extends org.apache.avro.specific.SpecificRecord> |
convertToTypeInfo(Class<T> avroClass)
Converts an Avro class into a nested row structure with deterministic field order and data
types that are compatible with Flink's Table & SQL API.
|
static <T extends org.apache.avro.specific.SpecificRecord> |
convertToTypeInfo(Class<T> avroClass,
boolean legacyTimestampMapping)
Converts an Avro class into a nested row structure with deterministic field order and data
types that are compatible with Flink's Table & SQL API.
|
static <T> TypeInformation<T> |
convertToTypeInfo(String avroSchemaString)
Converts an Avro schema string into a nested row structure with deterministic field order and
data types that are compatible with Flink's Table & SQL API.
|
static <T> TypeInformation<T> |
convertToTypeInfo(String avroSchemaString,
boolean legacyTimestampMapping)
Converts an Avro schema string into a nested row structure with deterministic field order and
data types that are compatible with Flink's Table & SQL API.
|
static LogicalType |
extractValueTypeToAvroMap(LogicalType type) |
public static <T extends org.apache.avro.specific.SpecificRecord> TypeInformation<Row> convertToTypeInfo(Class<T> avroClass)
avroClass
- Avro specific record that contains schema informationpublic static <T extends org.apache.avro.specific.SpecificRecord> TypeInformation<Row> convertToTypeInfo(Class<T> avroClass, boolean legacyTimestampMapping)
avroClass
- Avro specific record that contains schema informationlegacyTimestampMapping
- legacy mapping of timestamp typespublic static <T> TypeInformation<T> convertToTypeInfo(String avroSchemaString)
avroSchemaString
- Avro schema definition stringpublic static <T> TypeInformation<T> convertToTypeInfo(String avroSchemaString, boolean legacyTimestampMapping)
avroSchemaString
- Avro schema definition stringlegacyTimestampMapping
- legacy mapping of timestamp typespublic static DataType convertToDataType(String avroSchemaString)
avroSchemaString
- Avro schema definition stringpublic static DataType convertToDataType(String avroSchemaString, boolean legacyTimestampMapping)
avroSchemaString
- Avro schema definition stringlegacyTimestampMapping
- legacy mapping of local timestampspublic static org.apache.avro.Schema convertToSchema(LogicalType schema)
LogicalType
(can be nested) into an Avro schema.
Use "org.apache.flink.avro.generated.record" as the type name.
schema
- the schema type, usually it should be the top level record type, e.g. not a
nested typeSchema
matching this logical type.public static org.apache.avro.Schema convertToSchema(LogicalType schema, boolean legacyTimestampMapping)
LogicalType
(can be nested) into an Avro schema.
Use "org.apache.flink.avro.generated.record" as the type name.
schema
- the schema type, usually it should be the top level record type, e.g. not a
nested typelegacyTimestampMapping
- whether to use the legacy timestamp mappingSchema
matching this logical type.public static org.apache.avro.Schema convertToSchema(LogicalType logicalType, String rowName)
LogicalType
(can be nested) into an Avro schema.
The "{rowName}_" is used as the nested row type name prefix in order to generate the right schema. Nested record type that only differs with type name is still compatible.
logicalType
- logical typerowName
- the record nameSchema
matching this logical type.public static org.apache.avro.Schema convertToSchema(LogicalType logicalType, String rowName, boolean legacyTimestampMapping)
LogicalType
(can be nested) into an Avro schema.
The "{rowName}_" is used as the nested row type name prefix in order to generate the right schema. Nested record type that only differs with type name is still compatible.
logicalType
- logical typerowName
- the record namelegacyTimestampMapping
- whether to use legal timestamp mappingSchema
matching this logical type.public static LogicalType extractValueTypeToAvroMap(LogicalType type)
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.