我的log_table包含sql
中的state,region,district,timestamp列服务器。
ID state region district timestamp
-- ----- ------ -------- ---------
1 GJ RE056 DI137 2014-02-05 09:00:00.257
2 CA RE027 DI154 2014-02-04 14:00:00.183
3 GJ RE056 DI137 2014-12-09 16:00:00.257
我想将这些记录加载到具有唯一记录的mysql中的另一个表中,并且在将数据从sql server加载到mysql时,现有数据不应插入到mysql中的新表中,仅每日更新 记录应该加载到没有重复记录的新表中。在这个问题上帮助我如何使用pentaho数据集成。
答案 0 :(得分:0)
我假设timestamp
列代表源数据库(sql server)中一行的last_updated_timestamp
。
如果您的目标是每天运行转换并且您希望源数据库中只有new or updated
条记录将加载到目标(mysql)数据库,则需要将timestamp
存储到目标数据库中(例如表log_target
),转换步骤可以是:
timestamp
获取MAX log_target
。
SELECT COALESCE(MAX(timestamp), '1970-01-01 00:00:00') AS max FROM log_target
log_table
中选择更新的数据
SELECT * FROM log_table WHERE (timestamp > ?)
log_target
表。不要忘记存储timestamp
值。答案 1 :(得分:0)
表格输入 -> 排序行(州、地区、地区、时间戳降序) -> 唯一行 -> 插入/更新。
将行时间戳降序排序将帮助您在删除重复项后保留最后修改的记录。