Class CanalJsonDeserializationSchema

java.lang.Object
org.apache.flink.formats.json.canal.CanalJsonDeserializationSchema
All Implemented Interfaces:
Serializable, org.apache.flink.api.common.serialization.DeserializationSchema<org.apache.flink.table.data.RowData>, org.apache.flink.api.java.typeutils.ResultTypeQueryable<org.apache.flink.table.data.RowData>

public final class CanalJsonDeserializationSchema extends Object implements org.apache.flink.api.common.serialization.DeserializationSchema<org.apache.flink.table.data.RowData>
Deserialization schema from Canal JSON to Flink Table/SQL internal data structure RowData. The deserialization schema knows Canal's schema definition and can extract the database data and convert into RowData with RowKind.

Deserializes a byte[] message as a JSON object and reads the specified fields.

Failures during deserialization are forwarded as wrapped IOExceptions.

See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    A builder for creating a CanalJsonDeserializationSchema.

    Nested classes/interfaces inherited from interface org.apache.flink.api.common.serialization.DeserializationSchema

    org.apache.flink.api.common.serialization.DeserializationSchema.InitializationContext
  • Method Summary

    Modifier and Type
    Method
    Description
    builder(org.apache.flink.table.types.DataType physicalDataType, List<org.apache.flink.formats.json.canal.CanalJsonDecodingFormat.ReadableMetadata> requestedMetadata, org.apache.flink.api.common.typeinfo.TypeInformation<org.apache.flink.table.data.RowData> producedTypeInfo)
    Creates A builder for building a CanalJsonDeserializationSchema.
    org.apache.flink.table.data.RowData
    deserialize(byte[] message)
     
    void
    deserialize(byte[] message, org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out)
     
    boolean
     
    org.apache.flink.api.common.typeinfo.TypeInformation<org.apache.flink.table.data.RowData>
     
    int
     
    boolean
    isEndOfStream(org.apache.flink.table.data.RowData nextElement)
     
    void
    open(org.apache.flink.api.common.serialization.DeserializationSchema.InitializationContext context)
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • builder

      public static CanalJsonDeserializationSchema.Builder builder(org.apache.flink.table.types.DataType physicalDataType, List<org.apache.flink.formats.json.canal.CanalJsonDecodingFormat.ReadableMetadata> requestedMetadata, org.apache.flink.api.common.typeinfo.TypeInformation<org.apache.flink.table.data.RowData> producedTypeInfo)
      Creates A builder for building a CanalJsonDeserializationSchema.
    • open

      public void open(org.apache.flink.api.common.serialization.DeserializationSchema.InitializationContext context) throws Exception
      Specified by:
      open in interface org.apache.flink.api.common.serialization.DeserializationSchema<org.apache.flink.table.data.RowData>
      Throws:
      Exception
    • deserialize

      public org.apache.flink.table.data.RowData deserialize(byte[] message) throws IOException
      Specified by:
      deserialize in interface org.apache.flink.api.common.serialization.DeserializationSchema<org.apache.flink.table.data.RowData>
      Throws:
      IOException
    • deserialize

      public void deserialize(@Nullable byte[] message, org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out) throws IOException
      Specified by:
      deserialize in interface org.apache.flink.api.common.serialization.DeserializationSchema<org.apache.flink.table.data.RowData>
      Throws:
      IOException
    • isEndOfStream

      public boolean isEndOfStream(org.apache.flink.table.data.RowData nextElement)
      Specified by:
      isEndOfStream in interface org.apache.flink.api.common.serialization.DeserializationSchema<org.apache.flink.table.data.RowData>
    • getProducedType

      public org.apache.flink.api.common.typeinfo.TypeInformation<org.apache.flink.table.data.RowData> getProducedType()
      Specified by:
      getProducedType in interface org.apache.flink.api.java.typeutils.ResultTypeQueryable<org.apache.flink.table.data.RowData>
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object