Conectando SAS ao SQL Server Via ODBC

IMAGE

O ODBC é um conector de acesso aos dados e o SAS utiliza ele para realizar a leitura de dados para a utilização dele no SAS transformando tabelas de dados em tabelas SAS.

Pré Requisitos

Instalar o client ODBC do SQL Server ele pode ser instalado através do seguinte pacote

mssql-tools.x86_64

Outro pré requisito é ter o Unix ODB instalado em seu sistema operacional ele é instalado a partir do seguinte pacote

unixODBC.x86_64

Vamos partir da premissa que já possui os dois instalados mas caso não possua basta apenas rodar o seguinte comando

yum install -y unixODBC.x86_64 mssql-tools.x86_64

Que eles devem ser instalados sem muita dificuldade

Configuração SO

Antes de partirmos para a parte mais legal que é o acesso aos dados pelo SAS precisamos primeiramente realizar uma configuração em nosso sistema operacional mais exatamente em um arquivo especifico o odbc.ini o arquivo que da vida a toda nossa arquitetura de acesso aos dados via ODBC no linux

Primeiramente vamos encontrar um arquivo que será muito importante para continuarmos que é a lib de conexão de SQL server com ODBC que é chamada de Driver pelo nosso ODBC, precisamos saber o caminho exato dela para conseguir realizar a configuração do Nosso ODBC de maneira correta então para isso como root iremos realizar o seguinte comando no nosso diretório ROOT “/”.

find . -name msodbcsql17

Se você possui o Driver ODBC em sua maquina ele devera retornar algo parecido com isto, lembrando que isso depende muito de como você realiza sua instalação e seus diretórios padroes para isso

O caminho que nos interessa é o segundo então iremos até ele com o seguinte comando

cd /opt/microsoft/msodbcsql17

Chegando lá teremos as seguintes pastas dentro dele

O diretório que nos interessa é ao diretório LIB64 então entraremos nele

Dentro dele deve existir somente uma lib que é responsável por coordenar o acesso aos dados, iremos guardar este caminho dela que será muito importante a frente

/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.2

Após isso podemos partir para a configuração de nosso ODBC.INI

ODBC INI

Este arquivo será o responsável por passar os parâmetros necessários para que consigamos conectar ao nosso banco de dados via ODBC ele fica no seguinte caminho

/etc/odbc.ini

Ele possui o seguinte formato:

[NOME_DO_DSN] 
PARAMETROS

O nome do DSN é quem é chamando quando você deseja utilizar

Os parâmetros podem variar de Driver para driver cada um tem seu modo de se comportar quanto aos parâmetros um bom modelo de DSN para SQLSERVER é o abaixo

[mssql]
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.8.so.1.2
Server=vm4041.vmwarenet,1433
Username=
Password=
Database=testedb

Driver : Local do driver SQL Server ODBC

Server: Maquina e porta a qual deseja se conectar

Username (Opcional): Usuário que deseja realizar a conexão

Password (Opcional): Senha do usuário

Database: Banco de dados que deseja conectar

vi /etc/odbc.ini

E então você estará dentro do arquivo ai basta somente inserir nele as linhas acima realizando os ajustes necessários para que seu servidor seja o destino

E então ele devera ficar mais o menos assim:

Após isso seu arquivo já esta configurado basta apenas realizarmos o teste de conexão e para isso iremos utilizar uma ferramenta chamada isql

Teste de conexao

Para realizarmos o teste rodaremos o seguinte comando

isql mssql sasuser SuaSenha

Caso a configuração esteja ok iremos receber o Seguinte output:

E devemos verificar se conseguimos realizar um comando simples na tabela para verificar se esta tudo correto, faremos isso a partir do seguinte comando

select * from mssqlteste;

Que já é uma tabela criada em nosso banco de dados de teste

Após esse teste estar concluído o SAS entra na brincadeira

Configuração SAS

Para iniciarmos a configuração do SAS teremos que passar por alguns pontos essenciais antes de realizar a conexão propriamente dita pelo ODBC, primeiramente iremos realizar a parametrização das variáveis de ambiente do SAS e para isso precisaremos editar um Arquivo chamado SASENCV_LOCAL que fica no seguinte caminho

/sas/sasbin/SASFoundation/9.4/bin/

E para isso iremos ate este diretório e iremos localizar este arquivo

Após realizarmos a localização do arquivo podemos edita-lo com o seguinte comando

/sas/sasbin/SASFoundation/9.4/bin/

E para isso iremos ate este diretório e iremos localizar este arquivo

Após realizarmos a localização do arquivo podemos edita-lo com o seguinte comando

vi sasenv_local

E quando entrarmos no arquivo iremos adicionar as seguintes linhas a ele

 ODBCINI=/etc/odbc.ini
 export ODBCINI

 LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/microsoft/msodbcsql17/lib64
 export LD_LIBRARY_PATH

