You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by "Yanjia Gary Li (Jira)" <ji...@apache.org> on 2019/12/17 02:18:00 UTC

[jira] [Created] (HUDI-415) HoodieSparkSqlWriter Commit time not representing the Spark job starting time

Yanjia Gary Li created HUDI-415:
-----------------------------------

             Summary: HoodieSparkSqlWriter Commit time not representing the Spark job starting time
                 Key: HUDI-415
                 URL: https://issues.apache.org/jira/browse/HUDI-415
             Project: Apache Hudi (incubating)
          Issue Type: Bug
            Reporter: Yanjia Gary Li
            Assignee: Yanjia Gary Li


Hudi records the commit time after the first action complete. If there is a heavy transformation before isEmpty(), then the commit time could be inaccurate.
{code:java}
if (hoodieRecords.isEmpty()) { 
log.info("new batch has no new records, skipping...") 
return (true, common.util.Option.empty()) 
} 
commitTime = client.startCommit() 
writeStatuses = DataSourceUtils.doWriteOperation(client, hoodieRecords, commitTime, operation)
{code}
For example, I start the spark job at 201901010000, but *isEmpty()* ran for 2 hours, then the commit time in the .hoodie folder will be 201901010*2*00. If I use the commit time to ingest data starting from 201901010200(from HDFS, not using deltastreamer), then I will miss 2 hours of data.

Is this set up intended? Can we move the commit time before isEmpty()?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)