将大量数据从 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 实用程序 NZLOAD 将 -df 位置指向 hdfs 位置