Documente Academic
Documente Profesional
Documente Cultură
CADERNO DE DEBATES N 3
Banco de Dados
Braslia
EMPRESA DE TECNOLOGIA E INFORMAES
DA PREVIDNCIA SOCIAL - DATAPREV Dezembro de 2009
FRUM DE TIC DATAPREV
CADERNO DE DEBATES N 3
Banco de Dados
Braslia
Dezembro, 2009.
Empresa de Tecnologia e Informaes da Previdncia Social
Dataprev
Expediente
Organizao
Rachel Quintiliano
Coordenadora-Geral de Comunicao Social
Colaborao
Equipe Dataprev
Felipe Miranda Pereira
Joo Fernando da Silva Carli
Mrcio Firmino de Sena
Mrcio Montavo Reis
Impresso e Acabamento
Servio de Editorao e Reprografia Dataprev
Boa leitura!
Sumrio
Na estratgia que est sendo projetada, o primeiro backup ser realizado no prprio
disco. Estamos adquirindo complexos de armazenamento de dados com intelign-
cia de software que fazem a replicao dos dados para um disco Sata. Em seguida,
os dados replicados nos discos Sata sero copiados para uma fita e um site secun-
drio. Assim, nossa base principal no ser comprometida e o ambiente no
precisar ser desligado para a realizao da salva off-line, como executada
atualmente para a maioria dos nossos bancos de dados.
Esse um resumo do trabalho que temos feito para garantir a maior disponibilidade
possvel de todo o nosso acervo. A Dataprev est se prevenindo at mesmo quanto
ocorrncia de desastres, uma vez que o acervo de todos dos nossos segurados est
contingenciado e pronto para entrar em produo em outro site. Nesse sentido,
alm de migrarmos o mainframe, estamos oferecendo mais segurana com um
maior nvel de contingenciamento dos sistemas atuais.
Mais uma vez, temos de falar sobre os desafios. O primeiro corresponde gesto do
processo de implantao de um novo banco. Como que vamos fazer isso? As
responsabilidades nesse processo de implantao, o planejamento de projeto, a
sustentao do que j foi para a produo, como que trabalhamos para a atualiza-
o de uma nova verso? No podemos simplesmente implantar diretamente uma
nova verso. Existem atualmente mais de duzentas aplicaes rodando em nossos
ambientes de produo. No podemos simplesmente mudar a aplicao sem antes
testar e garantir que aquelas aplicaes continuem funcionando aps uma atualiza-
o. Como realizamos esses testes? No mainframe h uma ou duas ferramentas.
Na plataforma baixa, existem mais pontos de falhas, vrios ns dentro dessa cadeia
que podem falhar. Ento, preciso garantir o monitoramento de ponta a ponta.
entender. A pergunta : o que vocs usam? Gostaria de saber, dos que usam Oracle
ou DB2, que nvel de dependncia existe em suas empresas? O que vocs usam de
tecnologia proprietria desses fornecedores para melhorar a performance e o
desempenho desses bancos de dados? Como blindamos isso de modo a no ficar
presos a uma determinada tecnologia?
Por fim, o ltimo tema que gostaria de compartilhar est relacionado ao tratamento
do processo de segurana dos ambientes de banco de dados. Temos de garantir
ambientes cada vez mais seguros, principalmente nosso acervo de dados. A ttulo
de ilustrao, toda a vida laboral de muitos milhes de brasileiros est registrada no
acervo de dados da Previdncia Social. Interessa-nos enormemente manter esses
dados cada vez mais seguros. Ento, temos trabalhado em polticas de senhas,
estratgia de acesso de banco de dados e alguns conceitos de segurana e gostaria
de entender um pouco do dia-a-dia da empresa de vocs.
DEBATE
Serpro - Para sistemas de alta disponibilidade com informao com muito mais simplicidade e agilidade.
contingncia, temos identificado dois fatores crticos Outra questo que considero importante a portabili-
dentro do Servio Federal de Processamento de dade. No se trata de simplesmente pegar os dados do
Dados (Serpro). O primeiro diz respeito queda no mainframe e trazer para uma plataforma avanada.
desempenho. Desempenho e alta disponibilidade so Isso exige uma modelagem total desse novo sistema
altamente conflitantes. Em ambientes OLTP, a perda na nova plataforma. s vezes, querer simplesmente
no significativa, mas em ambientes de Data importar traz mais problemas do que solues.
Warehouse, sim. Por qu? Isso depende exclusiva-
mente do modelo de dados que foi implementado. Serpro Ainda sobre a alta disponibilidade, h algu-
Assim, tem de ser desenvolvido no modelo de dados. mas questes. Quando voc tem um Rack, possvel
Hoje, quem diz que um ambiente de alta disponibilida- dizer: muito simples, a distribuio de usurios se
de e contingncia vai funcionar independentemente faz pela conexo. At ai, tudo bem. Atende a OLTP? Na
da aplicao e do modelo de dados no tem conheci- maioria das vezes, sim. Em caso de DW, isso no
mento. Em ambientes de alta disponibilidade, o ocorre, porque o grande problema no a quantidade
ambiente dever ser planejado a partir do modelo de de usurios na mquina, mas a complexidade do
dados. Outra coisa tambm muito difcil em alta comando SQL que est rodando naquele momento.
disponibilidade o uso de ndices. Normalmente, os No faz sentido deixar o comando SQL ficar em uma
ndices bi-tri no se adquam alta disponibilidade. mquina s. Se voc distribuir o comando SQL nas
Terei de partir para outro raciocnio. O conceito de alta duas mquinas, haver um ganho, mas tambm outro
disponibilidade implementvel? Sim, mas deve ser problema: as reas de classificaes. algo bastante
pensado desde a sua concepo. complexo. Em ambiente Rack, para comandos exausti-
vos, voc vai ter de distribuir e lidar com as consequn-
Dataprev - O Serpro est trabalhando nesse ambiente cias disso. Outra coisa: como fazer os seus servios
de banco de dados e tem adotado uma estratgia noturnos no ambiente Rack? Como sero rodados os
parecida com a Dataprev quanto ao ambiente de uso servios batches? Como fazer essa distribuio? Isso
de banco de dados. no automtico. Quem acha que alta disponibilidade
passa simplesmente por jogar a aplicao no tem
Serpro - No sei se a MySQL continuar livre daqui conhecimento e no passou pelas dificuldades. Alta
para frente, tendo em vista a fuso entre a Oracle e a disponibilidade algo que precisa ser pensado desde
Sun. Portanto, precisamos ter cuidado ao falar em o modelo, bem como na implementao, no backup.
MySQL. A nova diretoria do Serpro tem enfocado
bastante a questo do uso da estrutura de software Dataprev - Queria fazer um comentrio sobre portabi-
livre, seja para SGBD, seja para aplicaes nos lidade e migrao. Ao portar dados, voc acaba
servidores. Ao mesmo tempo, tem feito um trabalho trazendo os problemas existentes, at mesmo com
grande de migrao de sistemas e banco de dados, de riscos de acrescentar problemas novos plataforma
mainframe e at mesmo de plataformas baixas baixa. Fica, ento, o questionamento: em que medida
proprietrias - de SQL Server ou ainda Oracle para o portar no uma fase dessa migrao? O quanto que
PostgreSQL e a verso livre de MySQL. Esse projeto o portar no o primeiro passo para se fazer uma
comeou h cerca de dez anos, estando envolvidos os sada do mainframe e migrar os sistemas de forma
sistemas da Receita Federal. So sistemas isolados selecionada? Eu acho que a nossa empresa est indo
uns dos outros. Quando um atendente do Centro de por esse caminho. A escolha tanto de nvel tcnico
Atendimento ao Contribuinte (CAC) precisa consultar quanto estratgico, at porque faz parte do contrato
os dados gerais de algum, tem de acessar um no mudar os sistemas durante a transio.
sistema. Se quiser consultar a dvida ativa da mesma
pessoa, tem de entrar em outro sistema. A plataforma Dataprev - Outra coisa importante o desafio dessas
avanada vem facilitar a integrao desses sistemas e implementaes. Como vocs trabalham uma nova
o trafego de um lado para o outro, sem vrias cone- verso do seu banco de dados? Como feito o proces-
xes. Ou seja, permite a voc puxar a ficha de um so de testes? E o envolvimento das pessoas? Como se
contribuinte, de um devedor ou qualquer outra d a programao de uma nova verso? A Dataprev
segue a estratgia de trabalhar com uma verso Nesse esforo, no bastava levar as funes para
abaixo da ltima verso. Quando comeamos a outro lado. E os dados daquela rea? Por que o cadas-
implementar a ltima verso, ela j ganhou um nvel tro nico para todo mundo? H tambm a questo da
de maturidade, recebeu as features e os patches disponibilidade. Voc tem de construir uma quantida-
corretivos. Como vocs trabalham nas suas empre- de de sistemas para conseguir gerenciar o seu gerenci-
sas? A verso saiu e j tem um grupo estudando? ador. Embora parea meio paradoxal, voc tem de
Conseguem participar com quem trabalha com banco saber quais so os backups feitos, as tabelas em que
livre? Sabemos que alguns fornecedores disponibili- so feitas reorganizaes (re-orgs), do que preciso
zam um beta antes para as equipes testarem. Como fazer backup e atualizaes de estatsticas, etc. So
funciona isso? todas operaes que causam muita indisponibilidade.
Como resolver isso? O Banco do Brasil conseguiu
Banco do Brasil - As tarefas so dividas. Para o associar e comprar utilitrios que minimizam esse
mainframe, uma equipe trata da parte de aquisio e processo, os quais no trabalham por meio do SGBD.
outra cuida dos outros bancos de dados e demais Eles vo direto ao sistema operacional e trabalham o
plataformas. H Oracle suportando DW, ou seja, vrios arquivo. Assim, tem de fazer um re-org. Para todos os
aplicativos departamentais suportando esses dados. efeitos, mantm-se o arquivo disponvel, trabalha-se
A questo da disponibilidade muito crtica. A pergun- todo o arquivo off-line e faz-se uma cpia. Na verdade,
ta que surge : o que o Banco do Brasil est fazendo? faz-se uma cpia do arquivo, trabalha off-line, reorga-
No passado, a empresa adotou uma estratgia de niza-se o arquivo, chaveia-se o nome que o SGBD
centralizar todos os aplicativos e todas as bases de reconhece e, no instante seguinte, aplicam-se todas as
dados em um cluster, uma vez que havia recebido um atualizaes. Ocorrem, porm, pequenos momentos
direcionamento da IBM de que os membros desse de indisponibilidade. Com efeito, coaduna-se tudo isso
cluster poderiam crescer pelo menos at 24 ncleos com a janela batch. Isso andou bem at o momento
ali dentro. Entretanto, acabou se dando conta de que em que o Banco resolveu fazer a parceria varejista.
no havia mais endereos para advices. Havia trs Como trabalhar com esse nvel de acoplamento. Havia
caracteres para designar o endereo. O que fazer? uma janela batch definida, que impedia o no corren-
Partimos para comprar outro ambiente Sixplex. Veio, tista de ter carto de crdito. Com a parceria varejista,
ento, a dvida: o que tirar desse primeiro e levar para outras ferramentas tiveram de ser construdas para
o segundo? J em funo do grande acoplamento identificar e resolver essas questes de desacoplar
entre os dados e as funes, partimos da seguinte dados e funes. Fez-se necessrio ir base de dados
pergunta: o desenvolvedor que dono dos dados?. e trazer um determinado conjunto de informaes,
E ele dizia: Eu no acesso o dado de outro sistema, a trabalhar, entregar os dados para o prximo nvel.
no ser pelo prprio sistema. Comeamos a trabalhar Assim, cada um foi trabalhando at que aquele que
num esquema de sub-rotinas. Isso muito bom porque solicitou a primeira sub-rotina tivesse a informao
protege bastante, cria uma camada boa, porm gera necessria. Somado a esse processo j complexo,
uma vinculao muito grande entre dados e funes. preciso trabalhar com a integrao entre as platafor-
Quando se descobre que o dono do dado no o mas. Disso emergem os problemas de backup do
administrador de banco de dados (DBA), no a Oracle e do DW. At hoje so os mesmos problemas.
aplicao, mas o negcio, fica-se engessado. No tem Quando se montou o DW, a rea de TI disse assim: O
mais para onde ir. O atual desafio do Banco do Brasil , que ns sabemos fazer e o que a administrao de
ento, tirar os ovos de uma cesta, comea a classific- dados (AD) faz?. A questo que ns, tcnicos da
los e lev-los para outras cestas? Para voc comear a rea de banco de dados sempre, temos esse dilema.
fazer acordos de SLA, que tem 100% de disponibilida- H uma intriga muito grande entre as reas de dados e
de para tudo, no acontece. Ento agora ns escolhe- funes. Ora as funes se sobrepem aos dados, ora
mos qual SLA queremos. Ento, ele pegou a estratgia. o inverso. Ento, a TI tem de fazer um exame muito
Isso tambm difcil. Trata-se de um caso suis generis criterioso, de modo a identificar o que ela consegue
no Brasil, porque nos outros pases, quando o banco suportar e o que tem de repassar para outra rea.
faz negcio, depsito, retirada e emprstimo. E o Trata-se de ir mesclando as coisas. No h como ter
banco vende muitas coisas. Vende imveis, vende um sistema gerenciador de banco de dados sem
seguro. Uma sada encontrada foi comear a isolar dispor de um sistema para gerenciar o prprio sistema.
esses dados e ver o que cada um acessava. Para Essa a concluso a que chegamos.
comear, resolvemos o problema do acoplamento e
conclumos sobre a necessidade de separao por Dataprev - Eu sei que o Banco do Brasil e a Caixa tm
reas. Seguridade foi uma delas. Finanas outra. acervos enormes. Como o trabalho dessa janela de
backup desses dados de um acervo to volumoso, disco fibre channel para desempenho implica ter
com um SLA e uma expectativa de no parada dessa ntida compreenso do desempenho que se quer; que
disponibilizao de servios? mdia fica em fibre channel; o que pode ficar numa
mdia mais barata, quanto tempo ser gasto para levar
Banco do Brasil preciso ver como as coisas funcio- essa informao para fita. Para as informaes que
nam. O gerente da agncia, quando recebe um cliente, esto atualmente num disco Sata - um disco mais
tem de olhar o funcionamento da agncia. A agncia lento, porm mais barato - , existem estratgias para
tem os segmentos de atendimento e autoatendimen- recuperar os dados crticos. Uma informao vinda da
to. No atendimento, h o caixa e os terminais de fita demora a ser baixada, principalmente nos volumes
mltiplas funes operados pelo atendente. A pessoa que temos e administramos. Mas como isso se d? H
est com um problema vai ao banco e atendida ali. um grupo multidisciplinar voltado para negcios. No
Atualmente, o gerente tem um conjunto de informa- nosso caso, so as reas de desenvolvimento. Eles
es que lhe permite saber quem a pessoa que est sabem exatamente de quem essa informao,
sendo atendida. Ento, quando partimos para as conhecem a lei. Gostaramos de saber como feito
estruturas de DW, temos de saber exatamente o que esse tratamento nas empresas de vocs?
queremos resolver. O Banco resolveu sua questo
especfica inserindo todos os aplicativos no mainfra- Serpro - O Serpro uma empresa pblica que desem-
me. Isso permitiu ao gerente saber exatamente o perfil penha uma funo um pouco diferente, sobretudo por
do cliente sempre que for preciso. Outra questo no trabalhar com solues para si. Trata-se de uma
importante diz respeito situao dos negcios. Esses empresa prestadora de servios. Consequentemente,
so os grandes desafios que a alta administrao temos servios das mais diversas tecnologias e
tenta resolver. Temos de construir toda uma infraestru- solues. Seja para o Tesouro Nacional, a Receita
tura que torne essas duas informaes possveis. A Federal, o Instituto Chico Mendes ou a rea de comr-
partir disso, seguem os desdobramentos: Quem meu cio exterior, entre algumas dezenas de clientes. A
fornecedor? Quem so as pessoas que entregam? empresa , por essa razo, estruturada em diretorias
Quem entra? Quem interage com o negcio? Outro de desenvolvimento, clientes, infraestrutura, etc. No
dilema. Toda a infraestrutura est voltada para tenho uma visibilidade total da empresa, mas posso
resolver essas duas questes. s vezes nos perdemos
dizer, grosso modo, como isso funciona. Voltando
um pouco por achar que a infraestrutura dada pela
pergunta feita, foi colocada a questo dos versiona-
prpria infraestrutura, mas no . O gerente da
mentos. Em geral, quando um produto chega empre-
agncia tem condies de saber quem o fornecedor.
sa, segue para um projeto de desenvolvimento, depois
Quanto ao andamento dos negcios, preciso saber o
para uma rea de administrao de dados e, posterior-
qu? De incio, ao colocar um produto novo no merca-
do, tem de se fazer o controle e ter o registro. No mente, para uma rea de desenvolvimento. Terminada
momento em que a primeira pessoa faz uma opera- a fase de desenvolvimento, passa-se homologao,
o, algumas vezes ns no temos como trabalhar quando so criados ambientes especficos. Da,
esse dado, porque temos de trabalhar essa operao segue-se para um ambiente de testes e, finalmente,
durante toda a vida til daquela operao, e mais, para a produo. As equipes de desenvolvimento tm
temos de manter essa informao para efeitos de ferramentas de versionamento dessa parte produtiva,
complains. Hoje os rgos internacionais, em funo de forma que, quando o produto chega para a equipe
das vrias crises, comearam a exigir que o registro de DBA de banco de dados e a de DBA de aplicativos, j
permanea disponvel por at vinte anos. Em razo se tem a verso a ser implantada na produo. Dentro
disso, passamos a colocar nos modelos informaes da nossa estrutura, temos ainda outro nvel de segu-
com as quais no nos preocupvamos antes. Por outro rana para os casos de uma verso de objeto, uma
lado, vem a questo do desempenho. Manter os dados package de banco, por exemplo. A verso no
no disco faz com que a aplicao fique mais lenta. aplicada de imediato naquele banco de produo,
Como, ento, ganhar performance tentando manter porque o desenvolvedor sabe o que est pedindo, mas
esse dado em memria? esse o desafio dos DBAs? no conhece o impacto daquilo dentro do processo
produtivo. Temos um banco modelo do DBA, onde se
Dataprev - Para fazer um backup, no preciso deixar realizam essas aplicaes. Em geral, isso feito
o banco de dados fora do ar. Essa exatamente a durante uma janela de produo. No podemos fazer
estratgia de infraestrutura que apresentei. Afora isso, durante o expediente, porque o usurio facilmente
cabe responder: Como trabalhar a questo do ciclo de percebe as alteraes no momento em que est
vida da informao? Como realizar o gerenciamento fazendo sua transao. Mas acontecem aqueles
desse ciclo de vida? Hoje a mdia muito cara. Usar um processos que so corretivos do desenvolvimento.
Dataprev - Parece que vocs tm um ambiente bem Ministrio da Previdncia - Por que se fala em migra-
segmentado em todas as fases at mesmo na o? Porque as grandes empresas hoje trabalham
homologao - , com a preocupao e a precauo de com mainframes, a exemplo da Dataprev, do Serpro e
aplicao de packages e cdigos desenvolvidos pelo do Banco do Brasil. At onde sei, as grandes aplica-
desenvolvedor que vo rodar dentro do banco de es ainda esto baseadas na arquitetura mainframe,
dados num ambiente isolado. Sobre isso, tenho que uma arquitetura de banco de dados e construo
algumas perguntas: Como trabalhar o relacionamento do cdigo em si. Minha pergunta: Para as grandes
com o desenvolvedor no que diz respeito ao contedo aplicaes crticas e de alta disponibilidade, o que
dos dados desse banco de homologao? Existe uma cada uma dessas empresas tem hoje, o ambiente
expectativa de o desenvolvedor sempre ter aquele Oracle, SQL Server ou banco de dados livres, o ambien-
acervo completo, com o banco de dados de homologa- te entendendo banco de dados e aplicao, o que
o igual ao de produo? Vocs trabalham com vocs diriam sem considerar legado? Vou construir
conceito de Itil, que tem todas aquelas gerncias de hoje um sistema novo. Banco do Brasil, conta corrente,
servios. Isso j est implementado? Banco Nacional, o Serpro. Mas hoje, onde vocs
colocariam um aplicao crtica em Oracle, SQL Server
Serpro - No Serpro, dispomos do Specs X, uma ou banco de dados livre? Vocs colocariam sua
ferramenta de desktop que trabalha todas as fases do aplicao crtica em qual dessas plataformas?
Itil, por meio da qual fazemos gerncia de problemas,
mudanas, servios e incidentes. possvel tambm Serpro No Sepro j trabalhamos assim. Diversas
fazer gerncia de inventrios, mas isso ainda no foi aplicaes crticas j rodam em Oracle. H um exem-
implantado. Para realizar as gerncias, o desenvolve- plo de um banco em SQL, super crtico, que o das
dor precisa distribuir um objeto num ambiente de Notas Fiscais Eletrnicas. Existem vrias outras
homologao ou de produo. Ele abre uma demanda aplicaes de mainframe que esto sendo migradas,
dentro dessa ferramenta, direcionada a um grupo portadas para a plataforma baixa.
executor podendo tambm ser dezenas de grupos. O
grupo precisa ter conhecimento de qual outro executa Serpro - Ns temos que avaliar o projeto, porque no
aquela demanda. Se para banco de dados, tem l um podemos confundir disponibilidade com performance
endereo; a cai naquele grupo de execuo. A partir e SLAs. So trs assuntos diferentes no mundo de TI.
da, a equipe de DBA, a executora, avalia viabilidade da Quando voc contrata um projeto, preciso especifi-
demanda. Se no for vivel, a demanda devolvida ao car sua prioridade: disponibilidade, performance ou
demandante, que analisa e faz as correes devidas. segurana dos dados. Eu imagino que um sistema
Se for aplicada e no houver o sucesso, acontece a bancrio e de caixa priorize a disponibilidade. A
mesma coisa. Temos uma ferramenta de desktop que performance importante porque tem uma pessoa ali
atende a essa soluo. Quanto ao ambiente de aguardando na fila, mas a disponibilidade daquela
homologao de produo, a segurana na verdade transao mais interessante que a performance.
a nossa grande questo. O desenvolvedor, em geral, Agora, para um sistema que armazena informaes,
precisa e quer ver o dado que est em processo ter garantia de que os dados no sero perdidos o
produtivo, bem como fazer um select (comando de que mais interessa. Trata-se de solues que no
seleo) e ver o valor de uma determinada coluna. Isso convivem entre si.
uma questo sria que ns temos. O dado do negcio
do cliente. O nosso cliente no Ministrio do Dataprev O Banco do Brasil j tem servios crticos
na plataforma baixa?
Planejamento, no Ministrio da Fazenda que o
dono da informao. Observem que nem o DBA,
Banco do Brasil - Temos uma estrutura de DW consi-
embora tenha at certa visibilidade desse dado e
derada forte e outra em Oracle. H questes crticas do
ferramentas que podem permitir criptografia ou outras
banco relacionadas disponibilidade. At roda em
solues para blindar esses dados, mas o desenvolve-
baixa plataforma, em DB2, mas ficam solues quase
dor, normalmente, no tem conta, nem permisso que departamentais. Agora, atendendo o negcio,
para ver dados no ambiente de negcios e tambm no atender cliente voc entrar, saber que o cliente pode
ambiente de homologao. Isso porque presumimos estar disponvel, pode estar querendo interagir com o
que o ambiente de homologao j um ambiente de negcio qualquer hora do dia, sendo cliente ou no,
pr-produo, contm dados de negcio, mesmo que que mais difcil vai autorizar crdito em cima de
mascarados. A massa de teste s estar disponvel no cadastros de outros at, porque cliente da casas Bahia
ambiente de teste e desenvolvimento. O desenvolve- pode sair com um carto de credito que o banco
dor ter acesso para visibilidade somente ali. forneceu e est controlando. Penso que pecamos pela
Tais facilidades, todavia, podem no ser suficientes para eliminar as dvidas sobre
a aquisio do Postgres? Com efeito, afora a questo do melhor suporte, outras
vantagens podem ser ressaltadas. A principal delas que o Postgres tem licena
BSD, que permite modificar, alterar, copiar, distribuir e, at mesmo, fechar o cdigo.
Empresas como Dataprev, Petrobras, Caixa e Banco do Brasil optaram por cria a
funcionalidade de segredo de Estado. Isso tanto possvel quanto fcil de fazer.
Outros exemplos desse tipo de poltica so oferecidos pela Bizgres e a Enterprise
DB.
As experincias confirmam o Postgres como algo vantajoso, haja vista que empre-
sas internacionais como IBM, SUN, EnterpriseDB, Greenplum, Command Prompt,
Curiosamente, ainda h quem pense que o Postgres s serve para padaria. Por qu?
Simplesmente pelo fato de ser gratuito, possuir um frum de discusso por meio do
qual muita gente oferece suporte e responde dvidas gratuitamente. Isso o que
justifica esse julgamento. Diferentemente do que sugere essa viso simplista, de
uns dez anos para c, o Postgres tem sido pensado em lugares crticos, que preci-
sam de performance e tm um alto nvel de estabilidade.
Bsico para ambiente corporativo, ele suporta Kerberos e LDAP. Ento, se tiver
Active Directory ou OpenLDAP, ou qualquer outro que seja LDAP, o PostgreSQL tem
suporte. Ele oferece suporte em inmeras localizaes e idiomas. muito tranquilo
criar um Postgres em idiomas como chins, tailands, latim, etc. Isso tem se tornado
uma prtica comum, uma vez que as informaes no so mais de um pas, tendem
a ser globais. Particularmente, recomendo o uso do TF8 ou do Unicode. Embora seja
um processo difcil, preciso comear a convergir.
No que diz respeito aos tipos de transaes possveis, esse sistema gerenciador
possibilita os usos do modo auto-commited; do controle de multiverso MMVC - que
permite acesso simultneo de leitura e escrita, utilizando um snapshot separado de
Lock explcito do tipo Acces Share, Row Share, Row Exclusive, Share Update
Exclusive, Share, Share Row Exclusive, Exclusive e Access Exclusive; bem como do
Savepoint para retornar a transao at pontos especficos.
Seja como for, o Postgres tambm tem limites e defeitos. Esses limites dependem
da verso do sistema operacional e da plataforma. Se por um lado, o tamanho
bsico do banco de dados ilimitado, o tamanho mximo de uma tabela atualmen-
te de 32 TB. Acima disso, tem de particionar. A quantidade de linhas por tabela
ilimitado, mas o tamanho mximo de cada linha 1,6 TB; e de um campo, 1 GB. O
limite de colunas por tabela varia de 250 a 1600, dependendo do tipo de dados. O
nmero de ndices tambm ilimitado e depende da aplicao.
h driver apenas para o Visual Basic. Para vrias outras, at mesmo para algumas
bem estranhas, como Ada, Algol e Cobol, h. Portanto, possvel programar em
qualquer linguagem que conecte a um banco de dados Postgres. Ele , provavel-
mente, o banco de dados que tem a maior quantidade de linguagens disponvel.
Assim, sempre que se vai desenvolver uma aplicao ou preciso mexer numa
aplicao com problema de performance, as primeiras perguntas que fao so: Que
cuidado foi dispensado previso do volume de dados que pode ser gerado? Foi
estimado o nmero de conexes e transaes? Pensou-se em escalar? A resposta
geralmente negativa.
J aconteceu de haver vrias mquinas com servidor Java na frente que apresenta-
ram problemas de concorrncia. A chave primria ficava presa. A aplicao ficava
lenta, pois no era possvel trabalhar com a chave primria em vrias instncias. O
que serviu para uma aplicao, no necessariamente serve para as demais. Insistir
nisso acaba resultando numa estrutura deficiente, que no foi planejada.
Geralmente nego tambm falas assim: Eu tenho um Data Center em Porto Alegre e
aqui em So Paulo, ou no Rio, ou em Braslia. Ento, eu quero que seja simultneo,
entendeu? Se fizer uma transao aqui, quero que a transao esteja no outro Data
Center (remoto) e que isso seja instantneo, sem que o usurio perceba. A eu falo:
os conceitos de sncrono e no assncrono so muito relativos. Se eu pegar uma
lanterna e acender apontando para o final da sala, parecer rpido e instantneo.
Porm, se fizer a mesma comparao, usando o sol, a luz que sa do Sol e chega
Terra leva oito minutos. Ento, o que sncrono num ambiente transacional comum
no considerado sncrono para esse caso.
isso gera uma perda de performance, o que torna esse recurso aconselhvel
apenas em ambientes muito crticos. Alm do mais, exceto as transaes bancrias
e on-line, a maioria das aplicaes no Brasil que conheo no tem esse tipo de
problema.
O PL/Prox, por seu turno, um tipo de linguagem procedural para banco de dados.
No caso do Postgres, serve para fazer particionamento de dados e tabelas. O Slony e
o Londsite so replicadores assncronos. Servem, sobretudo, para trabalhos com
informaes off-line ou que sero utilizadas de outra forma. O PgCluster seria o
Oracle Rack do Postgres se ele funcionasse. incrvel como ainda tem gente no
Brasil insistindo em usar o PgCluster em ambientes crticos ou em ambientes
pequenos e mdios. Isso no funciona. Ele lento, tem problema de instabilidade, o
cdigo ruim. Em bases acima de 10 GB, costuma cair ou mesmo corromper.
Embora a maioria dos rgos pblicos sempre queira uma certificao para o
Postgres, ainda no h certificao oficial. Algumas empresas como a EnterpriseDB e
a SRA-JP tem oferecido treinamento com certificao. Com efeito, alguns desenvolve-
dores do Postgres tm plena conscincia desse problema. No caso do mercado,
Uma radiografia bsica - O Postgres tem mais de 800 mil linhas de cdigos. O valor
aproximado do cdigo do Postgres de 1,8 bilho de dlares. O Pgfoundry, que o
repositrio de fomento de projetos, j ultrapassou os 292 projetos e mais ou menos
8 mil usurios. No SourceForge, h mais de 750 projetos com Postgres. So aproxi-
madamente duzentas pessoas envolvidas diretamente, trabalhando com cdigos,
traduo, documentao, caa aos bugs entre os quais eu me incluo. H uma lista
brasileira com cerca de 2 mil pessoas cadastradas para dar suporte. Alm disso,
trinta grupos de usurios esto espalhados pelo mundo, os quais organizam
encontros que entre desenvolvedores, usurios e pessoas interessadas. No Brasil,
essas reunies costumam acontecer no segundo semestre, em setembro.
DEBATE
N.I.: Debatedor e/ou instituio no identificados.
N.I - Voc conhece ou tem experincia de Mondrian por ndice? Sendo o ndice tambm particionado,
com PostgreSQL? Que contraste h entre ele e o como acesso por meio de um ndice cuja funo join
MySQL para DW com Mondrian? vai entender o ndice particionado e as funes de join
tambm so particionadas?
EBC Eu conheo um caso em virtude de um trabalho
que desenvolvi com uma equipe que trabalhava com EBC - Sim. Isso transparente para quem est
Mondrian. relativamente tranquilo, pois a parte mais fazendo.
pesada Mondrian em si. a seqncia que est
rodando o Mondrian. O repositrio depende muito do N.I. - Mas quais so as funes existentes dentro do
conhecimento das pessoas envolvidas. Se houver Postgres para fazer esse acesso? Porque o particiona-
gente especializada em Oracle, MySQL ou Postgres e mento no fsico, o principal o acesso. Eu no vou
se ajustar a equipe para atender, as performances so
acessar, por exemplo, uma tabela que eu no sintetizo.
parecidas. Naquele caso, saram de MySQL e vieram
para Postgres, sendo a base e a performance muito Eu tenho que primeiro ter o ndice particionado e a
parecidas. funo Join particionada na entrada...
Dataprev - O PL/Proxy no est no core (cdigo EBC - Ento, se voc fizer um Select e Left ou After
principal) do Postgres, isso? Como o trabalho de Join, isso fica transparente.
particionamento? Se particiono a base de dados do
Postgres, mexo em alguma parte do cdigo escrito na N.I. - E quando no transparente?
aplicao? Ou ele fica essencialmente por conta do
PL/Proxy no banco de dados? EBC O que costumamos fazer trabalhar com uma
estrutura de ndice diferente, com ndice invertido.
EBC - Se voc fizer particionamento da mesma Depende do tamanho e da quantidade de particiona-
instncia ou s de locais fsicos diferentes, no mentos. No caso, s do ndice, porque, quando
precisar do PL/Proxy. Agora, se for de muitas instnci- escrevo a clusula e mando para o banco, ele entende
as, vai precisar do PL/Proxy. Era para ele ter entrado na e sabe de onde vai pegar. Ocorre que, em algumas
verso 8.4, mas, como foi identificado que a API do situaes, trabalho com o ndice invertido, que o GIN.
Postgres para esse tipo de funo tinha um problema Na verdade, ele tem uma estrutura de controle. Se
de segurana, ele foi reescrito. Mas, no caso, o vocs forem olhar no cdigo, vero que h um negcio
PL/Proxy tem uma vantagem e uma desvantagem. A chamado Toast, que faz o controle desse tipo de coisa.
vantagem que se consegue fazer o balanceamen-
Eu no olhei o cdigo para saber te responder, mas sei
to/particionamento da forma que quiser. A desvanta-
gem que se tem de escrever aplicao para suportar porque automatizado. S me preocupo com o ndice.
isso. No transparente.
Dataprev - Normalmente quando vamos fazer o
N.I - Para mim, quanto ao particionamento, o funda- projeto, verificamos quais so os critrios principais de
mental no o fsico, mas o acesso. Como o Postgres consulta no banco, os mais crticos. A partir da,
tem as funes de join usando particionamento? criamos as estruturas de banco particionadas e
atreladas a esses critrios de consulta. Ento, acredito
EBC - Particionamento fsico? que no Postgres seja o mesmo conceito. Por que existe
esse tipo de implementao? Por exemplo, podemos
N.I. - No. Eu j tenho a tabela particionada. No particionar por range (intervalo). A, por exemplo, eu
importa como foi fisicamente particionado. Eu quero vou dividir por ano. Mais simples. Ento a minha
saber o seguinte, como o Postgres pega o join, a consulta Where ano igual a tal. Eu s vou pesquisar
clusula where e particiona? Quais so as funes de aquele subconjunto de dados daquela tabela e
join para particionamento? Como particiono o acesso daquele ano. Isso me facilita.
Dataprev - Na configurao do Postgres, voc pode SLTI - No tenho dvida de que teremos de conviver
escolher o mtodo de pesquisa a ser utilizado? Ele com a soluo. Outras alternativas disponveis esto
particiona ndice tambm? automtico? Mas voc em todos os nossos sistemas e eu acho que todas as
diz que para particionar tabela e ele particiona instituies lidam como essa questo da misso
ndice? crtica. Nem todos tm programas crticos.
EBC - Particiona ndice. SLTI Penso que temos de acelerar o processo dentro
das alternativas disponveis, conhecendo essas
Dataprev - Voc mencionou o Yahoo como sendo um alternativas, vencendo os nossos mitos. Assim,
grande caso de BI usando Postgres. Voc tem conheci- poderemos chegar do outro lado. Do contrrio, no
mentos de empresas aqui no Brasil fazendo o mesmo? vamos ter alternativas. Atualmente, so bastante
significativos os gastos com esse componente no
EBC - O pessoal que trabalha com SMS para a Tim. nosso oramento de TIs. Precisamos buscar uma
alternativa para isso.
SLTI Essa discusso sobre banco de dados traz
consigo uma questo muito importante que o custo
de Tecnologias de Informao. Os clientes tendem a
querer disponibilidade do negcio, tempo de resposta
e, ainda, pagar menos por isso. Essa uma questo
essencial para ns gestores. Porque quando chega
nossa mesa uma pequena fatura e estamos falando
sobre banco de dados. Vivemos o tempo do mainfra-
me, quando as faturas (custo) eram altssimas e hoje a
vivemos mesmo em uma plataforma aberta e uma
outra fatura enorme. Quem milita na rea e busca
racionalizar a questo da TI sabe que melhorar
tecnicamente essa questo do custo no significa
apenas reduzir, passa por melhorar essa racionaliza-
o dos componentes de TI. Ocorre que o banco de
dados tem se tornado um bandido ao longo dos anos.
Penso que essa uma questo muito importante para
ns que estamos militando e discutindo justamente a
esse respeito. As alternativas oferecidas pelo Postgres
vm de uma realidade para as empresas pblicas.
Temos vrias e cada vez maiores limitaes quanto a
oramento. Ns, que at criticamos a indstria em um
dado momento, que tomamos a deciso de mudar um
paradigma tecnolgico mainframe para uma platafor-
ma, temos de ter responsabilidade de no criar outro
paradigma tecnolgico que nos engesse. Penso que
no precisamos usar a melhor soluo para tudo, mas
precisamos fazer um trabalho das casas de categori-
zar, de buscar alternativas, de colocar a soluo
tecnolgica para a necessidade que tem, com a
negociao com os nossos clientes. Hoje, como
administrador de uma empresa pblica, no tenho a
menor dvida disso. No gostaria de substituir contra-
tos de mainframe por outro fornecedor. O que eu estou
buscando uma alternativa. Se no nos unirmos
nesse sentido, estaremos em srios apuros em breve.
Afora esses trs sistemas citados, h uma gama imensa de bancos de dados no
ambiente de plataforma baixa. Se formos falar somente em Oracle, so mais de 140
bancos de dados com dimenses diferentes. O menor tem aproximadamente 100
GB. So raros os casos de bancos pequenos na estrutura do Serpro, quando o SGBD
Oracle. Geralmente so bancos institucionais para atendimento aos clientes e
que, portanto, tm a populao como usurio, sendo, portanto, de grandes volumes
e altssima criticidade.
Outro sistema com tendncia a ter parte ou a totalidade de sua base em PostgreSQL
o Sistema de Medio de Vazo (SMV), da Receita Federal, cujo ambiente de
produo instalado em cada distribuidora e envasadora de bebidas no pas, a fim
de fazer a aferio do processo/volume de envasamento. No toa que o Governo
tem aumentado consideravelmente seu montante de arrecadaes. Podem at
diminui os volumes/valores das taxas, porm a arrecadao continuar aumentan-
do consideravelmente em virtude da melhoria nos sistemas e na fiscalizao pelos
rgos de Governo. Mais um sistema crtico tambm presente nesse ambiente, com
SGBD em software livre, o da Relao Anual de Informaes Sociais (Rais). Tanto o
banco da Rais quanto o do SMV tiveram, na ntegra ou em parte, suas bases migra-
das do ambiente mainframe para a plataforma baixa em PostgreSQL. Nesse
momento, ainda no trabalhamos com Postgres em sua plenitude, porque falta
implementar efetivamente a alta disponibilidade.
H uma briga muito antiga sobre essa questo do bloqueio de usurio para o acesso
aos bancos de dados desde o comeo da implantao dos sistemas em ambiente
produtivo. Os desenvolvedores sentem a necessidade de ver os dados sua frente
medida que julguem conveniente, recomendado ou imprescindvel, ainda que sem
ter o poder de entrar nos bancos e fazer alteraes. No Serpro foi definida uma
poltica no sentido de conscientizar os profissionais das reas de desenvolvimento
de que eles so usurios do ambiente produtivo. Dentro do ambiente de produo,
no podem e no tem um perfil que os permita fazer alteraes nesse ambiente.
Isso se tornou regra e tem sido colocada em prtica. Falta um pouquinho para
chegar ao estado da arte, mas caminhamos para isso.
Tem uma srie de aplicaes que estamos procurando fazer a migrao de mainfra-
me para a plataforma baixa. Por exemplo: Uma aplicao de patrimnio interno da
empresa, o Adpat, estava no mainframe e ns j procuramos fazer o teste para
produzi-lo em plataforma baixa. Fizemos uma srie de estudos, at mesmo sobre o
custo de uma aplicao no mainframe para podermos dispor cada servio no
ambiente mais adequado. No mainframe, permanece o que crtico, o que
imprescindvel, o que ocupa dimenses gigantescas, o que requer o nvel diferencia-
do que o mainframe consegue prover. Por outro lado, no tem muito sentido perma-
necer com um sistema de patrimnio interno da empresa no mainframe, uma vez
que onera todos os outros sistemas crticos. Ento, procuramos fazer esse tipo de
anlise e estabelecer essa definio para comearmos a alinhar o que permanece e
o que sai do mainframe.
Proposta para banco de dados de software livre - Nossa equipe tcnica realizou
laboratrios/testes recentes, tanto aqui em Braslia quanto em So Paulo. Nesse
laboratrio, precisvamos aferir efetivamente o nvel de confiabilidade da utilizao
do PostgreSQL em cluster. Isso porque temos sistemas crticos, aproximadamente
110 bancos de dados, que esto em Postgres. Porm, todos so single instance, ou
seja, no trabalham com clusterizao, nem com alta disponibilidade. Temos toda a
segurana de backup e segurana de dados, mas, se perdermos um servidor
completamente, teremos de fazer restore. E isso gera uma indisponibilidade. por
essa razo que outros sistemas ainda no entraram em ambiente de software livre
com bancos de dados PostgreSQL.
Nesse sentido, quanto mais caminhamos, mais avanamos em direo ao Linux Figura 1
sem subscrio e ao PostgreSQL. Isso sem abrir mo daqueles servios de misso Proposta de Banco de
crtica, que tm de ficar e vo permanecer no mainframe ou no Oracle. At porque Dados em Software
no podemos ser to inflexveis a ponto dizer que
vivel tirar tudo do mainframe e colocar numa platafor-
ma baixa. Essa ainda no nossa realidade. Mas cada
ambiente tem uma caracterstica, um nvel de comple-
xidade e um nvel de necessidade. Baseado nisso
que o Serpro, como empresa, est trabalhando.
DEBATE
N.I.: Debatedor e/ou instituio no identificados.
Dataprev Sobre a migrao do sistema Rais. Vocs precisa fazer aquele restore. Ento, vocs tm uma
estavam fazendo do mainframe para Postgres, rea de disco ou em outro servidor, semelhante quela
correto? Como estabeleceram essa estratgia? Foi onde voc fez os dados originais, para praticar de vez
pensado em Oracle? Por que no foi? Como vocs em quando o restore, ver se realmente a ferramenta
partiram para a definio j explcita de Postgres? est funcionando? Se ela realmente est atendendo
as suas expectativas? Ainda sobre a recuperao, de
Serpro Havia um direcionamento de Governo para a vez em quando voc tem de recuperar dados para
definio da plataforma ou, preferencialmente, para atender a aplicao, ou seja, uma coisa fazer o
utilizar plataformas livres. A equipe de desenvolvimen- restore da sua base em cima de incidentes ou proble-
to responsvel pelo sistema Rais j se sentia confort- mas de servidores; outra coisa ter de recuperar
vel e vontade o suficiente para trabalhar com esse dados para atender um problema da rea de negcios.
sistema dentro da plataforma, uma vez que ela j
garantia estabilidade e performance. Todas essas Serpro - Quanto recuperao parcial, medida que
definies foram feitas em conjunto, com as equipes temos necessidade, vamos criando um ambiente
de desenvolvimento, as reas de suporte do Serpro, paralelo para fazer a recuperao das tabelas.
bem como com as reas do cliente, que so os donos Recuperamos, trazemos a tabela, o subsite do banco,
efetivos das informaes. Ento, j partimos para e, a partir da, fazemos o recorte necessrio para as
atender o direcionamento conhecendo a potencialida- atualizaes na tabela do banco principal. Essa uma
de, a capacidade e a especificidade da demanda e da caracterstica. Em relao a ter um ambiente idntico
soluo proposta. Hipoteticamente, caso a Receita para fazer restore, isso seria impraticvel hoje em
decida fazer uma migrao de um sistema de sua base termos de volumes. Voc pega um banco de dados s,
de dados, e no queira utilizar a plataforma baixa para a exemplo do Sief, so trs instncias, em um s
esse sistema, ns teramos de coloc-lo em outra banco, so trs ns de Risc, cada n com determinada
plataforma. O direcionamento seria para alocar em quantidade de processadores, cada n com grande
software livre. De todo modo, a prpria Receita, por rea de memria e discos alocados. A ltima vez em
meio de um dos mdulos do Sped est vindo para o que acompanhei, estava com 35 GB de memria para
PostgreSQL. um n. imprescindvel ter performance. Voc tem
uma quantidade de placas de rede alocadas virtual-
mente por meio do Virtua IO, e bancos com placas de
Dataprev Sobre as reas de banco de dados e do
rede alocadas. Alis, mquinas com placas de rede
projeto de migrao, falou-se que o backup a parte
que tambm podem ser alocadas fisicamente. Toda a
mais fcil, bem como sobre a garantia do restore.
infraestrutura de IO direcionada s para esse ambien-
Tambm comentou que h uma rea que faz os
te em funo de sua criticidade. Criar ambiente similar
backups para o disco e depois direciona l para as a esse para testes impraticvel. Quando dizemos ter
robticas. Dentro dessa garantia, vocs fazem testes a garantia de conseguir restaurar, alm de j termos
contnuos ou peridicos desse restore? Define a feito restore, temos o sistema de backup. Hoje, ele faz
poltica de backup, implementa e, de repente, voc o backup, gera os logs daquilo que levou, informa de
que maneira est armazenado e em que fitas esto. Temos uma discusso grande com as equipes da
H ainda uma rea que acompanha isso, tambm produo acerca dos volumes. Dentro da empresa,
mediante processo automatizado. Temos uma ferra- tambm normatizada uma quantidade de registros
menta de automao de produo chamada Control- que pode ser tratada no ambiente de desenvolvimen-
M, que gerencia toda a execuo dos backups. A partir to, que pode ser passada do ambiente de desenvolvi-
do momento em que temos o backup executado, com mento para o de produo, mas que, normalmente,
return Code Zero, ou seja, foi executado com suces- no atende aos volumes necessrios para testes de
so, aquelas informaes esto reservadas, esto DWs e sistemas de informao gerencial. Queria saber
armazenadas em fita, certo? Se tivermos qualquer se vocs tm alguma poltica diferenciada nesse
problema com a fita, a empresa responsvel pelos aspecto. Uma segunda curiosidade sobre a desca-
auxlios robticos ou pela soluo vai se virar no que racterizao dos dados. Gostaria de saber se vocs
for, mas vai ter de trazer as informaes. tm alguma ferramenta para fazer isso ou se feito por
meio de codificao mesmo.
Dataprev Ns j tivemos problemas com algumas
ferramentas. Usamos o Archi Server. Temos o Legato.
Dataprev - A nossa caracterizao do dado - e a s
Temos tambm um dos primeiros bancos, uma
um complemento - nem sempre totalmente poss-
ferramenta desenvolvida na casa que opera por meio
de file system, que seria o CPIO mesmo, direto. vel. Se voc vai homologar uma soluo e levar dados
Passamos por situaes como: tnhamos a data da fictcios, no conseguir realmente homologar aquele
expirao para a ferramenta, mas a da fita j estava produto. Ento, a descaracterizao feita conforme a
vencida. Com isso, ele considerava aquela fita como regra de negcios e o desenvolvimento responsvel
scratch e no conseguamos mais recuperar a infor- pelo processo de descaracterizao.
mao. De certa forma, concordo contigo, se for
possvel exigir isso no contrato, bom obrigar o Serpro - Ou seja, o desenvolvimento que acaba
fornecedor a fazer de tudo para que a fita volte a ser fornecendo no necessariamente a massa de dados,
utilizvel. Mas se o cara no conseguir, voc perder mas a forma de descaracterizar aqueles dados que
essa garantia desse restore e ficar na mo do forne- sero colocados em ambiente de treinamento de
cedor. Seja como for, em algumas situaes temos de homologao futura.
ter essas polticas de backup muito bem definidas.
No que nem o banco como um todo, voc tem uma Dataprev - So o desenvolvimento e o cliente, que
rea comum, que deve ser nica, em que a cada hora dono da informao, os que definem o nvel de desca-
se joga um banco ali e vai para a robtica. racterizao possvel naquele ambiente de testes e
homologao.
Serpro - At pode, mas dentro do volume de banco de
dados existente. Essa rea est em uso constante- Serpro - Outra questo est em relao s quantida-
mente. Enquanto um banco est subindo para fita, j des, manuseio ou extrao dos dados, vale lembrar
tem outro subindo com backup. Ento, voc tem de ter que o cliente, que o dono dos dados, Receita ou
a janela totalmente bem dimensionada para conseguir qualquer outro cliente, quem vai utilizar os dados
atender todo o parque de banco de dados que h na extrados aps a descaracterizao dos mesmos. Para
sua empresa. ser feita qualquer extrao de dados da base para
homologao, o dono das informaes tem de nos
Dataprev - Perfeito. Nossa poltica de backup passar autorizao formal, por escrito com os volumes
validada pelo DBA operacional. Quando voc implanta e as autorizaes. S assim feito o processo de
o produto, a aplicao na produo, a poltica, extrao, mesmo seguindo todo esse processo Itil. A
validada e testada o store em ambiente de homologa- autorizao do cliente faz parte do processo.
o. Assim, garantimos que aquele modelo de backup
desenhado para aquela soluo funcione. Agora, Dataprev - Existe algum critrio formal para definir as
quanto garantia de que voc recupere um versiona- plataformas de bancos de dados? Como isso acontece
mento de backup, realmente o produto quem tem de efetivamente?
garantir isso.
Serpro O cliente quem demanda, quem contrata o
Dataprev - Mencionou-se a existncia de uma poltica servio do Serpro, juntamente com a unidade de
para os ambientes de produo, homologao, teste e negcios, responsvel por comprar ou vender o
desenvolvimento. E tambm ouvimos que o desenvol- servio com o Serpro. Eles definem a plataforma de
vedor no tem acesso ao ambiente de produo. acordo com a caracterstica. Embora seja possvel que
A discusso que proponho aqui tem como ponto de partida tanto os novos tipos de
dados quanto os j existentes, mas que precisam ser tratados de alguma forma.
Trata-se da fora motriz que vai impulsionar o desenvolvimento das tecnologias
sobre as quais falarei aqui.
O terceiro grupo de dados extrapola os limites dos casos anteriores, embora ambos
possam estar includos em virtude de sua riqueza semntica. Estamos falando dos
dados sobre relacionamentos, causalidades e temporalidades. Sua natureza
complexa, por exemplo, pode ser percebida luz dos casos de redes de fraudadores
que guardam uma enorme variedade de relacionamentos. Lidar com essa multipli-
cidade de relacionamentos tem sido um problema quase intratvel. Com efeito, se
armazenar esses dados no tarefa fcil, o que dizer, ento, do trabalho de dispor
esses dados de forma que seja possvel acess-los e, ainda, manipul-los. nesse
momento que as questes de causalidade e temporalidade entram em cena. Isso
por si s aumenta a complexidade da busca nos bancos de dados.
Outra questo interessante advm do uso de placas grficas. H uma nova gerao de
arquitetura de processadores representada pelas placas grficas e pelo chamado Cell.
Trata-se de processadores assimtricos heterogneos, com unidades de processamen-
tos especializadas e que mudam uma caracterstica fundamental das arquiteturas X86
tradicionais, a saber, so otimizados para throughput e no para latncia. Com efeito, o
uso desses processadores s faz sentido quando se faz uma sequncia enorme de
tarefas. Cada tarefa em si acaba sendo um pouco mais longa, mas existe um ganho na
amortizao da paralelizao dessas tarefas.
Uma placa grfica de mil reais nos permite, atualmente, realizar centenas de opera-
es simultneas. Alcanamos ganhos da ordem de 200 vezes em relao verso
sequencial no caso de aplicaes de uso intensivo. Num ambiente em que custo e
desempenho so fundamentais, fica, ento, a pergunta: quando esse tipo de estrat-
gia ser, efetivamente, explorada no sistema gerenciador do banco de dados? Um
Playstation 3, que est disponvel em qualquer loja, muito mais potente que o top de
linha da Intel do ponto de vista de capacidade de processamento, dependendo da
aplicao feita. H, portanto, um caminho alternativo s arquiteturas Intel. A desvanta-
gem a ausncia de software.
De todo modo, uma tendncia para qual devemos nos atentar. At porque, a grande
lio tirada de ambientes como o Google foi: dependendo do volume e da especificida-
de, compensa redesenhar tudo. Esse um desafio interessante para rea de informti-
ca em geral, pois, at certo ponto, estvamos naquele esquema de boi no confinamen-
to. Uma sacolejada dessas propores nos obriga a parar e avaliar os rumos do
mercado de software. Notem que o aplicativo multi-core um negcio que ainda no
existe. Imaginem o que pode ser feito para essas coisas que falei aqui.
Nessa mesma linha, temos a computao em nuvem ou cloud computing, que traz a
questo da terceirizao. O preo do armazenamento da Amazon, certamente,
obriga-nos a pensar sobre as vantagens desse servio. O preo bastante reduzido
que a empresa cobra para manter um terabyte faz a opo de colocar ali nossos
backups algo bem interessante. O caso que armazenar o backup no tudo. A
questo da computao em nuvem traz um dilema: mais interessante optar por
um grande volume de mquinas de menor custo ou um nmero menor de mquinas
de alto custo? Qual o compromisso a ser adotado entre custo e tolerncia a falhas?
Essa discusso colocada em um livro disponvel na WEB de autoria do engenheiro
Luiz Barroso, um dos que conceberam o sistema do Google. So elementos que
eventualmente precisam ser amadurecidos. No que eu esteja sugerindo a substi-
tuio do mainframe por essa opo, mas se trata de algo que est caminhando.
O fato que tudo isso est relacionado ao desafio da confiabilidade. Uma forma
interessante de tratar disso recorrer ao exemplo do Google e outros que seguiram
estratgia semelhante. Eles romperam com um pacto de mediocridade que existia
na microcomputao. Primeiramente, apresentaram a ferramenta de busca que
responde com muito mais informao e mais rapidamente. No departamento de
computao da UFMG, acontece um fenmeno que para mim demonstra a supera-
o operada por eles: acessar o Gmail de dentro do departamento algo que
consome menos tempo que acessar o e-mail institucional. Alm disso, quando todo
mundo dava 20 MB de e-mail, eles disponibilizaram 1 GB.
A questo, portanto, no passa por optar por uma dessas tendncias, uma vez que
uma apresenta como vantagem a comodidade e a outra a eficincia. algo seme-
lhante ao problema dos dados legados, pois, ao mesmo tempo em que voc tem de
armazenar os dados, tem tambm de garantir as transaes, a durabilidade, etc.
Trata-se de uma operao complicada. Os casos de sucesso no contexto especiali-
zado existem, mas, como a operao cara e no h garantia de que funcione
sempre, preciso ter cautela. Existe uma tendncia enorme de utilizar o modelo
concentrado no banco de dados por conta do legado. Mas temos de estar atentos
para precisar at que ponto que esse argumento explicvel. Vou discutir com mais
detalhe a partir de um conjunto de tcnicas que tenho mais familiaridade, que so
as tcnicas de inteligncia, que no demandam propriedades transacionais como
durabilidade. Nesse caso, o que se deseja extrair informaes e que, se algo der
errado durante o processamento, o problema seja limitado e reversvel, ningum
morra ou as agncias do INSS parem. Pode haver uma variao, mas um negcio
em discusso, porque, enquanto existe o Oracle empilhando tcnicas as mais
variadas, h outras opes interessantes aparecendo tambm, bem como casos
mistos.
Outra parte das pesquisas gira em torno dos bancos de dados probabilsticos. Isso
vale no s para os bancos de dados em si, mas tambm para a questo de arma-
zns, minerao de dados, etc. O que est armazenado tende a ser tcito, verdadei-
ro e inquestionvel. S que, s vezes, no . Podem ocorrer casos de entrada
manual de dados, a partir de formulrio, entrada digitada ou transcrio de formul-
rio em papel. O SUS ainda faz muito isso. Obviamente, o risco de erro muito maior
do que se tivessem sido implementados processos de checagem e consultas on-
line. O que se faz nesse caso? Atribui-se um grau de confiabilidade ao dado e passa-
se a usar esse parmetro como atributo de toda a cadeia. Por exemplo, meu nome
tem trs entradas na base do INSS em virtude de erros cometidos pelos contadores
que trabalhavam para mim quando eu tinha uma empresa. Nesse caso, os dados
podiam ser trabalhados a partir da identificao de uma alta probabilidade de
duplicao. Isso traria muitas repercusses em termos de anlise e mesmo no dia a
dia.
Pensando sobre os rumos das pesquisas, a questo da incerteza algo que vem
crescendo na rea de inteligncia. At porque os dados so incertos por natureza. A
partir do momento em que consideramos os dados como verdades tcitas, perde-
mos informao. O ponto interessante que remete ao grande nmero de tcnicas
que buscam trabalhar com um conjunto menor de dados. H tambm a questo das
relaes densas.
Com efeito, o que mais tem chamado ateno a minerao em redes sociais,
minerao de relacionamentos, modelos baseados em grafos. Inmeras pesquisas
vm sendo feitas, interessadas ao mesmo tempo em garantir que isso se d em
tempo hbil. Porque todos esses algoritmos tm uma exploso combinatria muito
severa, mesmo o mais clssico deles. S para ilustrar, o caso comum de algoritmo
de minerao de dados aquele da cesta de compras. H uma tendncia explo-
so de dados. Se pegarmos, ainda no contexto varejista, um supermercado, h nas
prateleiras cerca de 5 mil itens em estoque. Se considerarmos as combinaes 2 a
2, teremos 5 mil x 4.999, sob duas possveis combinaes de itens 2 a 2, o que d
12,5 milhes. Se considerarmos 3 a 3, multiplicaremos esse nmero por 4.998. Ou
seja, a coisa cresce exponencialmente.
DEBATE
N.I.: Debatedor e/ou instituio no identificados.
Serpro - Tudo isso verdadeiro, no tenho a menor UFMG H duas questes a. Primeiramente, essa
dvida. Mas para mim, a maior dificuldade no o concepo de armazm de dados recente. Ao
grande volume, o processamento intensivo, transacio- mesmo tempo, h um vcio de formao. Mesmo
nal ou o uso indevido. Trabalho com sistemas transaci- estando num ambiente onde tudo est sendo paraleli-
onais, lgica booleana, com aquilo que aprendemos zado e h demandas simultneas, a primeira coisa
desde a faculdade. Hoje temos dificuldade para fazer que o aluno aprende na universidade que o algoritmo
uma carga com grandes volumes e processamentos uma sequncia de passos. Isso j limita as coisas,
intensivos de forma paralela. Trabalhar com o racioc- apesar de ser uma coisa to contra-intuitiva.
nio paralelo, montar rotinas paralelas e implementar Cotidianamente agimos de forma paralelizada. Ao
em paralelo. Esse, para mim, o maior problema em dirigir um carro, voc passa a marcha, mexe o volante,
armazm de dados. acelera, ouve o rdio, conversa, etc.
Serpro - Por exemplo, usando um meio de implementa- Alm disso, a avaliao de custo-benefcio uma
o. H 200 milhes de linhas para carregar num necessidade. Ou seja, vale a pena esse desenvolvi-
processamento intensivo. Isso no vai rodar. Por que mento? Vale a pena manter isso? Qual o custo de
no vem em mil pedacinhos? manuteno? Quo relevante a aplicao? Tanto que
a nica aplicao possvel de se imaginar teria de
UFMG - A dificuldade que temos para particionar ocorrer num contexto de batimento on-line. Por
dados um problema muito conhecido. O que acontece exemplo, parece que o INSS vai abrir mais 700 postos.
nesse caso? Por que as pessoas so, em geral, conser- Ento, h algum tempo j eram mil. Haver 2 mil, 3 mil
vadoras em relao a isso? Porque, muitas vezes, postos ao mesmo tempo com dezenas de mquinas.
nunca atentaram para as eventuais dependncias de Todo mundo cadastrando e checando... Isso vale a
dados que possam ocorrer naquele volume que tem de pena? Sinceramente, no sei responder. O pessoal
ser processado. Ento, como no havia a necessidade que est na operao da carga de trabalho que vai
ou a possibilidade, levava-se em considerao apenas dizer o quanto de mainframe teremos de comprar para
o aspecto tecnolgico. Nunca ningum parou e olhou atender esses postos ou pegar a carga e dividi-la em
assim: se voc olhar essa sequncia de dados, o que duas formas.
depende do qu? A resposta comum : No sei e nem
sei como saber. Ento, por vias das dvidas, no N.I - Voc falou sobre os bancos de dados monolticos
vamos inventar. Deixa como est. Esse o problema do e bancos de dados especializados. Toda a empresa
modelo tradicional, que nunca foi pensado em relao que tem um acervo de dados grandes quer reduzir o
a essa possibilidade de particionar. As questes de seu custo, tendo em vista a qualificao e a classifica-
temporalidade e causalidade representam um proble- o dos dados. No contexto dos bancos de dados
ma em todos os nveis sempre. E lidar com isso muito monolticos, voc se referiu s vantagens da maturida-
complicado. de desse cenrio, da robustez do ambiente, da segu-
rana e da capacidade de recuperao em caso de
Dataprev Gostaria que voc desenvolvesse o argu- desastre. Ou seja, isso vai ao encontro do nosso
mento sobre os sistemas de DW/BI. primeiro paradigma que a alta disponibilidade e o
desempenho. Quando se falou do banco de dados
UFMG Para esse caso, existem duas experincias a especializados, a velocidade, trabalhando com toda a
ser relatadas. A primeira aconteceu conosco. camada de inteligncia, uma coisa que a gente
chama de RI, que voc lidar com a probabilidade e
Tentamos utilizar sistemas de bancos de dados
outras medidas dos componentes. Isso um assunto
maciamente, sendo que uma representao tabular
de extremo interesse para a rea de previdncia, at
em texto, arquivo normal, etc. sempre se mostrou mais
pela probabilidade de fraude de um benefcio. Como
eficiente. Vrios nmeros medidos ao longo do tempo eu percebo que aquele benefcio que est sendo
demonstram que, mesmo usando o banco de dados da concedido uma provvel fraude? Mas o desafio no
forma simples, o custo adicional implicado impactan- seria a construo da inteligncia desses algoritmos
te. O melhor usar o banco de dados s para ler para se conseguir resultados rpidos, eficientes e de
sequencialmente. Se comearmos a executar opera- acordo com o direcionamento adotado?
es dentro do banco de dados, a coisa degenera
completamente. O segundo caso, que se remete UFMG Diante daqueles dois exemplos - o monoltico
coisa de fazer rotinas especficas de acesso e manipu- e o especializado- , preciso lembrar que no se trata
lao de dados, bem conhecido. So os exemplos do
de dois extremos de um espectro. Optar por um ou por
Google. Ali, eles reconstruram tudo, desde o sistema
outro, bem como recorrer a solues hbridas uma
operacional. Pegaram um Linux e depenaram, limpa-
questo de avaliao de custo-benefcio - em termos
ram e deixaram s a parte que interessava. At o
sistema de arquivos, o sistema de banco de dados dele de pessoal, energia, software, hardware e custo de
e toda a infraestrutura, tudo isso prprio para o desenvolvimento, treinamento, etc. Como o meu
ambiente. uma aplicao muito especfica? Sim, mas enfoque recai sobre a tecnologia de bancos de dados,
eu fiz essa ressalva. No se trata de uma soluo geral. no entrei no segundo ponto da sua pergunta, que o
Fazendo analogia com outros contextos, algo que desenvolvimento das tcnicas e dos algoritmos. Isso
remonta quele velho trecho em Assembler, que se complementar. Seja usando modelo o monoltico ou o
coloca no meio do cdigo. H aquela rotina que conso- especializado, preciso buscar tcnicas eficazes. Elas
me 70% do tempo, sendo preciso otimizar ao mximo. so mais decisivas que as tecnologias de armazena-
Esse , por exemplo, o conceito de stored procedure ou mento, manipulao e acesso de dados.
coisa do gnero. A minha concepo vai nesse sentido. EBC - H duas experincias interessantes de Datamine
Ronaldo Romani
Vice-Presidente de Tecnologia e Logstica do Banco do Brasil
Jair Silva
Gerente Operacional de Solues Tecnolgicas da Caixa
Dataprev
Ministrio da
Previdncia Social