Sobre o projeto
Apache Hudi (Hadoop Upserts Deletes and Incrementals) é uma plataforma de data lakehouse de código aberto construída em torno de um formato de tabela aberto de alto desempenho. Ela permite que organizações ingiram, indexem, armazenem, sirvam, transformem e gerenciem dados em múltiplos ambientes de dados em nuvem, mantendo os dados em formatos abertos no armazenamento em nuvem.
As principais capacidades incluem:
**Ingestão**: Ferramentas integradas para usuários do Apache Spark e Apache Flink, com suporte a meia dúzia de formatos de arquivo, logs de mudanças de banco de dados e sistemas de dados em streaming. Inclui um sink do Kafka Connect para trazer fontes de dados externas.
**Armazenamento**: Formato de armazenamento otimizado com suporte a dados em linha e colunar. Apresenta metadados de timeline para rastrear o histórico de mudanças, gerenciamento automático de tamanho e layout de arquivos usando estatísticas, savepoints para versionamento e recuperação de dados, e rastreamento de esquema com evolução.
**Indexação**: Subsistema de indexação escalável que acelera consultas de snapshot, mantido automaticamente pelas escritas. Rastreia listagens de arquivos, estatísticas em nível de coluna e partição para planejamento eficiente de consultas. Fornece indexação em nível de registro por meio de formatos de arquivo orientados a linhas e filtros de bloom, além de particionamento lógico usando índices de expressão desacoplados do particionamento físico do armazenamento.
**Escrita**: Commits atômicos com suporte a rollback/restauração. Operações rápidas de upsert/delete aproveitando índices em nível de registro. Isolamento de snapshot entre escritores e consultas. Oferece controle de concorrência otimista (Read-Modify-Write para modelo de dados relacional) e controle de concorrência não bloqueante (modelo de dados em streaming com tratamento de dados fora de ordem/atrasados).
**Consultas**: Múltiplos tipos de consulta em uma única tabela: Snapshot Query (estado commitado mais recente), Incremental Query (mudanças desde um ponto no tempo), Change-Data-Capture Query (fluxo de mudanças com imagens antes/depois), Time-Travel Query (tabela em um determinado momento) e Read Optimized Query (desempenho de armazenamento colunar via compactação).
**Gerenciamento de Tabelas**: Serviços de tabela automáticos e sem intervenção manual, integrados aos escritores Spark/Flink ou operados de forma independente. Agendamento configurável com tratamento de falhas. Limpeza e gerenciamento de TTL para recuperação de armazenamento. Algoritmos de clustering e curvas de preenchimento de espaço para otimização do layout de dados. Compactação assíncrona de dados orientados a linhas em formatos colunares. Construção consistente de índices durante operações em andamento. Sincronização de catálogo com Hive Metastore, AWS Glue, Google BigQuery, Apache XTable e mais.
O Hudi suporta compilação com múltiplas versões do Spark (3.3 a 4.2) e versões do Flink (1.18 a 2.2), com opções de Scala 2.12/2.13. O projeto usa Maven para compilações e fornece perfis de teste abrangentes (unitário, funcional, integração).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.