我一直试图了解SAS库/文件夹是如何存储在物理位置的。我试图在管理层理解这个概念。
为了进一步解释我的困惑,我想一步一步来-
(1)SAS代码在客户端运行。任何变量/library/dataset在元数据层都有定义,这意味着元数据层包含指向物理地址的逻辑地址,我们可以在计算层上找到这些地址,而计算层是在linux系统上找到的。如何找到逻辑地址和物理地址之间的映射。或者如何在SAS管理控制台或Linux中跟踪变量/library/dataset。
(2)SAS客户端->SAS服务器->数据库。所以当我们从数据库中访问任何表时,它首先被转换成SAS表。如果我对这个逻辑是正确的,那么应该有一些物理位置保存这些SAS表。如何在计算层上找到这些物理位置。
(3)如果我作为一个用户,创建一个SAS数据集,那么它保存的格式是什么,保存在哪里?它是被保存为Linux上的平面文件还是某个数据库中的表?
(4)我仔细考虑了这个问题,又产生了一个困惑。
Proc SQL: How / When does SAS Move the Data
当任何数据表从数据库服务器加载到SAS服务器时。它是否像在整个会话中那样驻留在那里,或者每次调用表时,都会命中数据库。
我对SAS的理解可能有误,所以请尽可能纠正我。
谢谢

最佳答案

关于q2&3)是和否关于正在转换的数据库。当您读取数据库时,根据您的查询,sas会将查询传递给db,然后将结果传递给sas。如果结果是一个表,则取决于用户指定将其保存到的位置。对于与q3的链接,我们假设它指向工作库。这是服务器上的暂存/临时空间,但在SAS中。它存在于SAS会话中,当会话关闭时,它被清除。工作文件夹中的数据集以专用SAS格式SAS7BDAT存储。
工作库本质上是目录中的文件夹,而不是数据库中的文件夹。
如果由于某种原因无法将查询传递给数据库,则可能是某个函数不是有效的数据库函数,或者该函数正与工作库中的SAS数据集联接,则首先将服务器中的整个表导入SAS会话,然后执行查询。这是非常有效的,所以理解它是如何工作的符合用户的兴趣。

关于linux - SAS库的存储方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38112790/

10-16 03:34