2016-02-25 48 views
2

我们已经迁移了我们的数据仓库,并且我们被要求使用SAS EG连接到我们所有库的元数据服务器。PC SAS可以用于绕过SAS EG连接到Unix会话吗?

有没有办法仍然使用PC SAS连接到这些库?如果是这样,关于如何做到这一点的任何提示?

我更喜欢使用Base SAS出于各种原因,其中之一是使用SAS EG,如果我们的元数据服务器关闭(发生了很多),那么我无法验证我的会话,因此我被搞砸了。

此外,我的大多数SAS编码并不要求我访问特定的数据仓库,所以我宁愿不要绑定到SAS EG。

+1

我看到解决它是否可以连接到PC,从仓库SAS无需连接到元数据服务器的答案。我认为也可以从PC SAS连接到元数据服务器。你对这种方法感兴趣吗? – Quentin

+0

我有这样的设置,但我们的管理员已经创建了一个单独的autoexec,以便我们可以连接到库,但我们没有连接到元数据服务器。我们也有连接到元数据服务器的EG。所以两者都安装在我们的桌面上。 – Reeza

+0

@Quentin,是的。任何想法如何? –

回答

2

大多数情况下,这是您网站的数据仓库管理员(控制对数据仓库访问的人员)的问题。它可以或不可能直接连接到数据仓库,具体取决于它的设置方式以及如何完成许可。通常情况下答案是否定的,并且它的设置是为了避免允许这样做(因为这是处理认证的一种简单方法)。

除此之外,您的第二点并不意味着您无法使用Enterprise Guide并避免使用元数据服务器。在“企业指南”中,您可以选择要在哪个服务器上运行代码,其中应该包含“本地服务器”选项,该选项是本地Base SAS安装。 (实际上,这就是我使用Enterprise Guide的100%。)因此,如果元数据服务器关闭,或者由于其他原因想要避免连接到它,您可以简单地使用本地连接配置文件打开EG并在本地运行代码。

+1

它还取决于许可和桌面上安装的内容。可能有一个不允许您运行本地SAS的EG实例。 – DomPazz

+0

@DomPazz确实,但考虑到用户问他是否可以使用本地SAS安装......我做了一个我认为合理的假设。 – Joe

+0

了解。作为客户,第三方顾问和SAS员工,通常在这些情况下,新的SAS许可证已经被协商,桌面SAS被服务器/ EG SAS取代。 – DomPazz

0

有几个大的IF。

  1. 如果您有在桌面上运行SAS的许可证。

  2. 如果您拥有桌面SAS上正确的ACCESS引擎的许可证。

  3. 数据仓库/数据库有权限通过ACCESS引擎远程登录。

如果所有这些都是真的,那么是的。如果没有,没有。

3

当然,您可以连接到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) 
+0

看起来像它会工作,因为我看到出现新分配的库的图标,我可以双击该库并查看所有相关的数据集。但是,出于某种原因,我有一个“注意:库xxxx不存在。”消息和我尝试打开的任何数据集都是空的。借助SAS EG,我发现这些数据集不是空的。 –

+0

这可能是由于元数据(或权限问题)中该库的定义不正确。 –