0

我有一个 Kudu 数据库,里面有一个表。每天,我都会启动一个批处理作业,它接收要摄取的新数据(ETL 管道)。

如果出现以下情况,我想插入新数据:

  • 钥匙不存在
  • 如果键存在,则仅当新行的时间戳列更新时才更新该行
4

1 回答 1

0

我认为您需要的是新数据与现有表的左外连接,您首先必须将其结果保存到临时表中,然后将其移动到原始表中,使用SaveMode.Append.

您可能还对使用 Spark Structured Streaming 或 Kafka 而不是批处理作业感兴趣。我什至在 GitHub 上找到了一个示例(但没有检查它的工作情况,以及它是否考虑了现有数据)。

于 2018-11-09T13:35:56.473 回答