A primeira variável passara ao SAS onde procurar pelo arquivo ODBC ja a segunda ajudara o SAS a localizar o caminho da lib responsável pela conexão

Após isso você pode fechar o arquivo e iremos para a melhor parte a integração disso tudo com o SAS

Configuração SAS Management Console

Para configurarmos o SAS iremos realizar a configuração de 4 coisas importante

  1. Servidor ODBC
  2. Conexão ao Servidor ODBC
  3. Library ODBC
  4. Registro das tabelas

E para isso teremos que cumprir algumas coisas antes de iniciarmos com isso tudo

Primeiros vamos acessar a console, com o usuário SAS em sua console do linux digite o seguinte comando

/sas/sasbin/SASManagementConsole/9.4/sasmc

Isso devera abrir a janela da console

Após isso realize o Login como SASADM@SASPW

Como primeiro Passo iremos criar um Grupo para realizar o acesso aos dados do SQL Server, faremos isso da seguinte forma

Iremos até o plugin de User Manager de nossa console SAS clicaremos com o Botao direito e iremos escolher a opção de criar novo grupo.

Após isso iremos receber a seguinte tela de inicio

Onde iremos passar o nome do nosso grupo.

Após isso iremos escolher quem fara parte do nosso grupo na aba Members conforme abaixo, importante listar o SAS Administrator para conseguir registrar a tabela com o mesmo

Após isso a parte mais importante iremos definir um login para este grupo na aba accounts iremos clicar em New e iremos criar um novo login com um detalhe muito importante

Iremos criar um Auth Domain para este grupo em especifico e ele será o seguinte

Ele que será responsável por gerenciar todos os logins do nosso SQL server.

Após isso você pode clicar OK e voltar para a criação da account, nessa passo você vai passar o usuário que tem no Sql Server para fazer a conexão via ODBC no meu caso é o seguinte

Após adicionar sua conta pode finalizar a criação do grupo Agora iremos para a criação do Servidor ODBC

Criação do Servidor ODBC

Para efetuar a criação do servidor iremos até a aba Server Manager da nossa console SAS e clicamos com o Botão direito e selecionamos a opção New seremos levados para a tela de seleção de tipo de servidor e então basta localizar o tipo de servidor ODBC SERVER

Após isso teremos que escolher um, nome para o Servidor

Em uma segunda tela podemos deixar os valores padroes que vem

Após isso teremos que passar a informação de conexão ( O DSN ) que criamos anteriormente e para isso passamos o nome dele que era mssql e a tela ira ficar conforme abaixo

Após isso na mesmo tela você terá que fazer a configuração do Login que será utilizado para acessar o SQL Server e para isso basta selecionar onde esta Default Auth a opção que criamos anteriormente

E a tela ficara conforme abaixo

Após isso você terá concluído a criação do Servidor podemos partir para a criação da Lib

Criação da Library ODBC

Para realizarmos a criação da Lib iremos ate o plug-in de Dat Library Manager e iremos expandi-lo e clicaremos com o botão direito na pasta Libraries

Então iremos selecionar a opção New Library

Assim como no servidor iremos escolher a opção de Library ODBC

Após isso iremos selecionar um nome para ela

Iremos selecionar o Servidor de Assign dela

Iremos selecionar uma libref

E então chegamos a parte mais importante onde iremos selecionar os parâmetros de conexão da Library

Primeiramente iremos definir um usuário padrão para o login automático no ODBC e para isso iremos clicar no seguinte botão

E seremos levados para essa tela

Você ira selecionar View All e será disponibilizado seu login que escolheu no momento da criação do Grupo, conforme abaixo

Então ira selecionar o sasuser e clicar ok

Após isso teremos que especificar o Schema que iremos utilizar no nosso caso foi o dbo e ficou desta maneira

Após isso basta clicar Ok e sua lib estará criada

Podemos então passar para o Registro de tabelas no metadados

Registrando Tabelas

Para realizar o registro da tabela clicaremos com o botão direito em nossa lib e escolheremos a opção Register Tables

Então será levado para a seguinte tela

Você clicará next e terá que passar as informações de login Ao SAS APP pois o SASADM não consegue abrir Workspace server e para esta funcionalidade isso é essencial então passe as credenciais necessárias

Se tudo estiver correto você deve receber a seguinte tela

Mostrando todas as tabelas em seu banco de dados e schema que selecionou, então basta escolher qual deseja registrar e clicar next

E então se tudo correr bem você deve receber o Seguinte Output

Dizendo que a tabela foi registrada com sucesso

Para termos certeza que esta tudo certo precisamos realizar uma validação e ele pode ser feita através do guide

Validação

Com seu guide e logado com um membro do grupo mssql users aberto escreva as seguintes linhas de código

data Teste;
  set mssqllib.mssqlteste;
run;

proc print data=work.teste;
run;

E então você deve receber o Output de acordo com o conteuso de sua tabela e em meu caso foi da seguinte maneira:

E esta finalizada a integração entre SAS e MSSQL por ODBC!