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
- Servidor ODBC
- Conexão ao Servidor ODBC
- Library ODBC
- 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!
