none
Migração de dados - Oracle para SQL Server 2008. RRS feed

  • Pergunta

  • Boa noite,

    Estou atuando em projeto implantação de sistema onde iremos substituir um sistema legado, por isso, onde preciso planejar a migração de dados de um banco Oracle 9i para SQL Server 2008.

    As estruturas de tabelas são completamente diferentes de um sistema para o outro, por isso, o foco de trabalho é exclusivamente em dados.

    Vocês acham que utilizar o Integration Services para fazer essa migração de dados é uma boa saída? Alguém que já tenha atuado em algo semelhante poderia me ajudar com dicas de como planejar e executar uma migração desse tipo?

    Obrigada!

     

     

    quarta-feira, 30 de março de 2011 02:10

Respostas

  • Boa Noite,

    Eu particularmente discordo da construção de uma aplicação para levar os dados do ORACLE para o SQL Server. Aplicações tem de ser testadas tanto no aplicativo em si e não somente na tarefa de transportar dados, pois, você está codificando funcionalidades de transporte que já existem em ferramentas como o SSIS além de não irão ter o desempenho de uma ferramenta de ETL como o SSIS. No SSIS, as transformações são construídas com alguns cliques enquanto que o aplicativo irá montar várias linhas de código. A manutenção de um pacote SSIS é bem mais simples que alterar e fazer um novo Deploy de um aplicativo.

    Em linhas gerais recomendo o SSIS, pois, ele irá fazer aquilo a que se propõe, ou seja, funcionar como uma ferramenta de ETL (Extração, Transformação e Carga). Só optaria por um aplicativo, caso você se depare com algo que o SSIS não faça (talvez reaproveitar uma classe C pronta ou algo realmente muito, mais muito específico).

    Já utilizei o SSIS para migrações de dados, mas o mais complexo não está no SSIS, mas sim nos mapas de ETL que você terá que elaborar. Esses mapas são necessários independente da implementação (SSIS, programa, Linked Server, etc). Algumas perguntas para ajudar a elaborá-los.

    - Qual a ordem das tabelas que deve ser importada ?
    - Que transformações devem ser feitas nos dados ?
    - Que exportações devem ser feitas em conjunto (transacional) e quais que podem ser feitas independente ?

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 30 de março de 2011 23:23
    • Marcado como Resposta XPteca segunda-feira, 4 de abril de 2011 13:48
    quarta-feira, 30 de março de 2011 23:22
  • Bom Dia,

    As tabelas intermediárias (Staging) podem ser necessárias em qualquer forma de transporte (SSIS, aplicativo, etc). O SSIS não irá diminuir ou reduzir essas possibilidades. Entretanto, se o seu conhecimento em SSIS é pouco, teremos que avaliar. Você pode aprender o SSIS e estar pronto para outras situações em que o uso é recomendado, porém a migração irá demorar mais, pois, você terá que aprendê-lo e o mais pode se traduzir em algumas semanas ou meses. Você pode ignorar o SSIS e construir o aplicativo conforme sugestão. Isso será mais rápido que aprender o SSIS para migrar, mas se esse tipo de trabalho for recorrente, você poderá perder oportunidades de fazê-lo mais rapidamente com o SSIS.

    O SSIS pode gerar logs de sucesso e erros de registros migrados sem problemas. Ele pode abortar caso dê erro, ignorar somente os registros com erro ou migrar os registros com erro para outro local para futuro reprocessamento.

    Há várias bibliografias boas de Integration Services, mas todo no idioma inglês.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta XPteca segunda-feira, 4 de abril de 2011 13:48
    quinta-feira, 31 de março de 2011 14:08

