从 netezza 表中清除记录
Posted
技术标签:
【中文标题】从 netezza 表中清除记录【英文标题】:Purge records from netezza tables 【发布时间】:2014-06-10 16:44:03 【问题描述】:从 Netezza 表中删除超过 20 天的记录。 过程将 table_name 和时间戳作为输入。 有谁知道这方面的程序?
【问题讨论】:
【参考方案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 过程中编写以下步骤。
希望这会有所帮助。
【讨论】:
【参考方案2】:新郎桌是它的命令
【讨论】:
请提供代码示例和commane文档的链接(如果可能)。 Groom 不会清除某个日期之前的记录。 Groom 将从表中删除 已删除 记录(默认情况下,仅当这些记录已在备份中捕获时)。【参考方案3】:基于最终目标的几个选项:
您可以使用逻辑删除进行标记(例如,ACTV_ROW = 0)
更新 放 ACTV_ROW = 0 WHERE ROW_DATE
您可以基于 WHERE 子句进行 DELETE,但这会在 netezza 系统中进行逻辑删除,但在整理表之前记录不会完全消失
useful link on deletes
【讨论】:
以上是关于从 netezza 表中清除记录的主要内容,如果未能解决你的问题,请参考以下文章