Consultar conjuntos de dados do Apache Hudi
O Apache HudiUpsert refere-se à capacidade de inserir registros em um conjunto de dados existente, se eles ainda não existirem, ou atualizá-los, se já existirem.
O Hudi processa os eventos de inserção e atualização de dados sem criar muitos arquivos pequenos que podem causar problemas de performance em analytics. O Apache Hudi monitora automaticamente as alterações e mescla os arquivos para que mantenham o dimensionamento ideal. Isso evita a necessidade de criar soluções personalizadas que monitoram e regravam muitos arquivos pequenos em menos arquivos grandes.
Os conjuntos de dados do Hudi são adequados para os seguintes casos de uso:
-
Cumprir os regulamentos de privacidade, como o Regulamento geral de proteção de dados
(RGPD) e o California Consumer Privacy Act (CCPA), que determinam o direito das pessoas de remover informações pessoais ou alterar o modo como os dados são utilizados. -
Trabalhar com dados de streaming de sensores e outros dispositivos da Internet das Coisas (IoT) que exigem eventos específicos de inserção e atualização de dados.
-
Implementar o sistema de Change Data Capture (CDC – Captura de dados de alteração)
.
O tipo de conjunto de dados do Hudi pode ser um destes:
-
Copy on Write (CoW – Copiar na gravação): os dados são armazenados em um formato colunar (Parquet), e cada atualização cria uma nova versão dos arquivos durante uma gravação.
-
Merge on Read (MoR – Mesclar na leitura): os dados são armazenados usando uma combinação de formatos colunares (Parquet) e baseados em linha (Avro). As atualizações são registradas em arquivos
deltabaseados em linha e compactadas conforme necessário para criar novas versões dos arquivos colunares.
Com conjuntos de dados CoW, sempre que há uma atualização para um registro, o arquivo que contém o registro é regravado com os valores atualizados. Com um conjunto de dados MoR, sempre que há uma atualização, o Hudi grava apenas a linha do registro alterado. MoR é mais adequado para cargas de trabalho com maior volume de gravações ou alterações e menor volume de leituras. O tipo CoW é mais adequado para workloads com maior volume de leituras em dados que mudam com menos frequência.
O Hudi oferece três tipos de consulta para acessar os dados:
-
Consultas de snapshot: consultas que veem o snapshot mais recente da tabela a partir de uma determinada ação de confirmação ou compactação. Para tabelas MoR, as consultas de snapshot expõem o estado mais recente da tabela mesclando os arquivos base e delta da fatia de arquivo mais recente no momento da consulta.
-
Consultas incrementais: as consultas veem somente os novos dados gravados na tabela, a partir de uma determinada confirmação/compactação. Desse modo, os streams de alteração são fornecidos para habilitar pipelines de dados incrementais.
-
Ler consultas otimizadas: para tabelas MoR, as consultas veem os dados mais recentes compactados. Para tabelas CoW, as consultas veem os dados mais recentes confirmados.
A tabela a seguir mostra os possíveis tipos de consulta do Hudi para cada tipo de tabela.
| Tipo de tabela | Possíveis tipos de consulta do Hudi |
|---|---|
| Copiar na gravação | snapshot, incremental |
| Mesclar na leitura | snapshot, incremental, otimizado para leitura |
Para obter mais informações sobre as vantagens e desvantagens dos tipos de tabela e consulta, acesse Table & Queries Types
Alteração de terminologia do Hudi: as visualizações agora são consultas
A partir da versão 0.5.1 do Apache Hudi, o que antes era chamado de visualizações agora é chamado de consultas. A tabela a seguir resume as alterações entre os termos antigos e novos.
| Termo antigo | Termo novo |
|---|---|
|
CoW: visualização otimizada para leitura MoR: visualização em tempo real |
Consultas de snapshot |
| Visualização incremental | Consulta incremental |
| MoR: visualização otimizada para leitura | Consulta otimizada para leitura |