从 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 表中清除记录的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 从 Netezza 中的表列表中获取记录计数

Netezza SQL 比较同一表中的两条记录

用于从连续记录中收集值的 Netezza SQL

Netezza 创建不在两个原始表中的记录表

从 Netezza 表中删除重复项

Hive表和Netezza表的匹配记录