Todas as Respostas

  • se for mudar a estrutura das tabelas, eu aconcelho fazer um executavel que pega os dados, trata e coloca no novo banco.

    assim, você não vai levar os dados desneessário pra o novo banco e nem vai colocar dados na tabela errada.

     

    Att,


    Midana Fernandes Sana Fortaleza - CE Brasil
    quarta-feira, 30 de março de 2011 03:56
  • Midana,

    Concordo com a sua sugestão, desenvolver uma aplicação que possa realizar este tipo de trabalho pode ser uma solução.

    Utilizar o SSIS também pode ser um caminho, mas acredito que teríamos um pouco mais de trabalho em relação a validação das estruturas entre ambas as fontes de dados, antes do SSIS realizar a exportação dos dados.

    Outra possibilidade seria criar um linked server entre estes servidores e tentar realizar a exportação/importação dos dados de forma direta.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quarta-feira, 30 de março de 2011 18:37
    Moderador
  • Boa Noite,

    Eu particularmente discordo da construção de uma aplicação para levar os dados do ORACLE para o SQL Server. Aplicações tem de ser testadas tanto no aplicativo em si e não somente na tarefa de transportar dados, pois, você está codificando funcionalidades de transporte que já existem em ferramentas como o SSIS além de não irão ter o desempenho de uma ferramenta de ETL como o SSIS. No SSIS, as transformações são construídas com alguns cliques enquanto que o aplicativo irá montar várias linhas de código. A manutenção de um pacote SSIS é bem mais simples que alterar e fazer um novo Deploy de um aplicativo.

    Em linhas gerais recomendo o SSIS, pois, ele irá fazer aquilo a que se propõe, ou seja, funcionar como uma ferramenta de ETL (Extração, Transformação e Carga). Só optaria por um aplicativo, caso você se depare com algo que o SSIS não faça (talvez reaproveitar uma classe C pronta ou algo realmente muito, mais muito específico).

    Já utilizei o SSIS para migrações de dados, mas o mais complexo não está no SSIS, mas sim nos mapas de ETL que você terá que elaborar. Esses mapas são necessários independente da implementação (SSIS, programa, Linked Server, etc). Algumas perguntas para ajudar a elaborá-los.

    - Qual a ordem das tabelas que deve ser importada ?
    - Que transformações devem ser feitas nos dados ?
    - Que exportações devem ser feitas em conjunto (transacional) e quais que podem ser feitas independente ?

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 30 de março de 2011 23:23
    • Marcado como Resposta XPteca segunda-feira, 4 de abril de 2011 13:48
    quarta-feira, 30 de março de 2011 23:22
  • Olá Gustavo, obrigada pela sua resposta!

    O projeto atualmente esta em fase de análise e definição de escopo. As estruturas dos bancos origem e destino são completamente diferentes, penso que precisarei de algumas (ou várias) tabela de-para para tratar as diversas situações que encontrarei pelo caminho.

    Como desconheço completamente o SSIS, você sabe me dizer se, por exemplo, através dele não precisarei de tabelas de-para? Alem disso, gostaria de armazenar os logs de sucesso e de erro dos registros migrados, isso é possível também?

    Conhece algum material bacana que eu possa estudar a respeito?

    Obrigada!

    Fernanda.

    quinta-feira, 31 de março de 2011 13:01
  • Bom Dia,

    As tabelas intermediárias (Staging) podem ser necessárias em qualquer forma de transporte (SSIS, aplicativo, etc). O SSIS não irá diminuir ou reduzir essas possibilidades. Entretanto, se o seu conhecimento em SSIS é pouco, teremos que avaliar. Você pode aprender o SSIS e estar pronto para outras situações em que o uso é recomendado, porém a migração irá demorar mais, pois, você terá que aprendê-lo e o mais pode se traduzir em algumas semanas ou meses. Você pode ignorar o SSIS e construir o aplicativo conforme sugestão. Isso será mais rápido que aprender o SSIS para migrar, mas se esse tipo de trabalho for recorrente, você poderá perder oportunidades de fazê-lo mais rapidamente com o SSIS.

    O SSIS pode gerar logs de sucesso e erros de registros migrados sem problemas. Ele pode abortar caso dê erro, ignorar somente os registros com erro ou migrar os registros com erro para outro local para futuro reprocessamento.

    Há várias bibliografias boas de Integration Services, mas todo no idioma inglês.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta XPteca segunda-feira, 4 de abril de 2011 13:48
    quinta-feira, 31 de março de 2011 14:08