当我尝试将脚本编写为Insert and Update
增量加载的一个版本时,我遇到了问题。
示例:为了简化示例,我举例说明了我希望数据集如何更新。 (我留下讨论的代码)
插图:
在上面的示例中,您可以看到我都希望插入新记录并更新记录。条件是我只想在新值大于现有记录时更新记录。
例如,ID 2的现有记录等于0(表1),并且由于ID 2的新记录等于100(表2),我想更新该记录,因此ID 2的最终更新记录等于它们中最高的两个(更新表)。如果表2包含新记录,我只想将该记录添加到最终数据集中。
说明
你们认为这种问题的最佳解决方案是什么?
答案 0 :(得分:1)
不确定这是最好的解决方案
//QVD
Table:
LOAD * INLINE [
ID, Value, Source
1, 500, 'QVD'
2, 0, 'QVD'
3, 100, 'QVD'
4, 300, 'QVD'
5, 0, 'QVD'
];
//ODBC
Concatenate(Table)
LOAD * INLINE [
ID, Value, Source
2, 100, ODBC
3, 700, ODBC
4, 300, ODBC
6, 500, ODBC
7, 0, ODBC
];
NewTable:
LOAD
ID,
max(Value) as Value
Resident Table
Group by ID
;
drop Table Table;