0

我正在使用 PowerDesigner 16.5,并且正在为 Netezza 5.0 制作物理模型。

我需要在每个表的“选项”选项卡中放置一个“分布类型”,这自然非常重要。然而,我正在寻找一种更有条理的方式来放置我的分布类型和列列表。

我想通过 VBScript 输入这些信息。但是,我很难找到正确的命令来通过脚本实际解决这些选项。我通常会使用“GetPhysicalOptionValues”,但“分发类型”实际上似乎并不是一个物理选项。这是一个正常的选择。PowerDesigner 的文档似乎没有太大帮助。

TL;DR:希望通过 VBScript 为我的 Netezza 分发密钥编写脚本。找不到正确的变量。

4

2 回答 2

1

您的解决方案使我走上了正确的道路。它还帮助我找到了这些: SetExtendedAttribute("Distribution","hash") SetExtendedAttribute("DistributionColumnList","ColumnName")

于 2014-12-15T08:00:27.847 回答
0

您应该编辑 DMBS 并在 Script/Objects/Table 中包含一个名为 SqlDistributeOption 的新文本项,其中包含:

SELECT   t.owner,t.tablename, 
    CASE 
        WHEN (m.relid isnull) THEN 'distribute on random '
        ELSE 
            CASE 
                WHEN (m.distseqno = 1) THEN 'distribute on hash ('
                ELSE ', ' 
            END 
                || m.attname 
                || 
            CASE 
                WHEN ( m.distseqno =
                        (
                          SELECT max(n.distseqno)
                          FROM _v_table_dist n
                          WHERE n.relid = m.relid)) THEN ')'
                ELSE '' 
            END 
    END 
FROM   _v_table t 
left outer join _v_table_dist m ON (m.relid = t.objid) 
WHERE   1 = 1 [ 
AND    t.owner = %.q:OWNER%] [ 
AND    t.tablename = %.q:TABLE%] 
ORDER BY  t.objid, m.distseqno

应该这样做,至少在我的情况下

问候

于 2014-12-13T11:15:47.630 回答