【发布时间】:2021-04-07 14:57:19
【问题描述】:
我最近面临一个请求,任何想法都将不胜感激。
我在 SAS Viya 3.4 应用程序中有很多表,我想为所有表设置保留期。 (例如 12 个月)
每个表都包含一个名为“PDATE”的列。 PDATE 列包含字符格式的日期。
一个例子:“20201231”
(上例指的是 2020 年 12 月 31 日)
我有桌子:
- 在内存中(CAS 表)
- 在 HDFS CASLIB(CAS 表)中
- 在服务器上的目录中 (.sas7bdat)
所有这些都包含相同格式的PDATE 列。
我想为所有这些设置一个保留期。
我想
- 将每个表格的最大 PDATE 值(即最新的时间)转换为日期格式。
- 查找“最新值” - 365
- 将步骤 2 的结果转换为字符格式(如“20191231)”
- 在创建新表之后编写几行代码,例如:
data mycaslib.tablenew;
set mycaslib.tableold;
where PDATE < "foundvalue";
run;
- 然后从内存中删除原始表并提升新表。
我知道这是一个解决方案,但我也知道这不是有效的,因为我必须处理超过 1 亿行。
表的分区是一个解决方案吗? 怎么可能实现?
还有其他想法吗?
非常感谢!
【问题讨论】:
-
我们在积压的数据控制器 (datacontroller.io) 中有类似的请求 -> 我们可以轻松地将其作为受支持的功能提供,请随时在上面的网站上与我联系。
标签: sas