我们计划将海量数据(2500 亿行/5 TB)从 Netezza 复制到 Teradata。复制这些数据的最佳方法是什么?
谢谢
使用外部表在 Netezza 中构建平面文件。
然后使用 Teradata MultiLoad 或 Teradata FastLoad 加载文件。
您可以使用 Python 或 Perl 编写脚本并并行运行加载。速度将仅受您的网络带宽和 Teradata 插入的限制。
运动鞋网。严重地。将数据下载到 microSD、USB 密钥、DVD 等。运送它并重新加载。它会比通过 Internet 传输更快。
有句老话“永远不要低估装满 9 轨磁带的旅行车的带宽”。有一个更新可以计算一个装满蓝光光盘的波音 747 的带宽。
令人印象深刻。
从 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 。桌子;
如果您有一个大的事实表,您可以使用“where ((1 <= datasliceid) AND (datasliceid <= 31));”将其分块 把它放在你在脚本中选择之后,你会想要最多 92 个数据片,或者你的盒子里有多少。
2) 将数据快速加载到 Teradata。
我最初回答了错误的问题:但值得这样做的是如何将大量数据从 Teradata 复制到 Greenplum:
从 Teradata 快速导出数据,您可能需要对快速导出的数据运行 SED 以删除一些垃圾字符。如果您想要一个较小的文件,则 SCP/FTP 将数据传送到 GreenPlum ETL 头节点 (GZIP --fast)。创建您的 YAML 和 GPLoad 数据。首先从一小组数据开始。
如果您想从 Netezza 转到 Greenplum,请使用相同的 NZODBC 导出到平面文件,然后使用 GPLOAD 为 NZODBC 导出的平面文件加载平面文件。