You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by "Istvan Darvas (Jira)" <ji...@apache.org> on 2022/05/05 16:18:00 UTC

[jira] [Updated] (HUDI-4047) hoodie.avro.schema.validate error message refact

     [ https://issues.apache.org/jira/browse/HUDI-4047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Istvan Darvas updated HUDI-4047:
--------------------------------
    Priority: Minor  (was: Major)

> hoodie.avro.schema.validate error message refact
> ------------------------------------------------
>
>                 Key: HUDI-4047
>                 URL: https://issues.apache.org/jira/browse/HUDI-4047
>             Project: Apache Hudi
>          Issue Type: New Feature
>            Reporter: Istvan Darvas
>            Priority: Minor
>
> Hi Guys!
>  
> I have just used the schema validation and works as a charm, but :)
>  
> A few things would be very usefull
> 1.) after the error message: Failed schema compatibility check for \{FULL JSON Compatible payload should come}
> 2.) in the JSON payload should contain "violations": [\{item}, \{item}] 
>   if go over all the violations is complex, or not performant then just print the first oine
>    "violation": \{"fiel_name": fied_name,  "writerSchema": "writer_schema, "tableSchema": table_schema }
>  
> Why? ;) - if someone has a table with a lot of cols/feature would be easier to find the discrepenacy.
> So the debug process would be copy the FULL JSON into a json editor, and check the nodes... 
> this would speed up the the debug for me ;) but maybe I am not alone with this.
>  
> Thanks,
>  
> I got an exception like this for example and I would like a nicer one like I explained above:
> Caused by: org.apache.hudi.exception.HoodieException: Failed schema compatibility check for writerSchema :\{"type":"record","name":"iot_raw__ingress_pkg_decoded_rep_record","namespace":"hoodie.iot_raw__ingress_pkg_decoded_rep","fields":[{"name":"_hoodie_commit_time","type":["null","string"],"doc":"","default":null},\{"name":"_hoodie_commit_seqno","type":["null","string"],"doc":"","default":null},\{"name":"_hoodie_record_key","type":["null","string"],"doc":"","default":null},\{"name":"_hoodie_partition_path","type":["null","string"],"doc":"","default":null},\{"name":"_hoodie_file_name","type":["null","string"],"doc":"","default":null},\{"name":"correlation_id","type":["null","string"],"default":null},\{"name":"iot_pkg_receive_time","type":["null",{"type":"long","logicalType":"timestamp-micros"}],"default":null},\{"name":"parsing_time","type":["null",{"type":"long","logicalType":"timestamp-micros"}],"default":null},\{"name":"receive_time","type":["null",{"type":"long","logicalType":"timestamp-micros"}],"default":null},\{"name":"aggregate_id","type":["null","string"],"default":null},\{"name":"message_id","type":["null","int"],"default":null},\{"name":"message_type_name","type":["null","string"],"default":null},\{"name":"message_type_id","type":["null","int"],"default":null},\{"name":"report_id","type":["null","int"],"default":null},\{"name":"report_type_name","type":["null","string"],"default":null},\{"name":"report_type_id","type":["null","int"],"default":null},\{"name":"report_dcd_payload","type":["null","string"],"default":null}]}, table schema :\{"type":"record","name":"hoodie_source","namespace":"hoodie.source","fields":[{"name":"_hoodie_commit_time","type":["null","string"],"doc":"","default":null},\{"name":"_hoodie_commit_seqno","type":["null","string"],"doc":"","default":null},\{"name":"_hoodie_record_key","type":["null","string"],"doc":"","default":null},\{"name":"_hoodie_partition_path","type":["null","string"],"doc":"","default":null},\{"name":"_hoodie_file_name","type":["null","string"],"doc":"","default":null},\{"name":"correlation_id","type":"string"},\{"name":"iot_pkg_receive_time","type":{"type":"long","logicalType":"timestamp-micros"}},\{"name":"parsing_time","type":{"type":"long","logicalType":"timestamp-micros"}},\{"name":"receive_time","type":{"type":"long","logicalType":"timestamp-micros"}},\{"name":"aggregate_id","type":"string"},\{"name":"message_id","type":"int"},\{"name":"message_type_name","type":"string"},\{"name":"message_type_id","type":"int"},\{"name":"report_id","type":"int"},\{"name":"report_type_name","type":"string"},\{"name":"report_type_id","type":"int"},\{"name":"report_dcd_payload","type":"string"},\{"name":"year","type":["null","int"],"default":null},\{"name":"month","type":["null","int"],"default":null},\{"name":"day","type":["null","int"],"default":null}]}, base path :s3://scgps-datalake/iot_raw/ingress_pkg_decoded_rep
>         at org.apache.hudi.table.HoodieTable.validateSchema(HoodieTable.java:682)
>         at org.apache.hudi.table.HoodieTable.validateUpsertSchema(HoodieTable.java:688)
>         ... 42 more
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)