Db2 到 Netezza 的迁移
Posted
技术标签:
【中文标题】Db2 到 Netezza 的迁移【英文标题】:Db2 to Netezza migration 【发布时间】:2016-07-05 08:31:13 【问题描述】:我正在研究 SAS,但我不了解 Db2 和 Netezza。 现在我的要求是将下面的代码从 DB2 迁移到 Netezza。 那么你能帮我解决这个问题吗?
这是我的代码:
CREATE TABLE acct_grp_holder (
acct_num CHAR(7) NOT NULL,
grp_num CHAR(9) NOT NULL
)
PARTITIONING KEY (grp_num)
IN ts_mdc1 /*Not aware what's the meaning of IN here*/
ORGANIZE BY (grp_num)
NOT LOGGED INITIALLY
);
提前致谢。
【问题讨论】:
这看起来不像是有效的 DB2 语句。 IBM 知识中心是获取官方 DB2 和 Netezza(现称为 PureData for Analytics)信息的最佳资源,您应该首先阅读那里的信息,尤其是与创建表相关的信息,因为您已发布创建表语句。 ibm.com/support/knowledgecenter 【参考方案1】:在不知道该表的预期用途的情况下(例如,如果这用于永久用户或用于 SAS 的数据准备过程的一部分),这里是您转换的起点。
CREATE TABLE acct_grp_holder (
acct_num CHAR(7) NOT NULL,
grp_num CHAR(9) NOT NULL
)
DISTRIBUTE ON (grp_num)
--DISTRIBUTE ON RANDOM
ORGANIZE ON (grp_num)
;
PARTITIONING KEY 子句大致相当于 Netezza DISTRIBUTE ON 子句。但是,在不了解您的数据的情况下,我们无法判断使用“随机分布”是否更合适。
原文中的 ORGANIZE BY 子句表示一个 MDC 表。 Netezza 中的 ORGANIZE ON 子句对此进行了粗略的概念拟合。
没有必要也没有能力为表(IN 子句)或日志记录行为指定表空间。
【讨论】:
以上是关于Db2 到 Netezza 的迁移的主要内容,如果未能解决你的问题,请参考以下文章