[ 
https://issues.apache.org/jira/browse/FLINK-10119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16582729#comment-16582729
 ] 

ASF GitHub Bot commented on FLINK-10119:
----------------------------------------

buptljy opened a new pull request #6571: [FLINK-10119]- Add failure handlers 
for JsonRowDeserializationSchema
URL: https://github.com/apache/flink/pull/6571
 
 
   ## What is the purpose of the change
   The program will throw runtime exceptions and exit if json messages cannot 
be parsed correctly, which doesn't make sense to developers because it's very 
normal for them to receive dirty data from the source.
   Now we offer format.failure-handler to deal with this kind of json data.
   1. "fail": the deserialization will throw an exception.
   2. "ignore": the deserialization will return a null value, which will be 
ignored.
   3. "error-field": An additional field will be added into the row to store 
error messages and the other fields will be null. 
   
   ## Brief change log
   * Add format.failure-handler in JsonValidator and failureHandler in Json.
   * Optimize JsonRowDeserializationSchema to deal with "error" data.
   * Add unit tests.
   
   ## Verifying this change
   
   Unit tests.
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): no
     - The public API, i.e., is any changed class annotated with 
`@Public(Evolving)`:  no
     - The serializers: no
     - The runtime per-record code paths (performance sensitive): no
     - Anything that affects deployment or recovery: JobManager (and its 
components), Checkpointing, Yarn/Mesos, ZooKeeper: no
     - The S3 file system connector: no
   
   ## Documentation
   
     - Does this pull request introduce a new feature? no

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> JsonRowDeserializationSchema deserialize kafka message
> ------------------------------------------------------
>
>                 Key: FLINK-10119
>                 URL: https://issues.apache.org/jira/browse/FLINK-10119
>             Project: Flink
>          Issue Type: Bug
>          Components: Kafka Connector
>    Affects Versions: 1.5.1
>         Environment: 无
>            Reporter: sean.miao
>            Assignee: buptljy
>            Priority: Major
>              Labels: pull-request-available
>
> Recently, we are using Kafka010JsonTableSource to process kafka's json 
> messages.We turned on checkpoint and auto-restart strategy .
> We found that as long as the format of a message is not json, it will cause 
> the job to not be pulled up. Of course, this is to ensure that only once 
> processing or at least once processing, but the resulting application is not 
> available and has a greater impact on us.
> the code is :
> class : JsonRowDeserializationSchema
> function :
> @Override
>  public Row deserialize(byte[] message) throws IOException {
>  try
> { final JsonNode root = objectMapper.readTree(message); return 
> convertRow(root, (RowTypeInfo) typeInfo); }
> catch (Throwable t)
> { throw new IOException("Failed to deserialize JSON object.", t); }
> }
> now ,i change it to  :
> public Row deserialize(byte[] message) throws IOException {
>  try
> { JsonNode root = this.objectMapper.readTree(message); return 
> this.convertRow(root, (RowTypeInfo)this.typeInfo); }
> catch (Throwable var4) {
>  message = this.objectMapper.writeValueAsBytes("{}");
>  JsonNode root = this.objectMapper.readTree(message);
>  return this.convertRow(root, (RowTypeInfo)this.typeInfo);
>  }
>  }
>  
> I think that data format errors are inevitable during network transmission, 
> so can we add a new column to the table for the wrong data format? like spark 
> sql does。
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to