REDSHIFT:仅复制新记录并忽略现有记录

Posted

技术标签:

【中文标题】REDSHIFT:仅复制新记录并忽略现有记录【英文标题】:REDSHIFT :Copy only new records and ignore the existing ones 【发布时间】:2021-03-22 06:25:58 【问题描述】:

我正在使用从 s3 读取 JSON 文件的外部表。 我已使用此查询将数据从外部表传输到内部表

insert into jatinanalysis (title,url,author,published_date,category)
select b.title,b.link,b.author,b.published_date,category
FROM  jatinspectrum.extable a, a.enteries b,b.category category

但是每次我运行这个查询时它都会创建重复的,我只想要新的查询,现有的应该被忽略。

更新:尝试了 https://***.com/a/656027/13126651 但没有运气

insert into jatinanalysis (title,url,author,published_date,category)
select distinct b.title,b.link,b.author,b.published_date,category
FROM  jatinspectrum.extable a, a.enteries b,b.category category
WHERE NOT EXISTS(SELECT * 
                 FROM jatinanalysis
                 WHERE (jatinspectrum.extable.b.title=jatinanalysis.title and
                        jatinspectrum.extable.b.link=jatinanalysis.url and
                        jatinspectrum.extable.b.author=jatinanalysis.author and
                        jatinspectrum.extable.b.b.published_date=jatinanalysis.published_date and
                        jatinspectrum.extable.category=jatinanalysis.category)

【问题讨论】:

【参考方案1】:

这对我有用

insert into jatinanalysis (title,url,author,published_date,category)
select b.title,b.link,b.author,b.published_date,category
FROM  jatinspectrum.extable a, a.enteries b,b.category category
EXCEPT
SELECT title,url,author,published_date,category FROM jatinanalysis;

【讨论】:

以上是关于REDSHIFT:仅复制新记录并忽略现有记录的主要内容,如果未能解决你的问题,请参考以下文章

如何忽略错误但不跳过 redshift 复制命令中的行

RedShift 复制命令返回

如何在 Redshift 中仅输出随机 xx% 的查询输出记录?

使用 COPY 命令将数据从 JSON 文件复制到 Redshift

Redshift 复制命令追加、替换或更新插入?

使用 KMS 托管 CMK 时复制到 redshift 失败并出现错误