IBM PureData System for Analytics (Netezza) 与 Db2 数据库、表和模式兼容性
在 PureData® System for Analytics
Netezza®) 系统中,可以有多个数据库。在 Db2® 系统中,只有一个名为 BLUDB 的数据库。
缺省情况下,当您使用 db_migrate 命令或 Database Harmony Profiler 将 Netezza 数据库移至 Db2 系统时,Netezza 数据库会迁移到 BLUDB 数据库中的模式。有关 db_migrate 命令的信息,请参阅使用 db_migrate 移动数据;有关 Database Harmony Profiler 的信息,请参阅 Database Conversion Workbench 页面。如果您已将 Netezza 数据库配置为使用多个模式,那么这些工具会将 Netezza 模式移至 BLUDB 数据库,但如果要使用多个数据库中的多个模式,那么在迁移前需要执行额外的工作。有关使用具有多个模式的多个数据库时如何继续迁移的信息,请参阅 影响迁移到 Db2 产品的 IBM PureData System for Analytics (Netezza) 配置选项。
Netezza 系统与 Db2 系统之间的其他差异如下所示:
- 缺省情况下,Db2 表中的数据按列组织(可以按行组织数据)。按列组织数据可减少处理查询所需的 I/O 量,因为只需将查询中引用的列从磁盘装入内存。基于列的组织可改善从部分列中访问大量值,并大量使用聚集和连接的分析查询。
- Db2 系统使用 UTF-8 编码。Netezza 系统将 Latin-9 编码用于单字节字符,将 UTF-8 用于多字节字符。
- 在 Db2 系统中不支持集群基本表 (CBT)。
- 在 Db2 系统中不支持具体化视图。具体化查询表 (MQT) 可能是合适的替代项。MQT 是一个表,它的定义基于查询结果,而数据是从该 MQT 定义所基于的一个或多个表中获取的预先计算结果。
- 在 Db2 系统中,缺省情况下支持主键约束。如果您不想强制实施这些约束,请在 DDL 语句中指定 NOT ENFORCED。
有关 Netezza 与 Db2 DDL 之间的差异的详细信息,请参阅 IBM PureData System for Analytics (Netezza) 与 Db2 SQL 兼容性。