带有管道分隔文件的 Netezza 合并表

Posted

技术标签:

【中文标题】带有管道分隔文件的 Netezza 合并表【英文标题】:Netezza merge table with pipe delimited file 【发布时间】:2018-12-04 15:29:26 【问题描述】:

我们使用 Netezza 来存储表格。每天,表格的更新版本都会以竖线分隔的文本文件的形式出现。所以我知道如何将文本文件导入 Netezza,但是有没有办法可以将管道分隔文件与 Netezza 中的现有表合并?架构将始终相同,我想这样做而不必加载管道分隔文件,进行合并,而不是删除我刚刚加载的文件,因为它是一个大表,所以需要时间。 提前感谢您的帮助!

【问题讨论】:

【参考方案1】:

1) 创建一个外部临时表“与目标相同”,指向当天的文件 2) 从 ExternalTempTable 中插入到目标中选择 *

如果我理解正确的话就没什么了

【讨论】:

感谢您的回复。我不想只是将所有内容附加到文件中。我想合并它们,以便添加新记录并更新现有记录。我仍然可以使用外部表执行此操作吗? 我想了解的是:您是希望将表格的内容添加到文件中,还是要将文件的内容添加到表格中? 话虽如此:从 sql 的角度来看,外部表在创建后 99% 的行为与普通表相似,因此我相信可以使用该技术进行“合并”。 抱歉,我想将文件的内容添加到表中。与外部表合并会不会更糟(性能方面)? 我不会担心的。从外部表读取到 TEMP 表非常快,一旦传入的数据在 Netezza 内部,在您执行 sql 以完成“合并”时性能会很好......

以上是关于带有管道分隔文件的 Netezza 合并表的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 传递表 Netezza

平面文件到 SSIS 中的 Netezza 加载

Bigquery - 在 CSV(联合表)中处理双引号和管道字段分隔符

Aginity for Netezza 使用 ODBC 从外部 xlsx 文件创建临时表

在将 nzload 与 netezza 一起使用时,我们如何定义多个空值?

需要将一个 150GB 的 SQL Server 表导出到多个管道分隔的平面文件中