从 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 中加载数据后,我们使用的一种方法是创建一个视图来访问数据并且只公开视图。该视图内部将具有删除重复项的逻辑。
祝你好运!
德兰
由于高性能和缩短周转时间的额外优势,我正在尝试将我组织中的所有数据从 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 中加载数据后,我们使用的一种方法是创建一个视图来访问数据并且只公开视图。该视图内部将具有删除重复项的逻辑。
祝你好运! 德兰