Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 在SAS内嵌中解压缩管道_Xml_Pipe_Sas - Fatal编程技术网

Xml 在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

假设我在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
文件,并使用SAS
xmlmap
文件生成两个数据集,
标题
所有者


我的问题是,解压将在
data\u xml.zip
上运行多少次?解压只会发生一次,还是会发生两次,因为我在
tmp
libname中设置了两次数据集?

简短的回答是,是的,它会解压两次

据我所知,
unzip-c
本质上是将数据转换成一个连续的源代码,因为它直接从解压命令流到
管道
libname

您可能希望通过
-c
管道
进行流式传输,因为磁盘空间和/或首先将文件登录到磁盘的性能问题。不幸的是,我相当确定,按照设置方式,将额外解压缩的CPU降至最低的唯一方法是首先将其放到临时文件的磁盘上


但是,根据文件的大小,第二次解压的CPU开销可能不会超过至少需要额外一次从磁盘读取扩展文件的I/O开销。

您可以通过查看服务器上的性能监视器并在两个数据步骤之间暂停来推断这一点吗?我的钱用了两次。如果你想确保它只解压一次,我建议在定义库之前使用X“O/S命令行”语句解压文件。