我们已经迁移了我们的数据仓库,并且我们被要求使用SAS EG连接到我们所有库的元数据服务器。PC SAS可以用于绕过SAS EG连接到Unix会话吗?
有没有办法仍然使用PC SAS连接到这些库?如果是这样,关于如何做到这一点的任何提示?
我更喜欢使用Base SAS出于各种原因,其中之一是使用SAS EG,如果我们的元数据服务器关闭(发生了很多),那么我无法验证我的会话,因此我被搞砸了。
此外,我的大多数SAS编码并不要求我访问特定的数据仓库,所以我宁愿不要绑定到SAS EG。
我们已经迁移了我们的数据仓库,并且我们被要求使用SAS EG连接到我们所有库的元数据服务器。PC SAS可以用于绕过SAS EG连接到Unix会话吗?
有没有办法仍然使用PC SAS连接到这些库?如果是这样,关于如何做到这一点的任何提示?
我更喜欢使用Base SAS出于各种原因,其中之一是使用SAS EG,如果我们的元数据服务器关闭(发生了很多),那么我无法验证我的会话,因此我被搞砸了。
此外,我的大多数SAS编码并不要求我访问特定的数据仓库,所以我宁愿不要绑定到SAS EG。
大多数情况下,这是您网站的数据仓库管理员(控制对数据仓库访问的人员)的问题。它可以或不可能直接连接到数据仓库,具体取决于它的设置方式以及如何完成许可。通常情况下答案是否定的,并且它的设置是为了避免允许这样做(因为这是处理认证的一种简单方法)。
除此之外,您的第二点并不意味着您无法使用Enterprise Guide并避免使用元数据服务器。在“企业指南”中,您可以选择要在哪个服务器上运行代码,其中应该包含“本地服务器”选项,该选项是本地Base SAS安装。 (实际上,这就是我使用Enterprise Guide的100%。)因此,如果元数据服务器关闭,或者由于其他原因想要避免连接到它,您可以简单地使用本地连接配置文件打开EG并在本地运行代码。
有几个大的IF。
如果您有在桌面上运行SAS的许可证。
如果您拥有桌面SAS上正确的ACCESS引擎的许可证。
数据仓库/数据库有权限通过ACCESS引擎远程登录。
如果所有这些都是真的,那么是的。如果没有,没有。
当然,您可以连接到PC SAS的元数据定义库 - 只需要两条语句!
options metaserver="YourMetaserver.domain"
metaport=8561 /* as appropriate */
metauser="YourMetadataUserID"
metapass="YourMetadataP*ssw*rd";
libname YourLibref meta library="The library name given in metadata";
个人而言,我更喜欢用librefs比记住库名工作,所以我写了下面的适当分配(你需要首先连接到元数据服务器,通过上面的选项语句)
%macro assign_lib(
libref= /* libref that needs to be assigned */
);
%if %sysfunc(libref(&libref)) %then %do;
data _null_;
length lib_uri LibName $200;
call missing(of _all_);
nobj=metadata_getnobj("omsobj:[email protected]='&libref'",1,lib_uri);
if nobj=1 then do;
rc=metadata_getattr(lib_uri,"Name",LibName);
call symputx('LIB',libname,'L');
end;
else if nobj>1 then do;
putlog "ERROR: More than one library registered with libref &libref";
end;
else do;
putlog "ERROR: Library &libref not found in metadata";
end;
run;
libname &libref meta library="&lib";
%if %sysfunc(libref(&libref)) %then %do;
%put WARNING: Library &libref not assigned!;
%end;
%end;
%else %put NOTE: Library &libref is already assigned;
%mend;
使用方法如下:
%assign_lib(libref=SVRLIBRF)
看起来像它会工作,因为我看到出现新分配的库的图标,我可以双击该库并查看所有相关的数据集。但是,出于某种原因,我有一个“注意:库xxxx不存在。”消息和我尝试打开的任何数据集都是空的。借助SAS EG,我发现这些数据集不是空的。 –
这可能是由于元数据(或权限问题)中该库的定义不正确。 –
我看到解决它是否可以连接到PC,从仓库SAS无需连接到元数据服务器的答案。我认为也可以从PC SAS连接到元数据服务器。你对这种方法感兴趣吗? – Quentin
我有这样的设置,但我们的管理员已经创建了一个单独的autoexec,以便我们可以连接到库,但我们没有连接到元数据服务器。我们也有连接到元数据服务器的EG。所以两者都安装在我们的桌面上。 – Reeza
@Quentin,是的。任何想法如何? –