2016-02-25 60 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

這可能是由於元數據(或權限問題)中該庫的定義不正確。 –