Quem trabalha a um tempo em projetos de Business Intelligence sabe que um bom processo de ETL é um pouco mais complexo do que parece. Quando nos aventuramos nessa aventura de conhecer BI, ou processos de migração em larga escala, ficamos fascinados com as ferramentas e a versatilidade delas para facilitar o desenvolvimento de processos de ETL. Portanto, tenho visto como os desenvolvedores, arquitetos e outros especialistas em BI podem cair em um nível perigoso de confiança, assumindo que as ferramentas resolverão todo o ambiente de gerenciamento de processos e controle.
Aqui deixo alguns passos simples que irão guiá-lo como especialista técnico no mundo dos ETLs para que os processos que você projete, construa ou opere tenham um tempo de vida longa obtenha uma melhor execução e possua controle em possíveis incidentes futuros.
Antes de um Processo ETL
Defina seu processo de ETL, você deve inicialmente considerar o que você vai projetar e construir. Pense na conexão de um banco de dados relacional, na criação do modelo analítico, na criação de um Data Warehouse, Data Marts, Data Lakes, etc. Isso é muito importante porque permitirá dimensionar a extensão e a proteção do seu processo de ETL. A partir daqui você abrirá a sua mente para saber que tipo de orquestração, cálculos e estruturas você terá que fazer para ter sucesso.
Você não está sozinho, o ambiente também é importante: Valide os sistemas de origem, suas janelas de acesso e a disponibilidade dos dados ao extraí-los das fontes. Especialistas dizem que o processo de extração ideal é aquele que é quase imperceptível, por isso sempre exigiremos que o processo de extração de dados de diferentes fontes cause o menor impacto possível. Por exemplo, isso não supõe nenhum atraso para os funcionários que, diariamente, trabalham com os dados e registros, que não geram contenção dentro de uma fonte transacional, etc. Extrair um número muito grande de dados de uma só vez pode atrasar ou até mesmo reduzir o sistema. Por este motivo, é importante avaliar muito bem as necessidades e o âmbito da operação a realizar e, se necessário,
Faça um levantamento dos diferentes tipos de fontes que farão parte do processo de extração: 1. Se eles são fontes estruturadas: ambientes, servidores, bancos de dados, tipos de acesso, proprietários (proprietários), esquemas, tabelas, campos, metadados. 2. Se eles são fontes não estruturadas: apis, tokens, links, diferentes tipos de arquivos, etc. Para todos estes você deve atribuir um espaço formal ao nível de estações (stagings) ou sistemas de arquivos (sistema de arquivos) e então prosseguir para a fase de transformação.
A figura do Arquiteto de Informação influencia fortemente porque o sucesso de um processo de ETL é que a fase de carga (Load) seja executada corretamente é essencial que os dados que estão sendo carregados para um destino possua toda integridade referencial 100% se aplicável, se não for (se fosse um lago de dados, por exemplo), o destino deve ter um design e arquitetura suficientemente robustos que gerem estabilidade dos dados de acordo com seu crescimento.
Colete todas as informações do ponto anterior e identifique o que é variável e o que é fixo … Não confie em si mesmo! Mais tarde você saberá por quê.
O arquiteto de dados levantara as regras de negócios: muitos delas serão aplicadas no processo de extração e o restante no processo de transformação, isso dependerá do desenho do processo, o importante é não deixar de levantá-los. Mesmo assim, se alguma regra for deixada de lado, como você já sabe que deve fazer o seu processo escalável (como um quebra-cabeça), não será muito difícil incorporar essa regra.
Quando você chega na transformação, após a extração dos dados e como uma etapa anterior ao carregamento, você atingiu o centro do processo. Lá você deve capturar todas as regras de negócios que darão outra face aos dados que foram extraídos. Nesta fase, as ferramentas de integração com as quais trabalhamos têm uma grande influência e nos proporcionam certos benefícios para atingir esse objetivo. O que é feito nesta fase? Em geral, operações como reformatação de dados, conversão de unidades, seleção de colunas para carregamento subsequente, agregação (adição) de colunas, dividindo uma coluna em vários, traduzindo códigos, obtendo novos valores calculados, unindo dados de várias fontes, os chamados look ups : que é quando você pega um dado e compara com outro tipo de dados, cruzando informações, o que eles chamam de pivotantes: esse é um processo semelhante à aparência, mas com um maior grau de complexidade, já que dados de diferentes fontes são cruzados. E para você contar. O importante é que cada operação seja pontual e finita.
Durante um processo de ETL
Ao construir um ETL, considere-se um mestre das peças, um arquiteto, um engenheiro. Imagine que você construa um grande canal através do qual dados e metadados devem viajar e eles devem chegar completos e estruturados ao seu destino. Leve em conta que a ferramenta que você está usando tem uma grande importância e um papel determinante nessa construção, mas … O protagonismo é você que assume.
Torne seu processo escalável e flexível. Extrações com extrações, transformações com transformações, cargas com cargas. Não misture esses processos.
Ajuste seu processo para as janelas de disponibilidade dos serviços, tanto no nível de extração (leitura de dados) quanto no nível de carga (gravação de dados). Lembre-se de que muitas vezes nossa origem e destinos não são gerenciados por nós, portanto, o processo deve ser acoplado de maneira ideal a essas janelas.
Projetar blocos programados que façam notificações de falhas via e-mail ou mensagens de texto, criação e manutenção de logs, etc., de cada etapa ou estação que pode ser construída dentro do processo.
Identifique todo o desenvolvimento dentro do processo de ETL, identifique trabalhos de extração, trabalhos de transformação, carregue trabalhos, controle trabalhos.
Documente o processo. Eu sei, isso geralmente não gosta, mas … documentos, documentos, documentos! Você não vai se arrepender.
Parametrizar tudo dentro do processo de ETL, como mencionei na seção Antes de ETL Processo você deve identificar todos tudo levantado e recolhido que pode ser variável ou fixo é porque um bom desenvolvedor BI sabe uma informação secreta: no mundo Empresas, no mundo da informática, no mundo de hoje … Qual é a única constante? A mudança, portanto, é possível, provável, seguro, que no decorrer do tempo, os nomes de rotas, bibliotecas, nomes de tabelas, nomes de arquivos, nomes de esquemas, etc. sejam alterados. Portanto, uma excelente prática durante a construção dos processos de ETL é parametrizar todos os nomes e variáveis possíveis. Hoje em dia, a grande maioria (se não todas) das ferramentas de integração ETL permitem colocar parâmetros deste tipo. Então, não pare de fazer isso.
Não se esqueça de incluir no processo desses pontos de controle que fazem gerenciável e operar a frequência de ETL, mecanismos de seleção de execução, as modalidades de implementação: por exemplo, se você deseja executar todo o processo de ETL, se você quiser executar somente extração e Transformação: ET, se você quiser executar apenas Transformação e Carga: TL ou qualquer combinação possível e efetiva.
The After do processo ETL Parabéns! Você construiu um processo de ETL … E agora?
Deixe-me dizer-lhe se você chegou a este estágio, você mal percorreu metade do caminho. Se você construiu um ETL pensamento processo que nunca falham, você e seu processo estão condenados ao fracasso, mas se você levou em conta todos os passos acima, incluindo aqueles que eu menciono abaixo, então é altamente provável que você atingiu seu objetivo e o seu processo de ETL tem uma longa vida útil e tem adaptabilidade à incorporação de novos produtos dentro de sua linha de execução.
Depois de um processo de ETL, existe uma existência ou razão de ser graças ao nível de prevenção que você dá antes e durante a construção do mesmo, para que o sucesso chegue à fase de implementação, conforme você considera o seguinte:
Criando políticas para suportar todos os componentes envolvidos no processo ETL: Jobs, transformações, bases de dados intermediárias (stagings), sistema de arquivos, etc., garantem não perder o código de programação feito durante a construção.
Executa processos de limpeza ou depuração de dados, isso dependerá do resultado ideal de um processo ETL. Não é possível obter um bom resultado, de acordo com os objetos marcados, a menos que seja feita uma boa limpeza dos dados de antemão. Sem esse estágio anterior, não é possível ter um banco de dados de qualidade que permita a tomada de decisões em nível estratégico ou executivo. Isso dá uma ideia da enorme necessidade de levar a sério esse estágio, realizando-o de acordo com os parâmetros corretos e levando em conta as recomendações dos especialistas.
Minimize as falhas nas cadeias de execução … como? Sabemos que os erros costumam ser inevitáveis, mas eles sempre podem ser amortecidos. Sua experiência como desenvolvedor e implementador de processos de ETL ajudará você a minimizar falhas, mas se você não for um especialista, ter uma ideia do que pode falhar o alertará para evitar esses incidentes. Existem dois tipos de incidentes que podem afetar um processo de ETL: 1. Uma falha no processo de ETL: eles devem ser evitados a todo custo porque é o seu nome ou o nome da sua empresa que aparecerá no momento em que a falha ocorrer. 2. Uma falha em qualquer componente externo envolvido com o processo ETL: interrupção elétrica, mau funcionamento nos discos de armazenamento. É certo! Aqui não é mais sua responsabilidade, mas se você estabeleceu as respectivas políticas de backup,
Já se passaram 11 meses e seu processo de ETL está funcionando corretamente, mas o fechamento anual está se aproximando. Você estabeleceu todos os parâmetros necessários para uma mudança de frequência? Isso nem sempre acontece, depende muito do tipo de informação que você está processando dentro do ETL, entretanto, estabelecendo modos de frequência de execução permite reutilizar os componentes em diferentes instâncias de tempo, é só uma questão de levar isso em conta na sua fase de construção e depois de um tempo de implantação você não terá um problema.
Sua prova contingente do processo ETL? Em muitas empresas, especialmente as maiores, são realizados eventos de contingência, que podem variar de simulações a mecanismos reais, dada uma situação particular. Os processos de ETL não devem ser isentos desse tipo de eventualidade, já que um sistema maior é certamente parte dele, seja no processo de extração ou carregamento de dados. Agora, não é irracional implementar a contingência para o seu processo e quanto mais escalável você o construiu, menos complicado será incorporar um bloco de contingência que determina como a execução será durante esse evento. A natureza da Contingência determinará em qual ponto da ETL esse bloco será colocado, o que pode ser tão simples ou complicado quanto você considerar, isto é,
Há muitas formas ou formas de desenvolver um processo de ETL, mas acho que esse aperitivo lhe dará muitas ideias para você se destacar como desenvolvedor de BI. Sempre que se ater a um quadro metodológico, padrões de programação e deixe sua imaginação e engenho voar.