Uma ferramenta de ETL permite a criação de tarefas de processamento de informação de uma forma mais produtiva.
Uma ferramenta de ETL também permite portabilizar o processamento das regras de negócio.
As regras de processamento ficam salvas em formato de workflow, o que evita a necessidade de documentar os passos do processo além de facilitar a sua manutenção.
Uma ferramenta de ETL fornece recursos técnicos que viabilizam a automação de atividades fim-a-fim.
É possível desenvolver um determinado processo de automação em sua máquina Windows ou Mac, testar tudo em um banco de dados local e depois colocar em produção em um servidor Linux.
Permite que você não fique dependente de um tipo específico de banco de dados. Isso significa que quando precisar migrar seu banco de “TecnologiaA” para “TecnologiaB”, basta migrar as tabelas e reapontar as conexões. Não é necessário recodificar suas regras de negócio. Quem já teve a experiência de realizar um upgrade de versão no SqlServer com regras de negócio desenvolvidas em procedures, sabe o retrabalho que isto evita.
Não é necessário instalar drivers de banco de dados no servidor. Todas as dependências ficam na própria pasta da ferramenta de ETL, que é portável.
Outra vantagem desta portabilidade, é tornar opcional ter um servidor stage, uma vez que cada notebook pode ser configurado para fazer este papel e trabalhar de forma independente.
Uma ferramenta de ETL possui os patterns de transformação de dados mais comuns já encapsulados de forma que você possa reutiliza-los apenas arrastando um ícone para a sua área de trabalho e declarando o que ele precisa fazer. Por exemplo: Quero que seja criado um campo de auto-incremento cujo contador volte para o zero toda vez que houver alteração no valor do campo “xpto”. Não é mais necessário programar cursores (embora seja possível).
Uma ferramenta de ETL cria e gerencia quantas threads forem necessárias, para aumentar a performance de processamento, abstraindo essa complexidade do analista, que fica livre para focar na lógica do negócio.
Com relação a performance: a velocidade de importação de um CSV fica em torno de 6 milhões/min e de processamento com cursores chega a 30 milhões/min em um notebook comum. Depende das regras. Isso pode ser ampliado, uma vez que é permitido a orquestração do processamento em diversos servidores.
O que chamo de processamento fim-a-fim é o fato de que não é mais necessário ter que parar uma tarefa de processamento para tratar manualmente uma determinada etapa, devido a limitações impostas pela plataforma que estiver utilizando.
Segue um exemplo do que seriam alguns dos requisitos necessários para a realização de uma atividade de processamento:
Extraia informações de algumas centenas de páginas web protegidas por autenticação.
Retire trechos dos HTMLs baixados e salve-os em um arquivo tabular.
Baixe o arquivo PDF mais recente que está no site do fornecedor.
Extraia e importe os dados deste PDF para o Datamart.
Aplique controle de versionamento dos registros.
Antes, faça um backup da versão anterior da tabela versionada por segurança.
Verifique se há alguma nova planilha de precificação no servidor de FTP. Caso haja, faça a importação.
Compacte a planilha recém importada, renomeie com um sequencial e arquive na pasta de backup.
Realize o GeoReferenciamento dos endereços listados usando a API do GoogleMaps.
Aplique a tabela de precificação local.
Para os ítens não precificados, salve em um arquivo e envie por e-mail para compras.
Calcule a diferença de datas entre os pedidos (Utilize um cursor).
Faça a integração com python para baixar informações do Google Analytics.
Faça a persistência do dataframe retornado pelo pandas no Datamart.
Monte um relatório gráfico das informações recém atualizadas.
Transforme tudo numa imagem, anexe num email e envie aos executivos.
Elabore um resumo do processamento com Tempo e Registros por etapa.
Envie um e-mail com esse resumo para os administradores do sistema.
É mais ou menos isso que uma ferramenta de ETL permite que você automatize, eliminando a necessidade de intervenção manual em qualquer uma das etapas.
Comentários