
O que sãoApache Iceberg Tables?
Os formatos de tabela, com suporte para transações de atomicidade, consistência, isolamento e durabilidade (ACID), como o Apache Iceberg, contribuem para transformar as estratégias de data lakes e data mesh em soluções rápidas e eficazes de consulta dados em escala.
- Visão geral
- Como formatos de tabela simplificam data lakes
- O que é o Apache Iceberg?
- Benefícios do Apache Iceberg
- Recursos
Visão geral
Os formatos de tabela compatíveis com transações ACID, como o Apache Iceberg, contribuem para transformar as estratégias de data lakes e data mesh em soluções rápidas e eficazes para consulta de dados em escala. Escolher o formato de tabela adequado permite que as organizações aproveitem todo o potencial de seus dados, oferecendo desempenho, interoperabilidade e facilidade de uso. O formato de tabela Iceberg é único entre as alternativas de código aberto, pois oferece independência em relação a mecanismos e formatos de arquivo, além de ser um projeto de código aberto altamente colaborativo e transparente. Vamos analisar os benefícios de usar um formato de tabela aberto para analisar grandes conjuntos de dados e entender por que, rapidamente, o Iceberg tornou-se um dos formatos de tabela de código aberto mais populares do mercado.
Como formatos de tabela simplificam data lakes
Os data lakes são ideais para armazenar grandes volumes de dados estruturados, semiestruturados e não estruturados em formatos de arquivo nativo. Eles fornecem às organizações um método abrangente para pesquisar, refinar e analisar petabytes de informação recebidas constantemente de várias fontes de dados.
No entanto, os arquivos individuais em um data lake não contêm informações suficientes para que mecanismos de consulta e outras aplicações realizem de forma eficaz tarefas como pruning, Time Travel, evolução de esquema, entre outras. Como resultado, realizar essas tarefas de gerenciamento é algo difícil e demorado. Os formatos de tabela resolvem essas questões, fornecendo metadados que viabilizam recursos e funcionalidades semelhantes às oferecidas pelas tabelas SQL em um banco de dados relacional tradicional. De modo muito claro, eles definem uma tabela, seu esquema, seu histórico e cada arquivo que a compõe. Além disso, os formatos de tabela, como o Iceberg, permitem a conformidade com o ACID, para que várias aplicações trabalhem com segurança nos mesmos dados ao mesmo tempo.
O que é o Apache Iceberg?
O Iceberg é um formato de tabela de código aberto desenvolvido pela Netflix para lidar com vários desafios encontrados dentro do projeto Hive Hadoop da Apache. Após seu desenvolvimento inicial em 2018, a Netflix doou o Iceberg à Apache Software Foundation como um projeto de código totalmente aberto e gerido de forma aberta. Ele elimina muitas das falhas do seu antecessor e muito rápido se tornou um dos formatos de tabela de código aberto mais populares.
Benefícios do Apache Iceberg
O formato de tabela Iceberg oferece muitos recursos para ajudar a melhorar a sua arquitetura de data lake.
- Expressive SQL: o Iceberg oferece suporte total aos comandos flexíveis do SQL. Com isso, é possível concluir tarefas, como atualizar linhas existentes, mesclar novos dados e fazer exclusões direcionadas. O Iceberg pode ser usado para reescrever arquivos de dados de modo a melhorar o desempenho de leitura e usar deltas de exclusão para acelerar o ritmo das atualizações.
- Evolução do esquema: o Iceberg oferece suporte à evolução completa do esquema. As atualizações de esquema em tabelas Iceberg alteram apenas os metadados, deixando os arquivos de dados inalterados. As alterações na evolução de esquema incluem adições, exclusões, renomeações, reordenações e promoções de tipo.
- Evolução de partição: o particionamento divide tabelas grandes em tabelas menores, agrupando linhas semelhantes, diminuindo os tempos de leitura e upload para consultas que precisam acessar apenas uma parte dos dados. A especificação de uma partição pode evoluir sem alterar os dados já gravados com uma especificação anterior. Os metadados associados a cada versão de partição são armazenados separadamente.
- Time Travel e reversão: o recurso Time Travel do Iceberg permite executar consultas reproduzíveis em um mesmo snapshot da tabela e dá aos usuários a capacidade de inspecionar as alterações anteriores. Esse recurso de reversão permite aos usuários desfazer erros com facilidade, restaurando as tabelas para o seu estado anterior.
- Consistência transacional: os dados armazenados em um data lake ou arquitetura de data mesh estão disponíveis de modo simultâneo a várias aplicações independentes em toda a organização. Embora seja de grande vantagem, essa função também pode trazer alguns riscos substanciais, especialmente se vários usuários estiverem trabalhando com os mesmos dados ao mesmo tempo. Por isso, o Iceberg permite transações ACID em escala, para que os usuários possam trabalhar facilmente em paralelo. O suporte ACID ajuda a garantir que os usuários (leitores) não sejam afetados por alterações parciais ou não confirmadas. Quando um usuário confirma uma alteração, o Iceberg cria uma versão nova e imutável dos arquivos de dados e metadados da tabela.
- Consultas mais rápidas: o Iceberg foi desenvolvido para uso com grandes conjuntos de dados analíticos. Ele oferece vários recursos para aumentar a velocidade e melhorar a eficiência das consultas, incluindo planejamento rápido de verificações, eliminação de arquivos de metadados desnecessários e a capacidade de filtrar arquivos de dados que não contêm informações correspondentes.
- Comunidade ativa e engajada de colaboradores e usuários do Apache ORC: o Iceberg é um dos principais projetos da Apache Software Foundation. O suporte que ele oferece a vários mecanismos de processamento e formatos de arquivos, incluindo Apache Parquet, Apache Avro e Apache ORC, atrai um grupo diversificado de usuários corporativos, interessados em contribuir para a continuidade do sucesso da solução.