Vídeo: hadoop yarn architecture 2024
Um dos primeiros casos de uso do Hadoop na empresa foi como um mecanismo de transformação programática usado para processar dados para um data warehouse. Essencialmente, esse caso de uso alavanca o poder do ecossistema Hadoop para manipular e aplicar transformações aos dados antes de ser carregado em um data warehouse.
Embora o mecanismo de transformação atual seja novo (é o Hadoop, então as transformações e os fluxos de dados são codificados em Pig ou MapReduce, entre outros idiomas), a própria abordagem já foi usada por algum tempo com os processos Extract, Transform, Load (ETL).
Pense na evolução dos bancos de dados OLTP e ROLAP. Muitas organizações com bancos de dados operacionais também implantaram data warehouses. Então, como os departamentos de TI obtêm dados de seus bancos de dados operacionais em seus data warehouses? (Lembre-se de que os dados operacionais normalmente não estão em uma forma que se presta à análise.)
A resposta aqui é ETL e, como armazéns de dados aumentados em uso e importância, as etapas no processo se tornaram bem compreendidas e as melhores práticas foram desenvolvido. Além disso, várias empresas de software começaram a oferecer soluções ETL interessantes para que os departamentos de TI pudessem minimizar seu próprio desenvolvimento de código personalizado.
O processo ETL básico é bastante direto: você E dados xtract de um banco de dados operacional, T redigi-lo na forma que você precisa para sua análise e ferramentas de relatório e, em seguida, você L deve esses dados em seu data warehouse.
Uma variação comum para ETL é ELT - Extract, Load e Transform. No processo ELT, você executa transformações (em contraste com ETL) após carregar os dados no repositório de destino. Essa abordagem é freqüentemente usada quando a transformação se beneficia muito com um mecanismo de processamento de SQL muito rápido em dados estruturados. (Os bancos de dados relacionais podem não se destacar no processamento de dados não estruturados, mas eles realizam um processamento muito rápido - adivinhe o que? - dados estruturados.)
Se os dados que você está transformando estiverem destinados a um data warehouse, e muitas dessas transformações podem ser feitas em SQL, você pode optar por executar as transformações no data warehouse propriamente dito. O ELT é especialmente atraente se a maior parte do seu conjunto de habilidades reside na ferramenta baseada em SQL.
Com o Hadoop agora capaz de processar consultas SQL, as cargas de trabalho ETL e ELT podem ser hospedadas no Hadoop. A figura mostra os serviços ETL adicionados à arquitetura de referência.
Se você implantou uma zona de aterragem baseada em Hadoop, você tem quase tudo o que você precisa no lugar para usar o Hadoop como um mecanismo de transformação.Você já está enviando dados de seus sistemas operacionais para o Hadoop usando o Sqoop, que cobre o passo de extração. Neste ponto, você precisará implementar sua lógica de transformação em aplicativos MapReduce ou Pig. Depois que os dados são transformados, você pode carregar os dados no data warehouse usando o Sqoop.
Usar o Hadoop como mecanismo de transformação de dados também oferece possibilidades. Se seu data warehouse não modificar seus dados (é apenas para relatórios), você pode simplesmente manter os dados que você gera com o processo de transformação. Neste modelo, os dados só flutuam da esquerda para a direita na figura, onde os dados são extraídos dos bancos de dados operacionais, transformados na zona de pouso e depois carregados no data warehouse.
Com todos os dados transformados já na zona de pouso, não há necessidade de copiá-lo de volta para Hadoop - a menos que, obviamente, os dados sejam modificados no armazém.