从Netezza表中删除超过20天的记录。 过程将table_name和timestamp作为输入。 有没有人知道这个程序?
答案 0 :(得分:1)
可以编写一个程序,但应该注意Netezza是一个DW解决方案并且可以很好地处理大数据,而删除方法可能会让您的系统性能受到影响。 我建议的一个选项是创建另一个临时表,其中包含您需要保留的数据,并在处理用旧表名重命名临时表后删除旧数据表,如果由于某种原因需要相同的表名。
我的建议步骤 -
step 1 => Create table <temp_tbl_name> as select <fields> from <tbl_name> where <timestamp_field> > 20 days
step 2 => drop table <tbl_name>
step 3 => alter <temp_tbl_name> to <tbl_name>
竞争条件 -
对于上述解决方案之前的步骤,您需要获取表上的锁
您可以在shell / Java /或DB过程中编写以下步骤作为您的愿望和舒适程度。
希望这会有所帮助。
答案 1 :(得分:0)
新郎表是它的命令
答案 2 :(得分:0)
根据最终目标结合选项:
您可以使用逻辑删除标记(例如,ACTV_ROW = 0)
UPDATE 组 ACTV_ROW = 0 在哪里ROW_DATE&lt; (CURRENT_TIMESTAMP - 20)
您可以根据WHERE子句进行DELETE,但这会在netezza系统中进行逻辑删除,但是在整理表之前记录不会完全消失