清除netezza表中的记录

时间:2014-06-10 16:44:04

标签: netezza

从Netezza表中删除超过20天的记录。 过程将table_name和timestamp作为输入。 有没有人知道这个程序?

3 个答案:

答案 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系统中进行逻辑删除,但是在整理表之前记录不会完全消失

useful link on deletes