将大量数据从 Netezza 复制到 Teradata

Posted

技术标签:

【中文标题】将大量数据从 Netezza 复制到 Teradata【英文标题】:Copy huge data from Netezza to Teradata 【发布时间】:2013-06-21 16:16:47 【问题描述】:

我们计划将海量数据(2500 亿行/5 TB)从 Netezza 复制到 Teradata。复制这些数据的最佳方法是什么?

谢谢

【问题讨论】:

【参考方案1】:

使用外部表在 Netezza 中构建平面文件。

然后使用 Teradata MultiLoad 或 Teradata FastLoad 加载文件。

【讨论】:

【参考方案2】:

Sneakernet。严重地。将数据下载到 microSD、USB 密钥、DVD 等。运送它并重新加载。它会比通过 Internet 传输更快。

有一句老话“Never underestimate the bandwidth of a station wagon full of 9 track tapes”。有更新that computes the bandwidth of a single Boeing 747 full of Blu-Ray disks。 令人印象深刻。

【讨论】:

感谢 Dan 的更新。我们将尝试此选项,但存在数据敏感性问题。我们是否还有其他选择可以将数据从 NZ 复制到 TD。【参考方案3】:

您可以使用 Python 或 Perl 编写脚本并并行运行加载。 速度将仅受您的网络带宽和 Teradata 插入限制。

【讨论】:

【参考方案4】:

从 Netezza 到 Teradata: 1) 从 Netezza 导出数据: 使用 nzodbcsql 连接 Netezza,比 nzsql 快。

调用 NZODBC nzodbcsql -host nzservername -port 5480 -d NZDATABASE -u 用户 -pw 密码 -f /NZ_EXPORT_LOACATION/NZ_EXPORT_SCRIPT

(-f 是您将调用的 NZ_EXPORT_SCRIPT)

脚本应如下所示: CREATE EXTERNAL TABLE '/NZ_EXPORT_DIR/DATAFILE.csv' USING (remotesource 'ODBC' DELIMITER ',' NullValue '' escapechar '\' ctrlchars 'yes' crinstring 'yes') AS SELECT * FROM NZDATABASE.TABLE;

如果您有一个大型事实表,您可以使用“where ((1

2) 将数据快速加载到 Teradata。


我最初回答了错误的问题:但值得这样做的是如何将大量数据从 Teradata 复制到 Greenplum:

从 Teradata 快速导出数据,您可能需要对快速导出的数据运行 SED 以删除一些垃圾字符。如果您想要更小的文件,则 SCP/FTP 将数据传送到 GreenPlum ETL 头节点 (GZIP --fast)。创建您的 YAML 和 GPLoad 数据。首先从一小组数据开始。

如果您想从 Netezza 转到 Greenplum,请使用相同的 NZODBC 导出到平面文件,然后使用 GPLOAD 为 NZODBC 导出的平面文件加载平面文件。

【讨论】:

以上是关于将大量数据从 Netezza 复制到 Teradata的主要内容,如果未能解决你的问题,请参考以下文章

如何提升 netezza 插入语句过程

有没有办法将数据从一个 Netezza 设备中的数据库传输到另一个 Netezza 设备中的数据库?

Netezza 实用程序 NZLOAD 将 -df 位置指向 hdfs 位置

将特定查询数据从 netezza 数据库导出到 CSV 文件

Netezza 中的表和外部表有啥区别?

SAS:想知道如何将 WORK.WHATEVER 表中的数据传递到 Netezza 表中