Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Important
As tabelas Iceberg gerenciadas pelo Unity Catalog estão disponíveis no Public Preview no Databricks Runtime 16.4 LTS e superior. As tabelas Foreign Iceberg também estão em visualização pública no Databricks Runtime 16.4 LTS e superior.
Os recursos do Iceberg v3 estão disponíveis em versão Beta no Databricks Runtime 17.3 e superior. Consulte Usar recursos do Apache Iceberg v3.
Apache Iceberg é um formato de tabela de código aberto para cargas de trabalho de análise. Ele suporta recursos como evolução de esquema, viagem no tempo e particionamento oculto. Como o Delta Lake, o Iceberg fornece uma camada de abstração que permite transações ACID em dados armazenados no armazenamento de objetos. O Azure Databricks dá suporte a tabelas Iceberg que usam o formato de arquivo Apache Parquet. O Iceberg mantém a atomicidade e a consistência escrevendo novos arquivos de metadados para cada alteração na tabela.
Um catálogo Iceberg é a camada superior da arquitetura de tabela Iceberg. Ele lida com operações como criar, eliminar e renomear tabelas. Sua principal responsabilidade é fornecer os metadados atuais quando uma tabela é carregada. O Azure Databricks suporta tabelas Iceberg geridas por:
- Catálogo Unity
- Catálogos estrangeiros, como AWS Glue, Hive Metastore ou Snowflake Horizon Catalog
Todas as tabelas Iceberg no Azure Databricks seguem a especificação de formato de tabela Iceberg aberta. Consulte as especificações da tabela Iceberg.
Criar tabelas Iceberg no Catálogo Unity
As tabelas Iceberg criadas no Unity Catalog são tabelas Iceberg gerenciadas. Você pode criar essas tabelas usando:
- Databricks Runtime ou Databricks SQL
- Mecanismos externos compatíveis com Iceberg que suportam a API do Catálogo REST do Iceberg, como Apache Spark, Flink, Trino ou Kafka. Consulte Aceder a tabelas do Azure Databricks pelos clientes do Apache Iceberg.
As tabelas Iceberg gerenciadas são totalmente integradas aos recursos da plataforma Azure Databricks. O Unity Catalog gerencia tarefas do ciclo de vida, como expiração de instantâneos e compactação de arquivos nessas tabelas. As tabelas Iceberg gerenciadas também suportam clustering lí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 da consulta. A Databricks recomenda o uso de clientes Iceberg 1.9.2 e superiores para ler e gravar no Unity Catalog.
Leia tabelas Iceberg gerenciadas por outros catálogos
Uma mesa Iceberg externa é uma mesa Iceberg gerida por um catálogo fora do Unity Catalog. O catálogo externo armazena os metadados atuais da tabela. O Azure Databricks usa a Lakehouse Federation para recuperar metadados e ler a tabela do armazenamento de objetos.
As tabelas Iceberg externas são somente leitura no Azure Databricks e têm suporte limitado na plataforma.
Acesse tabelas Iceberg usando sistemas externos
Você pode acessar todas as tabelas do Iceberg no Catálogo Unity usando a API do Catálogo REST do Iceberg. Esta API aberta suporta operações de leitura e escrita a partir de motores Iceberg externos em diferentes idiomas e plataformas. Consulte Aceder a tabelas do Azure Databricks pelos 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 Venda automática de credenciais do Unity Catalog para acesso externo ao sistema.
Limitações da tabela Iceberg
As limitações a seguir se aplicam às tabelas Iceberg no Azure Databricks e estão sujeitas a alterações:
- As tabelas Iceberg suportam apenas o formato de arquivo Apache Parquet.
- O Azure Databricks suporta as versões 1, 2 e 3 da especificação Iceberg.
- Para limitações específicas da v3, consulte Limitações.
- Não há suporte para exclusões de posição do Iceberg v2 e exclusões baseadas em igualdade. Em vez disso, o Azure Databricks dá suporte a vetores de exclusão do Iceberg v3 para exclusões no nível da linha.
- A ramificação e a marcação não são suportadas. Apenas a ramificação principal está acessível ao ler tabelas estrangeiras de Iceberg.
- Particionamento:
- A evolução da partição é suportada em tabelas Iceberg geridas somente quando se interage por motores Iceberg externos.
- As tabelas Iceberg estrangeiras não suportam a evolução de partições.
- Não há suporte para particionamento por
BINARYtipo.
- Os seguintes tipos de dados não são suportados:
UUIDFixed(L)TIME- Aninhado
STRUCTcom campos obrigatórios
- As tabelas Iceberg gerenciadas não suportam restrições de chave primária ou chave estrangeira.
Limitações da tabela Iceberg gerenciada
As seguintes limitações aplicam-se especificamente às tabelas Iceberg gerenciadas:
- Filtros de linha e máscaras de coluna não são suportados.
- A pesquisa vetorial não é suportada.
- O Iceberg não suporta feed de mudança de dados. Como resultado, o processamento incremental não é suportado ao ler tabelas gerenciadas do Iceberg como fonte para:
- Visualizações materializadas e tabelas de streaming
- Definição de perfis de dados
- Mesas online
- Lakebase
- Classificação dos dados
- As tabelas Iceberg gerenciadas só podem ser criadas se a otimização preditiva estiver habilitada para manutenção de tabelas.
- As seguintes propriedades de tabela são gerenciadas pelo Unity Catalog e não podem ser definidas manualmente:
write.location-provider.implwrite.data.pathwrite.metadata.pathwrite.format.defaultwrite.delete.format.default
- O codec de compressão para alterar a compressão de tabela não é suportado. Todas as tabelas usam Zstd por padrão.
- A partição por expressões (por exemplo,
years(),months(),days(),hours(),bucket()) não é suportada.
Limitações da tabela Foreign Iceberg
As seguintes limitações aplicam-se especificamente às tabelas Iceberg externas:
- A viagem no tempo é suportada apenas para instantâneos do Iceberg que foram lidos anteriormente no Azure Databricks (ou seja, instantâneos onde uma
SELECTinstrução foi executada). - O uso de funções de transformação de bucket para particionamento no Iceberg pode degradar o desempenho das consultas quando são usados filtros condicionais.
- Produtos de armazenamento em nuvem com hierarquização, como o Amazon S3, não são integrados a tabelas Iceberg de origem externa. O acesso a tabelas Iceberg estrangeiras no Azure Databricks pode restaurar dados arquivados em níveis de armazenamento de baixo custo.
- Em clusters de modo de acesso dedicado, operações e leituras em tabelas do Iceberg exigem
REFRESH FOREIGN TABLE.