Pular para o conteúdo principal

O que é o Apache Iceberg na Databricks?

info

Visualização

Unity Catalog-gerenciar Apache Iceberg tabelas estão disponíveis em Public Preview em Databricks Runtime 16.4 LTS e acima. As tabelas estrangeiras Iceberg também estão em Public Preview em Databricks Runtime 16.4 LTS e acima.

Apache Iceberg é um formato de tabela de código aberto para cargas de trabalho analíticas. Ele oferece suporte a recursos como evolução do esquema, viagem do tempo e particionamento oculto. Assim como o Delta Lake, o Iceberg oferece uma camada de abstração que permite transações ACID em dados armazenados no armazenamento de objetos. O Databricks oferece suporte a tabelas Iceberg que usam o formato de arquivo Apache Parquet. O Iceberg mantém a atomicidade e a consistência ao gravar novos arquivos de metadados para cada alteração na tabela.

Um catálogo Iceberg é a camada de nível superior da arquitetura da tabela Iceberg. Ele lida com operações como criação, eliminação e renomeação de tabelas. Sua principal responsabilidade é fornecer os metadados atuais quando uma tabela é carregada. Databricks suporta Iceberg tabelas gerenciar por:

Todas as tabelas Iceberg no Databricks seguem a especificação de formato de tabela Iceberg aberta. Veja as especificações da tabela Iceberg.

Criar tabelas Iceberg no Unity Catalog

Iceberg As tabelas criadas em Unity Catalog são gerenciadas por Iceberg. Você pode criar essas tabelas usando:

As tabelas do gerenciar Iceberg são totalmente integradas à plataforma Databricks recurso. Unity Catalog gerenciar a tarefa do ciclo de vida, como a expiração do Snapshot e a compactação de arquivos nessas tabelas. gerenciar Iceberg tabelas também suportam clusteringlíquido, o que melhora o desempenho da consulta. A otimização preditiva automatiza essas tarefas para reduzir os custos de armazenamento e melhorar a velocidade de consulta.

Leia Iceberg tables gerenciar por outros catálogos

Uma tabela estrangeira Iceberg é uma tabela Iceberg gerenciada por um catálogo fora de Unity Catalog. O catálogo externo armazena os metadados atuais da tabela. Databricks usa a Lakehouse Federation para recuperar metadados e ler a tabela do armazenamento de objetos.

As tabelas Foreign Iceberg são somente leitura no Databricks e têm suporte limitado à plataforma.

Acessar tabelas do Iceberg usando sistemas externos

O senhor pode acessar todas as tabelas do Iceberg no Unity Catalog usando a API REST Catalog do Iceberg. Essa API aberta oferece suporte a operações de leitura e gravação de mecanismos Iceberg externos em diferentes idiomas e plataformas. Consulte Acessar tabelas do Databricks a partir de clientes do Apache Iceberg.

O catálogo REST oferece suporte à venda de credenciais, que fornece credenciais temporárias a mecanismos externos para acessar o armazenamento subjacente. Para obter mais informações, consulte Unity Catalog credential vending for external system access.

Limitações da tabela Iceberg

As seguintes limitações se aplicam às tabelas Iceberg no Databricks e estão sujeitas a alterações:

  • As tabelas do Iceberg suportam apenas o formato de arquivo Apache Parquet.

  • A Databricks oferece suporte às versões 1 e 2 da especificação do Apache Iceberg, com as seguintes exceções:

    • Não há suporte para exclusões em nível de linha, incluindo exclusões de posição e exclusões baseadas em igualdade.
    • A ramificação e a marcação não são suportadas. Somente o ramo principal pode ser acessado ao ler tabelas Iceberg estrangeiras.
    • A evolução da partição é suportada nas tabelas do gerenciar Iceberg somente ao interagir com mecanismos externos do Iceberg. As tabelas Iceberg estrangeiras não suportam a evolução da partição.
    • Os seguintes tipos de dados não são suportados:
      • UUID
      • Fixed(L)
      • TIME
  • gerenciar Iceberg tabelas não suportam restrições primárias key ou estrangeiras key.

gerenciar Iceberg limitações da tabela

As limitações a seguir se aplicam especificamente às tabelas do gerenciar Iceberg:

  • A pesquisa vetorial não é compatível com as tabelas do gerenciar Iceberg.
  • O Apache Iceberg não é compatível com o feed de dados de alterações. Como resultado, não há suporte para o processamento incremental ao ler tabelas do gerenciar Iceberg como fonte para:
    • Visualização materializada e tabelas de transmissão
    • Monitoramento do lakehouse
    • Tabelas online
    • Lakebase
    • Classificação de dados

Limitações da tabela Iceberg estrangeira

As limitações a seguir se aplicam especificamente a tabelas Iceberg estrangeiras:

  • A viagem do tempo é suportada somente para Iceberg Snapshot que tenha sido lido anteriormente em Databricks (ou seja, Snapshot em que uma instrução SELECT foi executada).
  • O uso de funções de transformação de balde para o particionamento do Iceberg pode prejudicar o desempenho da consulta quando são usados filtros condicionais.
  • Os produtos de classificação por níveis de armazenamento em nuvem, como Amazon S3 , não estão integrados às tabelas estrangeiras Iceberg. O acesso a tabelas Iceberg estrangeiras no Databricks pode restaurar dados arquivados em camadas de armazenamento de baixo custo.
  • No clustering de modo de acesso dedicado, as leituras e REFRESH FOREIGN TABLE operações nas tabelas Iceberg exigem ALL PRIVILEGES.