Xml 在SAS内嵌中解压缩管道
假设我在SAS中执行以下操作:Xml 在SAS内嵌中解压缩管道,xml,pipe,sas,Xml,Pipe,Sas,假设我在SAS中执行以下操作: filename tmp pipe 'unzip -c -qq ./data_xml.zip'; libname tmp xml xmlmap=TMMap access=READONLY; data header; set tmp.header; run; data owners; set tmp.owners; run; 这将解压data_xml.zip文件,并使用SASxmlmap文件生成两个数据集,标题和所有者 我的问题是,解压将在data\u x
filename tmp pipe 'unzip -c -qq ./data_xml.zip';
libname tmp xml xmlmap=TMMap access=READONLY;
data header; set tmp.header; run;
data owners; set tmp.owners; run;
这将解压data_xml.zip
文件,并使用SASxmlmap
文件生成两个数据集,标题
和所有者
我的问题是,解压将在
data\u xml.zip
上运行多少次?解压只会发生一次,还是会发生两次,因为我在tmp
libname中设置了两次数据集?简短的回答是,是的,它会解压两次
据我所知,unzip-c
本质上是将数据转换成一个连续的源代码,因为它直接从解压命令流到管道
libname
您可能希望通过-c
和管道
进行流式传输,因为磁盘空间和/或首先将文件登录到磁盘的性能问题。不幸的是,我相当确定,按照设置方式,将额外解压缩的CPU降至最低的唯一方法是首先将其放到临时文件的磁盘上
但是,根据文件的大小,第二次解压的CPU开销可能不会超过至少需要额外一次从磁盘读取扩展文件的I/O开销。您可以通过查看服务器上的性能监视器并在两个数据步骤之间暂停来推断这一点吗?我的钱用了两次。如果你想确保它只解压一次,我建议在定义库之前使用X“O/S命令行”语句解压文件。