AWS ETL: DMS, Matillion ou Informatica? Descubra a melhor ferramenta para você!

ETL, que significa Extrair, Transformar e Carregar, é um processo fundamental no gerenciamento de dados. As ferramentas ETL coletam dados de diversas fontes, convertendo-os em um formato intermediário adequado para os sistemas de destino ou modelos de dados. Finalmente, esses dados transformados são carregados em um banco de dados, um data warehouse ou até mesmo um data lake.

Recordo-me de cerca de 15 a 20 anos atrás, quando o termo ETL era desconhecido para muitos. Naquela época, os trabalhos em lote personalizados eram executados principalmente em hardware local, atingindo o seu pico.

Muitos projetos envolviam alguma forma de ETL, mesmo que não fosse reconhecida como tal. Quando explicava projetos que utilizavam processos ETL, descrevendo-os dessa maneira, parecia algo quase alienígena, uma tecnologia muito rara.

Atualmente, a realidade é diferente. A migração para a nuvem é uma prioridade essencial e as ferramentas ETL tornaram-se uma parte estratégica da arquitetura da maioria dos projetos.

A migração para a nuvem geralmente implica em transferir dados de ambientes locais para bancos de dados na nuvem, de forma a serem o mais compatíveis possível com a arquitetura da nuvem. Essa é precisamente a função de uma ferramenta ETL.

Histórico do ETL e sua Conexão com o Presente

Fonte: aws.amazon.com

As funções básicas do ETL sempre foram consistentes.

As ferramentas ETL coletam dados de várias origens, que podem ser bancos de dados, arquivos simples, serviços da web ou, mais recentemente, aplicações baseadas na nuvem.

Inicialmente, isso envolvia pegar arquivos do sistema de arquivos Unix, realizando pré-processamento, processamento e pós-processamento.

Um padrão comum era a estrutura de pastas, com nomes como:

  • Entrada
  • Saída
  • Erro
  • Arquivo

Dentro dessas pastas, frequentemente havia uma subestrutura baseada em datas.

Essa era a forma padrão de lidar com os dados recebidos, preparando-os para carregamento em um banco de dados.

Hoje, os sistemas de arquivos Unix não são tão comuns e os arquivos podem até não ser necessários. Agora, temos APIs (interfaces de programação de aplicativos). Embora um arquivo possa ser usado como formato de entrada, não é obrigatório.

Os dados podem ser armazenados em cache, mas, independentemente do formato, precisam seguir uma estrutura definida, geralmente JSON ou XML. Em alguns casos, o formato CSV ainda é utilizado.

O formato de entrada é definido pelo usuário e a decisão de criar um histórico dos arquivos de entrada é opcional. Não é mais um passo padrão.

Transformação

As ferramentas ETL transformam os dados coletados para um formato adequado para análise. Isso envolve a limpeza, validação, enriquecimento e agregação dos dados.

Anteriormente, os dados passavam por uma lógica personalizada complexa em Pro-C ou PL/SQL para preparação, transformação e armazenamento, seguindo um padrão rigoroso. Isso era tão obrigatório quanto separar os arquivos recebidos em subpastas com base no estágio de processamento.

Embora fosse natural, essa abordagem estava fundamentalmente errada. Ao transformar os dados diretamente, sem armazenamento permanente, perdia-se a imutabilidade dos dados brutos. Os projetos descartavam essa vantagem sem possibilidade de reconstrução.

Hoje, quanto menos transformação dos dados brutos for feita antes do primeiro armazenamento, melhor. O próximo passo pode envolver mudanças e transformações significativas, mas os dados brutos devem ser armazenados em sua estrutura atômica e inalterada. Essa é uma grande mudança em relação ao passado.

Carregar

As ferramentas ETL carregam os dados transformados em um banco de dados ou data warehouse de destino. Isso inclui criar tabelas, definir relacionamentos e carregar dados nos campos adequados.

