从 IBM DB2 迁移到 Netezza 的挑战

Posted

技术标签:

【中文标题】从 IBM DB2 迁移到 Netezza 的挑战【英文标题】:Challenges in migrating from IBM DB2 to Netezza 【发布时间】:2016-01-22 11:35:27 【问题描述】:

由于增加了高性能和缩短周转时间的优势,我正在尝试将我组织中的所有数据从 IBM DB2 迁移到 Netezza。

但我意识到 Netezza 中没有主键的概念?如果属实,我可以尝试通过在 Datastage 中使用重复删除阶段来解决这些问题。

另外,你们能否帮助我了解在从 DB2 到 Netezza 的迁移过程中我是否应该考虑更多限制或可能面临的挑战?

【问题讨论】:

【参考方案1】:

Netezza 允许您指定主键和外键限制,但它们不是强制执行的。也就是说,它们纯粹是信息性的(对于机器人用户和优化器)。 ETL 中格式良好的 upsert 流程是解决此问题的好方法。

关于您可能面临的其他问题,这里有一些想法:

代理键 确保使用 Netezza 的 SEQUENCE 对象或 ETL 工具中的代理键生成器生成代理键。避免在此过程中使用 ROW_NUMBER,因为以这种方式使用它通常会阻止您利用系统的并行特性。

存储过程

存储过程应尽可能避免逐行/基于光标的处理,因为这是另一种情况,您可能会阻止自己利用系统的并行特性。

SQL 扩展函数

如果您发现您依赖 DB2 中存在的功能,而这些功能在 Netezza 中没有,请务必检查 SQL Extensions Toolkit 中的可用功能,该工具包包含在 Netezza 中,但不会自动安装/配置.

合并

如果您在当前环境中依赖 MERGE,请注意您必须在 v7.2.1 上才能在 Netezza 中使用 MERGE。否则,您将不得不将其分解为 INSERT/UPDATE 操作。

【讨论】:

谢谢斯科特!在迁移到 Netezza 时,我会考虑以上所有要点。【参考方案2】:

在 Netezza 中加载数据后,我们使用的一种方法是创建一个视图来访问数据并仅公开该视图。该视图将包含删除重复项的逻辑。

祝你好运! 德兰

【讨论】:

以上是关于从 IBM DB2 迁移到 Netezza 的挑战的主要内容,如果未能解决你的问题,请参考以下文章

如何将此代码从 netezza 迁移到 db2?

使用Ruby从MySQL迁移到DB2

由于日期格式,将数据从 txt 文件导入 IBM netezza SQL 数据库时出错

将数据从 txt 文件导入 IBM netezza SQL 数据库的错误

将 SQL 数据库从一台服务器复制到 IBM netezza Aginity 工作台上的另一台服务器

无法从 C# VS2013 访问 IBM Netezza 服务器,但在 IBM Aginity 工作台中运行良好