BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
MMascarenhas82
Fluorite | Level 6

Boa tarde!

 

Há possibilidade de utilizar tabelas em servidores diferente pelo Guide. Ex. join entre tabelas de dois servidores diferentes.

1 ACCEPTED SOLUTION

Accepted Solutions
AlexandreG
SAS Employee

Olá MMascarenhas82,

 

Tudo o que é feito no Enterprise Guide é no fim executado por um processo chamado SAS Foundation ("sas.exe" no Windows ou "sas" no UNIX). Esse processo é executado em uma máquina específica do ambiente, por exemplo, o Compute Server do seu ambiente SAS.

 

Essa máquina deve de alguma forma ter conectividade com as tabelas envolvidas no código, seja via File System (caso onde dois "SASApps" exibidos no Guide estão configurados em um mesmo servidor) ou via Rede (caso onde os "SASApps" estão em servidores diferentes ou quando o Metadata Server ao qual o Guide se conecta é diferente).

 

Você pode identificar o nome do servidor que está executando o seu código através do código abaixo:

 

%put Servidor Atual: &SYSHOSTNAME;

 

Quando o servidor executando o código é um mesmo, para utilizar tabelas que são exibidas em SASApps diferentes, por exemplo, basta definir uma nova biblioteca em um dos ambientes apontando para o mesmo caminho onde as tabelas estão localizadas no outro SASApp.

 

Quando o servidor executando o código é diferente, é necessário utilizar a rede entre os servidores e uma das seguintes opções:

 

 

Para verificar a licença dos seus servidores e avaliar suas opções, execute o seguinte comando:

 

proc setinit noalias; run;

 

Um abraço,
Alexandre

View solution in original post

4 REPLIES 4
Madrigano
Calcite | Level 5

O que pode ser feito é assinalar libnames que fazem conexão com bancos diferentes.
Ex.: Assinala uma libname em um banco ORACLE e outra em um banco SQL e usa o nome da libname no cruzamento.

LIBNAME libora ORACLE PATH=exadata USER=user PASSWORD=passwd;

LIBNAME libsql ODBC DSN=sqlsrv USER=user PW=passwd SCHEMA=dbo;

PROC SQL;
CREATE TABLE TABELA_NEW AS
SELECT A.CAMPO1, A.CAMPO2, B.CAMPO3, B.CAMPO4
FROM LIBORA.TABELA1 AS A
        LIBSQL.TABELA2 AS B
WHERE A.CHAVE = B.CHAVE;
QUIT;

MMascarenhas82
Fluorite | Level 6

Sim, libs de bancos diferentes eu tenho o conhecimento, mas me refiro a servidores SAS diferentes. Ex. Tenho o servidor S1 com o banco B1 e a tabela SB1 e tenho servidor S2, com o banco B2 e tabela SB2.... Como fazer o join entre elas?

AlexandreG
SAS Employee

Olá MMascarenhas82,

 

Tudo o que é feito no Enterprise Guide é no fim executado por um processo chamado SAS Foundation ("sas.exe" no Windows ou "sas" no UNIX). Esse processo é executado em uma máquina específica do ambiente, por exemplo, o Compute Server do seu ambiente SAS.

 

Essa máquina deve de alguma forma ter conectividade com as tabelas envolvidas no código, seja via File System (caso onde dois "SASApps" exibidos no Guide estão configurados em um mesmo servidor) ou via Rede (caso onde os "SASApps" estão em servidores diferentes ou quando o Metadata Server ao qual o Guide se conecta é diferente).

 

Você pode identificar o nome do servidor que está executando o seu código através do código abaixo:

 

%put Servidor Atual: &SYSHOSTNAME;

 

Quando o servidor executando o código é um mesmo, para utilizar tabelas que são exibidas em SASApps diferentes, por exemplo, basta definir uma nova biblioteca em um dos ambientes apontando para o mesmo caminho onde as tabelas estão localizadas no outro SASApp.

 

Quando o servidor executando o código é diferente, é necessário utilizar a rede entre os servidores e uma das seguintes opções:

 

 

Para verificar a licença dos seus servidores e avaliar suas opções, execute o seguinte comando:

 

proc setinit noalias; run;

 

Um abraço,
Alexandre

MMascarenhas82
Fluorite | Level 6

Boa tarde, Alexandre!

 

Tenho as licenças que mencionou... Vou verificar com meu suporte interno.

 

Muito obrigado!