Pipeline de Ingestão de Dados

Um padrão comum que muitas empresas usam para preencher um data lake baseado no Hadoop é obter dados de bases de dados relacionais e armazéns de dados pré-existentes. Ao planejar a inclusão de dados no data lake, uma das principais considerações é determinar como organizar um pipeline de processamento de dados e permitir que os consumidores acessem os dados. O Hive e o Impala fornecem uma infraestrutura de dados sobre o Hadoop – comumente referido como SQL no Hadoop – que fornece uma estrutura para os dados e a capacidade de consultar os dados usando uma linguagem semelhante a SQL.

Antes de começar vejamos os dois principais aspectos que deve-se considerar:

  • Quais formatos de armazenamento de dados devem ser usados ao armazenar dados? (O HDFS suporta vários formatos de dados para arquivos como SequenceFile, RCFile, ORCFile, AVRO, Parquet e outros);
  • Quais são as opções de compactação ideais para arquivos armazenados no HDFS? (Exemplos incluem gzip, LZO, Snappy e outros.)

Em seguida, ao projetar os esquemas do banco de dados Hive, normalmente nos deparamos com os seguintes pontos:

  • Criar o esquema do banco de dados Hive da mesma forma que o esquema do banco de dados relacional. Isso permite ingerir dados rapidamente no Hive com o mínimo de esforço para mapeamento e transformações como parte de seus pipelines de fluxo de dados de ingestão;
  • Criar um novo esquema de banco de dados diferente do esquema do banco de dados relacional. Isso permite redesenhar o esquema do banco de dados Hive e eliminar algumas das deficiências do seu esquema de banco de dados relacional atual. Isso também aumenta o esforço de mapeamento e transformação de dados como parte de seus pipelines de fluxo de dados de ingestão.

hive-studio

Notadamente o esquema do Hive foi criado semelhante ao esquema de bancos de dados relacionais. Depois que as opções de esquema, formato de dados e compactação do Hive estiverem em vigor, há configurações de design adicionais para mover dados para o data lake por meio de um pipeline de ingestão de dados:

  1. A capacidade de analisar os metadados do banco de dados relacional como tabelas, colunas de uma tabela, tipos de dados para cada coluna, chaves primárias/estrangeiras, índices, etc. Cada banco de dados relacional fornece um mecanismo para consultar essas informações. Essas informações permitem projetar eficientes pipelines de fluxo de dados;
  2. Os formatos de dados usados geralmente possuem um esquema associado a eles. Por exemplo, se estiver usando AVRO, será necessário definir um esquema AVRO. Uma consideração importante seria a capacidade de gerar automaticamente o esquema com base nos metadados do banco de dados relacional ou no esquema AVRO para tabelas do Hive com base no esquema da tabela de banco de dados relacional;
  3. A capacidade de gerar automaticamente tabelas Hive para as tabelas do banco de dados relacional de origem;
  4. Ao projetar pipelines de fluxo de dados de ingestão, considere o seguinte:
    • A capacidade de executar automaticamente todos os mapeamentos e transformações necessários para mover dados do banco de dados relacional de origem para as tabelas de Hive de destino;
    • Capacidade de compartilhar automaticamente os dados para mover eficientemente grandes quantidades de dados;
    • A capacidade de paralelizar a execução em vários nós de execução.

As tarefas acima são padrões de engenharia de dados, que encapsulam as melhores práticas para lidar com o volume, a variedade e a velocidade desses dados.

Pipeline de Ingestão de Dados

Um pipeline de entrada de dados move dados de fluxo e dados em lote de data warehouses pré-existentes para um data lake. Empresas com “big data” configuram seus pipelines de processamento de dados para estruturar seus dados, permitindo a consulta usando linguagem semelhante a SQL. A organização do pipeline de entrada de dados é uma estratégia fundamental na transição para uma solução do data lake.

Para um data lake baseado em HDFS, ferramentas como Kafka, Hive ou Spark são usadas para a ingestão de dados. O Kafka é uma ferramenta popular de ingestão de dados que suporta dados de streaming. Hive e Spark, por outro lado, movem dados de lagos de dados HDFS para bancos de dados relacionais dos quais os dados poderiam ser buscados para usuários finais.

Conclusão

A ingestão de dados é complicada. Plataformas elásticas de integração de big data podem ajudar, e muito, a alcançar estratégias de ingestão de dados sem a necessidade de escrever código, economizando tempo e dinheiro. Os pipelines permitem recursos simples de arrastar e soltar para projetar com os conectores corretos para diferentes formatos de data warehouse e técnicas de compactação.

*** A OctalMind é uma empresa especializada no desenvolvimento de sistemas de alta tecnologia.