Portal de Dados Abertos do Recife, como foi

Post por: Marconi Clementino

Experiência na implantação do CKAN 2.0 para o portal de dados abertos do Recife na EMPREL – Empresa Municipal de Informática do Recife

Olá, como é de interesse de alguns, venho por meio deste e-mail, descrever a experiência que tive na instalação do CKAN para o portal de dados abertos do Recife. Segue o relato:

Portal: http://dados.recife.pe.gov.br/

O Teste

Como era uma das metas da prefeitura, a abertura de dados do município, o departamento de inovação da EMPREL me solicitou que instalasse a ferramenta CKAN para testarmos. Até o momento nunca tinha ouvido falar da mesma, e meu conhecimento sobre dados abertos também era nulo.

Entrei no site, e segui a documentação de instalação “latest” (versão 2.2a). Como o guia padrão de instalação era para Ubuntu, sistema que utilizo no ambiente de trabalho, instalei na minha própria máquina. Começamos os testes e notei que não tinha a visualização em grid do live demo do site do CKAN. Também percebemos que a internacionalização estava incompleta naquela versão, pois navegando por páginas do portal identificamos muitas falhas na tradução para o português(alguns elementos não estavam traduzidos). Daí percebemos que teríamos muito trabalho na correção destes detalhes. Na versão 2.0 os problemas de tradução são mínimos.

Aprovação e instalação nos servidores da EMPREL

Após os testes, foi solicitado ao departamento de infraestrutura, a instalação do CKAN em um dos servidores no ambiente operativo. Passei o link da documentação de instalação do CKAN 2.0(que pelo meu entendimento, era a última estável) para os responsáveis, e já surgiu o primeiro problema: não tinham experiência no ambiente Python, e o servidor recomendado para instalação era o Ubuntu. O departamento, em questão de linux, só tem experiência/treinamento em servidores Red Hat e CentOS, e preferem não comprometerem com outras distribuições. Recomendei a documentação para instalação no CentOS.

Após algumas semanas e várias tentativas do departamento(neste período estava no curso de dados abertos ministrado por Bernadette), chegaram a conclusão de que não funcionava no CentOS, e que não era possível ter o CKAN no ambiente da empresa. Com isto dito, pedi um dia para fazer uma tentativa. Na dia seguinte tinha o CKAN 2.0 instalado em um CentOS em uma máquina virtual no meu desktop.

Após a prova do funcionamento, me disponibilizaram uma máquina CentOS recém instalada e autorização de root. Instalei o CKAN e copiamos para termos dois ambientes(desenvolvimento e produção).

Conexões de banco de dados

Após a instalação, o departamento de banco de dados questionou o grande número de conexões abertas pelo CKAN, percebi que a documentação de instalação deixava duas instâncias rodando, modificando isto, o número já caiu pela metade, mas mesmo assim, a quantidade de conexões abertas ficavam entre 8 e 12, e isto não era o habitual entre os sistemas da Emprel. Tive que estudar sobre o SQLAlchemy(utilizado pelo CKAN) para poder explicar cada uma das conexões a DBA responsável pelo banco. Ela entendeu e percebeu que este número não sobrecarregava nosso servidor PostgreSQL.

Personalização

Após o ambiente montado, a diretoria da EMPREL sugeriu que o portal de dados abertos tivesse a aparência/identidade visual parecida com a do portal da transparência(http://portaltransparencia.recife.pe.gov.br). Identifiquei o arquivo css responsável pela aparência do CKAN e pesquisei referências a ele dentro do projeto, com isto adicionei o tema “recife”(cópia do padrão do CKAN) e comecei a personalização da aparência.

Antes de ir a produção, surgiu a necessidade de remover a funcionalidade de registro de usuário externos. Então tive que pesquisar como remover esta funcionalidade. Com estas pesquisas fui conhecendo a arquitetura do sistema.

A primeira vez que tive que programar foi na adição da página de contato, era uma necessidade, e o CKAN não vem com esta funcionalidade.

Dentro dos pacotes do CKAN criei o controlador “recife” e passei a desenvolver as novas funcionalidades dentro dele. Sobre a questão de CMS, não utilizamos nenhum, todas as páginas adicionadas estão dentro da arquitetura do CKAN.

Segue uma breve lista das modificações que fizemos:

  • Criação do tema Recife

  • Modificações de páginas de layout(cabeçalho e rodapé)

  • Criação e adição da página de contato com validação de formulário

  • Adição e configuração de plugins e serviços para habilitação de:
       - Visualização de dados de CSV
       -  
    API de pesquisa(datastore)
       - 
    Visualização de dados geográficos
       - 
    Google Analytics

  • Página de comentários por Conjunto de Dados com o uso do Disqus(ex: http://dados.recife.pe.gov.br/dataset/comments/area-urbana)

  • Criação da página de aplicativos baseada na página de “related”, os aplicativos foram cadastrados apenas no ambiente de desenvolvimento por enquanto, em breve serão lançados e haverá um link na página principal. Página de aplicativos:http://dados.recife.pe.gov.br/apps (segue imagens em anexo)

Considerações finais

A pesar de nunca ter trabalhado com Python, com a minha experiência em desenvolvimento web(dentre elas, o PHP foi o mais importante), o entendimento necessário da arquitetura e do código fonte do CKAN foi bastante rápido. Com a documentação disponível e as listas de discussões OKFN todas as dúvidas foram sanadas.

Existe uma frente na empresa que deseja utilizar o DKAN, justificando que já tem experiência suficiente com o Drupal, mas pessoalmente eu discordo, gostei do que vi e aprendi neste processo de aprendizado com o CKAN.

O próximo passo da EMPREL é a automação de carga dos recursos através das APIs disponibilizadas pelo CKAN.

2 comments

26
ago

vocês tem algum tutorial de como vocês fizeram para personalizar o ckan de recife?

6
set

Essa personalização não foi feita por nós (PoliGNU), sugiro procurar o pessoal da EMPREL, ou o pessoal da OpenKnowledge Foundation Brasil (OKFn Brasil).

Comentar