从 IBM DB2 迁移到 Netezza 的挑战

Challenges in migrating from IBM DB2 to Netezza

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

但是我发现Netezza中没有主键的概念?如果为真,我可以尝试使用 Datastage 中的重复删除阶段来解决这些问题。

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

Netezza 确实允许您指定主键和外键限制,但并不强制执行。也就是说它们纯粹是信息性的(对于机器人用户和优化器)。 well-formed ETL 中的更新插入过程是管理此问题的好方法。

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

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

存储过程

存储过程应尽可能避免 row-by-row/cusor-based 处理,因为这是另一种情况,您可能会阻止自己利用系统的并行特性。

SQL 扩展函数

如果您发现您依赖的函数存在于 DB2 中,而您在 Netezza 中找不到,请务必检查 SQL Extensions Toolkit 中的可用功能,它包含在 Netezza 中,但不会自动 installed/configured.

合并

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

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

祝你好运! 德兰