【问题标题】:dataset.write() results in ORA-00001 spark javadataset.write() 导致 ORA-00001 spark java
【发布时间】:2018-07-30 10:30:09
【问题描述】:

只是想弄清楚处理这种情况的最佳方法是什么。我使用 dataset.write 写入 oracle 数据库,要求查找表中是否已经存在重复项(不在数据集中),如果存在则将这些重复记录写入不同的表中。有没有人遇到过类似的问题?我正在写入的表是一个巨大的表,如果我在写入数据集之前从中读取现有数据进行比较,成本会很高

使用的保存模式是 append 。它是一个 kafka 流应用程序,每 2 分钟连续传输数据。

【问题讨论】:

  • 你能提供你正在使用的陈述吗?
  • 你明白了吗?

标签: apache-spark spark-streaming apache-spark-dataset


【解决方案1】:

没有 UPSERT 模式,我想你的意思是 DF.write 或 DS.write。

问题是这种重复发生的频率是多少?为什么?如果一个人不时溜走会有什么影响?我不倾向于在这种情况下发生重复的密钥违规。

如果逻辑上重复的插入很少,并且有合适的基于时间的 ORACLE 分区来限制要检查的数据量,那么您可以在 DBMS 端将其作为一个周期性过程来执行。

所以,我不会倾向于检查 SPARK 方面。使用 KAFKA 摄取并尽快将其写出来似乎也有点违反直觉。

一个有趣的问题是,任何做某事的方法都有一些问题需要解决——在 SPARK 端缓存、重新读取等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2014-04-08
    相关资源
    最近更新 更多