Boa tarde!
Há possibilidade de utilizar tabelas em servidores diferente pelo Guide. Ex. join entre tabelas de dois servidores diferentes.
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
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;
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?
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
Boa tarde, Alexandre!
Tenho as licenças que mencionou... Vou verificar com meu suporte interno.
Muito obrigado!
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!