在 SAS 的 Libname 语句中使用 Windows 共享
Use a Windows share in a Libname statement with SAS
当运行在本地通过 EGuide 连接 SAS 时,我可以成功地声明一个 libname,如下所示:
libname winlib '\pc\folder\';
当使用 SAS 服务器时,这是不可能的,我不得不求助于使用 Copy Files
任务。
兴趣:
我认为这是因为 SAS 服务器是 Unix,这对吗?
我试过的:
libname test '//pc/folder/'
libname test2 'smb://pc/folder/'
我能想到的其他选项是将驱动器安装到 SAS 服务器,这对我来说不可行,因为这是临时情况。
问题:
我如何为 SAS 服务器正确声明 libname
到 \pc\folder
?
几点说明:
我不能在本地 运行,因为我必须连接到几个数据库,而且我不想为此使用 PROC UPLOAD
或 DOWNLOAD
。
如果您希望 SAS 读取目录,则 SAS 进程需要能够看到该目录。
大多数公司所做的是创建一个共享目录,SAS 机器和您的 PC 都可以挂载该目录,然后您可以直接从两者引用文件,只是使用不同的路径。
否则,如果您希望 SAS 使用 EG 可以看到但 SAS 不能看到的文件,那么我建议让 EG 上传该文件。有自定义任务可供 EG 上传二进制文件。
另一种方法是创建 SAS 代码以连接到可以查看文件并将文件拉过来的机器。也许使用 FTP 或 SFTP 协议。
不幸的是,没有办法按照我希望的方式执行此操作(在 Unix 环境中直接使用 libname
语句中的远程路径)。
您应该可以使用 Windows SAS 服务器执行此操作,并且可以使用本地 windows SAS 服务器执行此操作。
这是由于 Unix 的工作方式,这意味着必须挂载共享。
作为临时方法,这是不可行的。
我真希望 Unix 有一种更直接的方式来访问远程目录。
也就是说,或者可以执行以下操作之一:
- 将数据写入服务器本地目录,甚至是工作目录或家庭目录。然后将数据复制到本地目录。 (例如,通过使用企业指南中的复制文件任务,或者如果您可以从本地 PC 访问该位置,则手动复制它们)
- 在本地进行 SAS 处理并通过网络获取所需的数据(如果您需要访问数据库,这是不可行的,这在本地服务器上无法完成)
- 让负责您的 SAS 服务器的人设置一个可从您的计算机和 SAS 服务器访问的装载。
- 使用 SAS PC 文件服务器为 M$ office 文件完成此操作。
- 在您的本地计算机上设置一个 FTP 服务器,并使用带有
FTP
选项的 filename
到 read/write。请参阅 How do I read raw data via FTP in SAS? 了解想法。
感谢@Tom 的建议。
当运行在本地通过 EGuide 连接 SAS 时,我可以成功地声明一个 libname,如下所示:
libname winlib '\pc\folder\';
当使用 SAS 服务器时,这是不可能的,我不得不求助于使用 Copy Files
任务。
兴趣:
我认为这是因为 SAS 服务器是 Unix,这对吗?
我试过的:
libname test '//pc/folder/'
libname test2 'smb://pc/folder/'
我能想到的其他选项是将驱动器安装到 SAS 服务器,这对我来说不可行,因为这是临时情况。
问题:
我如何为 SAS 服务器正确声明 libname
到 \pc\folder
?
几点说明:
我不能在本地 运行,因为我必须连接到几个数据库,而且我不想为此使用 PROC UPLOAD
或 DOWNLOAD
。
如果您希望 SAS 读取目录,则 SAS 进程需要能够看到该目录。
大多数公司所做的是创建一个共享目录,SAS 机器和您的 PC 都可以挂载该目录,然后您可以直接从两者引用文件,只是使用不同的路径。
否则,如果您希望 SAS 使用 EG 可以看到但 SAS 不能看到的文件,那么我建议让 EG 上传该文件。有自定义任务可供 EG 上传二进制文件。
另一种方法是创建 SAS 代码以连接到可以查看文件并将文件拉过来的机器。也许使用 FTP 或 SFTP 协议。
不幸的是,没有办法按照我希望的方式执行此操作(在 Unix 环境中直接使用 libname
语句中的远程路径)。
您应该可以使用 Windows SAS 服务器执行此操作,并且可以使用本地 windows SAS 服务器执行此操作。
这是由于 Unix 的工作方式,这意味着必须挂载共享。
作为临时方法,这是不可行的。
我真希望 Unix 有一种更直接的方式来访问远程目录。
也就是说,或者可以执行以下操作之一:
- 将数据写入服务器本地目录,甚至是工作目录或家庭目录。然后将数据复制到本地目录。 (例如,通过使用企业指南中的复制文件任务,或者如果您可以从本地 PC 访问该位置,则手动复制它们)
- 在本地进行 SAS 处理并通过网络获取所需的数据(如果您需要访问数据库,这是不可行的,这在本地服务器上无法完成)
- 让负责您的 SAS 服务器的人设置一个可从您的计算机和 SAS 服务器访问的装载。
- 使用 SAS PC 文件服务器为 M$ office 文件完成此操作。
- 在您的本地计算机上设置一个 FTP 服务器,并使用带有
FTP
选项的filename
到 read/write。请参阅 How do I read raw data via FTP in SAS? 了解想法。
感谢@Tom 的建议。