PowerDesigner: запись типа дистрибутива Netezza через VBScript
Я работаю с PowerDesigner 16.5 и делаю физическую модель для Netezza 5.0.
Мне нужно разместить "Тип распространения" на вкладке "Параметры" для каждой таблицы, что, естественно, очень важно. Однако я ищу более организованный способ размещения моего типа распространения и списка столбцов.
Я хотел бы ввести эту информацию через VBScript. У меня, однако, возникают проблемы с поиском правильной команды для фактического использования этих опций через скрипт. Я обычно использовал бы GetPhysicalOptionValues, но "Тип распространения" на самом деле не кажется физическим вариантом. Это нормальный вариант. Документация для PowerDesigner не очень помогает.
TL; DR: ищу сценарий для моих ключей распространения Netezza через VBScript. Не могу найти правильную переменную.
2 ответа
Вы должны отредактировать 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
Это должно сделать это, по крайней мере, в моем случае
С уважением
Ваше решение направило меня на правильный путь. Это также помогло мне найти следующее: SetExtendedAttribute("Distribution","hash") SetExtendedAttribute("DistributionColumnList","ColumnName")