Search in sources :

Example 1 with WriteStatus

use of org.apache.hudi.client.WriteStatus in project rocketmq-externals by apache.

the class Updater method commit.

public void commit() {
    List<SinkDataEntry> commitList;
    if (inflightList.isEmpty()) {
        return;
    }
    synchronized (this.inflightList) {
        commitList = inflightList;
        inflightList = new ArrayList<>();
    }
    List<HoodieRecord> hoodieRecordsList = new ArrayList<>();
    for (SinkDataEntry record : commitList) {
        GenericRecord genericRecord = sinkDataEntry2GenericRecord(record);
        HoodieRecord<HoodieAvroPayload> hoodieRecord = new HoodieRecord(new HoodieKey(UUID.randomUUID().toString(), "shardingKey-" + record.getQueueName()), new HoodieAvroPayload(Option.of(genericRecord)));
        hoodieRecordsList.add(hoodieRecord);
    }
    try {
        List<WriteStatus> statuses = hudiWriteClient.upsert(hoodieRecordsList, hudiWriteClient.startCommit());
        log.info("Upserted data to hudi");
        long upserted = statuses.get(0).getStat().getNumInserts();
        if (upserted != commitList.size()) {
            log.warn("Upserted num not equals input");
        }
    } catch (Exception e) {
        log.error("Exception when upserting to Hudi", e);
    }
}
Also used : HoodieRecord(org.apache.hudi.common.model.HoodieRecord) ArrayList(java.util.ArrayList) IOException(java.io.IOException) SinkDataEntry(io.openmessaging.connector.api.data.SinkDataEntry) HoodieKey(org.apache.hudi.common.model.HoodieKey) GenericRecord(org.apache.avro.generic.GenericRecord) WriteStatus(org.apache.hudi.client.WriteStatus) HoodieAvroPayload(org.apache.hudi.common.model.HoodieAvroPayload)

Aggregations

SinkDataEntry (io.openmessaging.connector.api.data.SinkDataEntry)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 GenericRecord (org.apache.avro.generic.GenericRecord)1 WriteStatus (org.apache.hudi.client.WriteStatus)1 HoodieAvroPayload (org.apache.hudi.common.model.HoodieAvroPayload)1 HoodieKey (org.apache.hudi.common.model.HoodieKey)1 HoodieRecord (org.apache.hudi.common.model.HoodieRecord)1