A etapa de carregamento é a que mais manteve o padrão ao longo dos anos. A principal mudança é o banco de dados de destino, que antes era frequentemente Oracle e agora pode ser qualquer opção disponível na nuvem AWS.

ETL no Ambiente de Nuvem Atual

Se você pretende migrar dados de ambientes locais para a nuvem (AWS), precisará de uma ferramenta ETL. É um componente essencial da arquitetura em nuvem, tornando-se uma peça fundamental do processo. Se esta etapa for mal executada, todo o resto será afetado.

Embora existam várias opções, focarei nas três que tenho mais experiência:

  • Data Migration Service (DMS) – um serviço nativo da AWS.
  • Informatica ETL – uma das principais opções comerciais do mercado ETL, que adaptou seu negócio para a nuvem.
  • Matillion for AWS – uma opção mais recente em ambientes de nuvem, não nativa da AWS, mas criada para a nuvem. Não tem um histórico tão extenso quanto o Informatica.

AWS DMS como ETL

Fonte: aws.amazon.com

O AWS Data Migration Services (DMS) é um serviço gerenciado que permite a migração de dados entre diversas fontes para a AWS. Ele oferece suporte a vários cenários de migração, incluindo:

  • Migrações homogêneas (por exemplo, de Oracle para Amazon RDS for Oracle).
  • Migrações heterogêneas (por exemplo, de Oracle para Amazon Aurora).

O DMS pode migrar dados de várias fontes, como bancos de dados, data warehouses e aplicativos SaaS, para destinos como Amazon S3, Amazon Redshift e Amazon RDS.

A AWS considera o DMS a ferramenta ideal para transferir dados de qualquer banco de dados para destinos na nuvem. Embora o foco principal seja a cópia de dados, o DMS também realiza transformações durante o processo.

As tarefas do DMS podem ser definidas em formato JSON para automatizar transformações ao copiar dados da origem para o destino:

  • Combinar tabelas ou colunas em um único valor.
  • Dividir valores em vários campos.
  • Substituir dados por outros valores.
  • Remover dados desnecessários ou criar novos dados com base no contexto de entrada.

Sim, o DMS pode ser usado como uma ferramenta ETL, embora possa não ser tão sofisticado quanto outras opções, ele pode ser suficiente se o objetivo for claro.

Fator de Adequação

