# Bibliotecas (LIBNAME)
Para acessar um arquivos de dados é necessário informar o local onde está armazenado o arquivo e seu nome. Manter essas referencias espalhadas pelo código é uma prática que nos leva a um esforço de manutenção maior quando temos que fazer alterações na estrutura de armazenamento dos arquivos.
Para facilitar o referenciamento aos arquivos e as manutenções o SAS oferece uma forma eficiente de organizá-los: as bibliotecas de dados definidas pelo comando LIBNAME. Os arquivos de uma biblioteca possuem duas características comuns:
- São do mesmo tipo de dados; e
- Estão armazenados na mesma pasta.
# Criando uma biblioteca
O comando LIBNAME possui a seguinte sintaxe:
LIBNAME nome_biblioteca engine "caminho";
Onde:
nome_biblioteca - é o nome que será dado a biblioteca. Este nome deve ter oito caracteres ou menos, deve começar por letra ou "_" e pode ser formado por letras, numeros e "_" somente.
engine - Define que tratamento deverá ser aplicado aos dados daquela biblioteca. Com essa definição, o SAS lê diretamente os dados sem que tenhamos que importá-los manualmente, como fazemos com arquivos individuais. O tipo "Base" é utilizado para Excel, Hadoop, tabelas SAS, Teradata e outros tipos de dados estruturados.
caminho - Define a localização ou a URL para conexão dos dados. Pode ser um caminho físico ou uma conexão a uma banco de dados.
TIP
Como LIBNAME é um comando global não é necessário colocar um comando RUN após ele.
Exemplos:
Libname lib_faturamento base "e:/analise/faturamento/data";
TIP
A engine padrão é a base. de forma que o comando pode ser reescrito sem menciona-la como abaixo:
libname lib_faturamento base "e:/analise/faturamento/data";
# Consultando os dados da biblioteca
A sintaxe para acessar os objetos de uma biblioteca é:
nome_biblioteca.nome_objeto
TIP
Não é necessário digitar a extensão dos arquivos contidos na biblioteca.
Uma biblioteca só "existe" até que a sessão de trabalho seja encerrada ou até que seja explicitamente excluída.
# Excluindo uma biblioteca
Quando definimos uma conexão para uma fonte de dados como arquivos de texto, planilhas ou tabelas de banco de dadosm podemos em determinadas situações manter o acesso à esses objetos bloqueados para outros usuários ou processos. Assim, Ao encerrar a execução do programa que definiu a biblioteca, é uma boa prática excluir a biblioteca para liberar enetuais arquivos bloqueados. O comando para excluir uma biblioteca é:
LIBNAME nome_biblioteca CLEAR;
# Bibliotecas Adicionais
Quando uma sessão SAS é iniciada, várias bibliotecas são definidas automaticamente: Work e SASHELP
- WORK - É uma biblioteca temporária definida automaticamente no início de uma sessão de trabalho.
Os objetos criados nessa biblioteca são excluídos automaticamente ao final do trabalho. Esta também é a biblioteca padrão. Caso não seja especificado um nome de bibliote para uma tabela, a mesma será criada em WORK. Os dois comandos abaixo "apontam" para o mesmo objeto minha_tabela na biblioteca WORK.
data=work.minha_tabela
é o mesmo que:
data=minha_tabela
- SASHELP - É definida automaticamente, também e possui uma coleção de dados de exemplo.
data=sashelp.air
data=sashelp.baseball
data=sashelp.cars
TIP
O administrador do SAS também pode definir bibliotecas para que sejam carregadas automaticamente em seu ambiente de trabalho.
# Engines
# Lendo Dados do Excell
A maneira mais práticas de acessar as planilhas existenten em arquivo do Excell é atravé de uma biblioteca. Para criar uma biblioteca que contenha as planilas de um determinado arquivo
LIBNAME nome_biblioteca XLSX "caminho/nome_do_arquivo.xlsx";
Onde:
nome_biblioteca - é o nome que será dado a biblioteca.
XLSX - É a engine utilizada para trabalhar planilhas do Excell.
caminho/nome_do_arquivo.xlsx - Define a localização e nome do arquivo de dados. O nome do arquivo conter a extensão.
TIP
Como o excell não determina regras para a criação de nome de colunas em suas planilhas, de forma a garantir que o comprimento de um nome não seja maior que 32 caracteres ou que sejam usados caracteres especais ou espaço "em branco" entre nos nomes, pode ser necessário instruir o SAS para fazer a adequação dos nomes das colunas para o SAS 7. Com a opção VALIDVARNAME=V7, os nomes serão alterados automaticamente.
OPTIONS VALIDVARNAME=V7;
Os espaços e caracteres especias serão substituidos por "_" e os nomes serão trucados em 32 caracteres.
Exemplo:
options validvarname=v7;
* Carrega as planilhas da carteira de pedidos
libname vendas_xls xlsx "e:/analise/vendas/carteira_pedidos.xlsx";
* Lê os dados da planilha pedidos_linha_branca
proc contents data=vendas_xls.pedidos_linha_branca;
run;
libname vendas_xls clear;