SAS VIYA 3.4中表的保留
我最近面临一个请求,任何想法都将不胜感激 我在SAS Viya 3.4应用程序中有很多表,我想为所有表设置一个保留期。(例如12个月) 每个表都包含一个名为“PDATE”的列。 PDATE列包含字符格式的日期 例如:“20201231”SAS VIYA 3.4中表的保留,sas,Sas,我最近面临一个请求,任何想法都将不胜感激 我在SAS Viya 3.4应用程序中有很多表,我想为所有表设置一个保留期。(例如12个月) 每个表都包含一个名为“PDATE”的列。 PDATE列包含字符格式的日期 例如:“20201231” (上述示例指2020年12月31日) 我有桌子: 内存中(CAS表) 在HDFS CASLIB中(CAS表) 在服务器(.sas7bdat)上的目录中 它们都包含相同格式的PDATE列 我想为所有这些设置一个保留期 我想 将每个表的最大PDATE值(时间上最
(上述示例指2020年12月31日) 我有桌子:
- 内存中(CAS表)
- 在HDFS CASLIB中(CAS表)
- 在服务器(.sas7bdat)上的目录中
PDATE
列
我想为所有这些设置一个保留期
我想
data mycaslib.tablenew;
设置mycaslib.tableold;
其中PDATE<“foundvalue”;
跑
非常感谢!在
pdate
上添加索引可能比分区更有帮助。分区更能提高按组处理的性能。我建议将所有表的pdate
转换为SAS日期,并在其上添加索引
CAS中的索引只对语句起作用,而语句正是您所需要的。如果您想索引数据,请使用表。index
CAS操作注意,index
选项尚不受支持,需要使用CAS操作或proc casutil
来完成
cas;
libname casuser cas caslib='casuser';
data casuser.cars;
set sashelp.cars;
run;
proc cas;
table.index result=r /
table={caslib = 'casuser'
name = 'cars'
}
casout={caslib = 'casuser'
name = 'cars_indexed'
indexvars = {'make'}
replace = true
}
;
table.tableDetails /
caslib = 'casuser'
name = 'cars_indexed'
;
quit;
您可以对所有这些表进行设置,以便它们在SAS转换值pdate
上加载索引
当您使用Viya 3.5或更高版本时,您将能够使用table.deleteRows
操作直接修改表。这将允许您修改所有内容
proc cas;
table.deleteRows result=r /
table={caslib = 'casuser'
name = 'cars'
where='make = "BMW"'
}
;
simple.numRows result=n
table={caslib = 'casuser'
name = 'cars'
where='make = "BMW"'
}
;
put n;
quit;
对于Data Controller()->我们在backlog中有一个类似的请求,我们可以轻松地将其作为一个受支持的功能提供,请随时在上面的站点上与我联系。
proc cas;
table.deleteRows result=r /
table={caslib = 'casuser'
name = 'cars'
where='make = "BMW"'
}
;
simple.numRows result=n
table={caslib = 'casuser'
name = 'cars'
where='make = "BMW"'
}
;
put n;
quit;