Banco de Dados

11 jun, 2014

Importando a base de dados do Mapa das Organizações da Sociedade Civil

Publicidade

mapa das organizações da sociedade civil é uma das mais novas bases de dados do Portal Brasileiro de Dados Abertos. Fui tentar extrair algumas informações dessa base e tive um pouco de dificuldade para importá-la. Então, vou descrever aqui o processo que segui para tanto.

Antes de começar o “passo a passo”, vale destacar que:

  1. Essa base de dados vem de um dump de um SGBD PostgreSQL, um projeto de software livre;
  2. O PostgreSQL, por padrão, exporta e importa os dados num formato próprio binário, e num num formato de texto plano (como são os arquivos do tipo *.sql);
  3. O dump disponibilizado no DadosGovBr está no formato texto plano;
  4. A base é georreferenciada e, dessa forma, é necessário instalar, além do PostgreSQL, também a extensão para georreferenciamento PostGis;
  5. O dump foi salvo num arquivo sem extensão nenhuma (o que não faz muita diferença), mas sua extensão “natural” seria “.sql”;
  6. Existem três recursos disponíveis lá no DadosGovBr:
    1. a base de dados em si (“Base de dados do Mapa das Organizações da Sociedade Civil”), que é um arquivo de 259MB compactado no formato 7z, e que fica com 1.2GB após ser descompactado;
    2. o diagrama de entidade de relacionamento do mapa das OSCs, que é uma imagem no formato pngcom o desenho esquemático do banco de dados;
    3. o  dicionário de dados da base do Mapa, que é um arquivo html simples com o descritivo das tabelas da base de dados.

Mas vamos ao que interessa: o processo de “setup” e importação da base.

Estou descrevendo a minha experiência, que foi com um sistema debian-like (pode ser Debian, Ubuntu, Mint, Kubuntu, etc).

O primeiro passo foi instalar o PostgreSQL e o PostGis. Como nos repositórios do meu sistema operacional, a versão mais nova de ambos os softwares eram 9.1 e 1.5, respectivamente, optei por adicionar um repositório com versões mais recentes. Primeiro vamos abrir o arquivo abaixo:

<em>sudo gedit /etc/apt/sources.list.d/postgresql.list</em>

Em seguida adicionamos o seguinte conteúdo nele e salvamos:

<em>deb <a style="color: #1a96d4;" href="http://apt.postgresql.org/pub/repos/apt/">http://apt.postgresql.org/pub/repos/apt/</a> precise-pgdg main</em>

Agora precisamos adicionar  a “chave de autenticação” do repositório:

wget --quiet -O - <a style="color: #1a96d4;" href="https://www.postgresql.org/media/keys/ACCC4CF8.asc">https://www.postgresql.org/media/keys/ACCC4CF8.asc</a> |   sudo apt-key add

Agora atualizamos os pacotes dos repositórios:

sudo aptitude update
sudo aptitude safe-upgrade

E agora vamos, de fato, à instalação do PostgreSQL:

sudo aptitude install postgresql-9.3 postgresql-9.3-postgis-2.1 postgresql-9.3-postgis-scripts postgresql-common postgresql-contrib-9.3 postgis

Após finalizar a instalação, o primeiro passo é configurar o PostGis, então vamos logar com o usuário recém criado postgres:

sudo su - postgres

Vamos entrar na linha de comando do postgres:

psql

E depois executamos os comandos SQL para instalar o PostGis:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION postgis_tiger_geocoder;

Agora vamos criar um usuário para você no SGBD (aqui você deve usar o mesmo nome de usuário que você usa no seu sistema operacional):

CREATE USER &lt;<strong>seu_nome_de_usuario&gt;</strong> WITH PASSWORD '<strong>oscs_password</strong>';

Agora criamos a base de dados que vai receber os dados:

CREATE DATABASE <strong>oscs</strong> WITH OWNER=&lt;<strong>seu_nome_de_usuario&gt;</strong>;

Por fim, devemos prosseguir à importação, mas antes temos que voltar ao nosso usuário padrão do sistema operacional. Então saímos do shell do PostgreSQL com o comando:

\q

O próximo passo é sair do usuário postgres, com o comando:

exit

Agora, já de volta ao nosso usuário padrão, baixamos a base de dados e a descompactamos na pasta de nossa preferência (vou usar a home do usuário).

O passo seguinte é fazer a importação. Lembrando que o arquivo descompactado não possui extensão (“mapa-oscs”), mas isso não muda nada.

Então, o comando para realizar a importação é:

psql -f mapa-oscs oscs

Neste caso, psql é o programa do postgres em si, mapa-oscs é o arquivo de dump em texto plano e oscs é o nome da base de dados para onde serão importados os dados.

Pronto, agora a base já deve ter sido importada, talvez com alguns errinhos, mas já deve estar funcional.

Espero ter ajudado!

Abraços e até a próxima!