Embora o DMS ofereça recursos ETL, seu foco é principalmente a migração de dados. Existem alguns cenários em que o DMS pode ser preferível a ferramentas ETL como Informatica ou Matillion:

  • O DMS é adequado para migrações homogêneas, onde os bancos de dados de origem e destino são do mesmo tipo. Isso pode ser vantajoso para migrar entre bancos de dados Oracle para Oracle, ou MySQL para MySQL.
  • O DMS oferece recursos básicos de transformação, mas pode não ser tão avançado nesse aspecto. Pode ser suficiente para necessidades limitadas de transformação.
  • A qualidade e governança de dados são limitadas no DMS, mas podem ser melhoradas em fases posteriores com outras ferramentas. Se a parte ETL precisar ser simples, o DMS é uma boa opção.
  • O DMS pode ser uma opção mais econômica para orçamentos limitados, pois seu modelo de preços é mais simples do que outras ferramentas, facilitando a gestão de custos.
  • Matillion ETL

    Fonte: matillion.com

    Matillion é uma solução nativa da nuvem que permite integrar dados de diversas fontes, incluindo bancos de dados, aplicativos SaaS e sistemas de arquivos. Ele oferece uma interface visual para criar pipelines ETL e suporta vários serviços da AWS, como Amazon S3, Amazon Redshift e Amazon RDS.

    O Matillion é fácil de usar, sendo uma boa opção para organizações novas em ferramentas ETL ou com necessidades de integração de dados menos complexas.

    No entanto, Matillion é como uma tela em branco. Ele tem funcionalidades predefinidas, mas precisa de codificação para ser utilizado. Não espere que ele funcione imediatamente.

    O Matillion também se descreve como uma ferramenta ELT (Extrair, Carregar, Transformar), priorizando o carregamento antes da transformação.

    Fator de Adequação

    O Matillion é mais eficaz na transformação dos dados após o carregamento no banco de dados. A necessidade de scripts personalizados é a principal razão. Como as funcionalidades especiais precisam de código, a eficácia depende da qualidade desse código.

    É mais eficaz realizar as transformações no banco de dados de destino e usar o Matillion para carregamento simples, minimizando riscos de problemas com o código.

    Embora o Matillion ofereça diversos recursos, pode não ter a mesma qualidade e governança de dados que outras ferramentas ETL.

    O Matillion pode escalar de acordo com as necessidades da organização, mas pode não ser ideal para grandes volumes de dados, pois o processamento paralelo é limitado. Nesse aspecto, a Informatica é uma escolha melhor por ser mais avançada e rica em recursos.

    Ainda assim, para muitas organizações, Matillion for AWS oferece escalabilidade suficiente e recursos de processamento paralelo para atender às suas necessidades.

    Informatica ETL

    Fonte: informatica.com

    Informatica for AWS é uma ferramenta ETL baseada na nuvem para integrar e gerenciar dados em várias fontes e destinos na AWS. É um serviço gerenciado com recursos como criação de perfil de dados, qualidade e governança de dados.

    Algumas características principais do Informatica for AWS incluem:

  • A Informatica é projetada para escalar com as necessidades da organização, lidando com grandes volumes de dados e integrando dados de várias fontes.
  • A Informatica oferece recursos de segurança, incluindo criptografia, controles de acesso e trilhas de auditoria, e está em conformidade com padrões da indústria como HIPAA, PCI DSS e SOC 2.
  • A Informatica tem uma interface visual para criar pipelines ETL e fornece conectores e modelos pré-construídos para conectar sistemas e integrar dados.
  • A Informatica se integra com serviços da AWS, como Amazon S3, Amazon Redshift e Amazon RDS, facilitando a integração de dados.
  • Fator de Adequação

    A Informatica é a ferramenta ETL mais rica em recursos, mas pode ser mais cara e complexa do que outras opções disponíveis na AWS.

    O custo da Informatica pode ser alto, especialmente para organizações de pequeno e médio porte. O modelo de preços é baseado no uso, o que significa que os custos podem aumentar conforme o uso aumenta.

    A instalação e configuração podem ser complexas, exigindo tempo e recursos. Para aqueles que são novos em ferramentas ETL, isso pode representar um desafio.

    Existe uma curva de aprendizado complexa, o que pode ser um problema para projetos que precisam integrar dados rapidamente ou têm recursos limitados.

    A Informatica pode não ser a melhor opção para integrar dados de fontes não AWS. Nesse caso, DMS ou Matillion podem ser preferíveis.

    Além disso, a Informatica é um sistema fechado com personalização limitada, o que pode reduzir a flexibilidade.

    Considerações Finais

    Assim como em muitas situações, não existe uma solução única para todos, especialmente quando se trata de ferramentas ETL na AWS.

    Você pode optar pela Informatica, que é mais complexa, rica em recursos e cara, se:

    • O projeto for grande e todas as fontes de dados e soluções futuras se conectarem à Informatica.
    • Você tiver recursos para uma equipe qualificada em desenvolvimento e configuração da Informatica.
    • Você valorizar e estiver disposto a pagar por um suporte robusto.

    Se essas condições não forem atendidas, o Matillion pode ser uma boa opção:

    • Se as necessidades do projeto não forem tão complexas.
    • Se a flexibilidade for essencial para incluir etapas personalizadas no processamento.
    • Se você estiver disposto a criar a maioria dos recursos com sua equipe.

    Para algo ainda menos complicado, o DMS para AWS é uma opção nativa que pode atender bem às suas necessidades.

    A seguir, explore as ferramentas de transformação de dados para gerenciar melhor seus dados.