我在greenplum中有一个本地表XYZ。我从其他5个表的数据中填充该表(表XYZ的列数和数据来自5个不同的表,由一些连接操作填充)。
这很好用。但我面临的问题是:
1>我需要我的表XYZ才能获得最新的数据。也就是说,如果任何新条目出现在5个表格中(从中填充XYZ),我的表格XYZ应该更新。
2 - ;如果任何现有记录被修改,那么在这种情况下,表XYZ中的数据也应该被修改。 我还有一个表History_of_XYZ,这个表包含XYZ的所有数据(历史)。例如:让我们说他们是客户ABC的一个条目,因为他住在美国。但现在ABC已经搬到了新的国家,让我们说俄罗斯。然后我的历史表将包含与美国入境相对应的数据,表格XYZ将包含客户居住在俄罗斯的最新更新数据。
所以我无法找到接近第1步和第2步的最佳方法。
考虑到所有数据都在greenplum数据库中,如何才能完成。
我对gpload和其他加载选项进行了一些研究,但不确定如何进入第1步和第2步。
任何指针都会有所帮助。我对DB很新。所以设置所有表格结构并填充表格对我来说本身就是一个很大的学习曲线。
答案 0 :(得分:0)
我想您需要查看Spring XD等交互式摄取工具,请参阅主题流。
此致 莫哈。
答案 1 :(得分:0)
1&触发器的简单用例2.使用插入/更新触发器。
答案 2 :(得分:0)
Greenplum不支持触发器。要解决您的问题,您需要在所有5个源表中维护上次更新的时间戳。并根据5个源表更新的频率,安排程序加载(插入/更新)XYZ表。如果每天都有太多的删除和更新,那么最好遵循CTAS操作来维护可用磁盘空间。