História de pescador - parte 2
Outra coisa interessante que ocorreu na migração da base de dados do Detran foi quando tivemos que migrar uma rotina que importava uns dados vindos de um Main Frame. Um arquivo em formato texto plano com uns 800 mil registros.
O detalhe interessante é que não havia um delimitador de campo. Os registros eram o que muita gente chamada de “tripa” de tamanho fixo. Um regostro lá era mais ou menos assim:
00001232000000023ANTONIO LUIZ DE EXEMPLO SILVARUA ALMERINDA DE EXEMPLO SILVA230320089874561239876567SSPRJ100001
Tempo Total do Processo usando Oracle: 2 Horas
Como o pessoal do oracle tratava isso? Eles usavam um recurso que permite que isso seja vinculado ao oracle como uma tabela, no DDL usada para fazer essa operação o usuário ou DBA pode mapear os campos dizendo o inicio e tamanho de cada campo. Após isso eles copiavam esses dados para outras tabelas usando selects.
Como o pessoal do PostgreSQL (equipe da Mondrian Tecnologia) tratou isso?
Fizemos uma função usando plpython que transformou o tal arquivo em um csv e a nossa linha de exemplo ficou mais menos assim:
“00001232″,”000000023″,”ANTONIO LUIZ DE EXEMPLO SILVA”,”RUA ALMERINDA DE EXEMPLO SILVA”,”2303200″,”8987456123″,”9876567″,”SSPRJ”,”10000″,”1″
Após isso nossa função executa um copy desse arquivo para uma tabela real do PostgreSQL onde o acesso é bem mais rápido que a uma tabela vinculada do oracle como na situação anterior, a partir daí copiamos os dados necessários para as demais tabelas também usando copy.
Tempo Total do Processo usando o estilo PostgreSQL de ser: 6 min



