# 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;