Tabelas Apache Iceberg™¶
As tabelas Apache Iceberg™ do Snowflake combinam o desempenho e a semântica de consulta das tabelas típicas do Snowflake com o armazenamento em nuvem externo que você gerencia. Elas são ideais para data lakes existentes que você não pode ou optou por não armazenar no Snowflake.
As tabelas Iceberg usam a especificação de formato aberto de tabela Apache Iceberg™, que fornece uma camada de abstração em arquivos de dados armazenados em formatos abertos e oferece suporte a recursos como:
Transações ACID (atomicidade, consistência, isolamento, durabilidade)
Evolução do esquema
Particionamento oculto
Instantâneos de tabela
O Snowflake aceita tabelas Iceberg que usam o formato de arquivo Apache Parquet™.
Introdução¶
Para começar com as tabelas Iceberg, consulte Tutorial: Crie sua primeira tabela Apache Iceberg™.
Como funciona¶
Esta seção fornece informações específicas para trabalhar com tabelas Iceberg no Snowflake. Para saber mais sobre a especificação do formato da tabela Iceberg, consulte a documentação oficial do Apache Iceberg e as Especificações da tabela Iceberg.
Armazenamento de dados¶
As tabelas Iceberg armazenam seus dados e arquivos de metadados em um local de armazenamento em nuvem externo (Amazon S3, Google Cloud Storage ou Azure Storage). O armazenamento externo não faz parte do Snowflake. Você é responsável por todo o gerenciamento do local de armazenamento em nuvem externo, incluindo a configuração da proteção e recuperação de dados. O Snowflake não fornece armazenamento Fail-safe para tabelas Iceberg.
O Snowflake se conecta ao seu local de armazenamento usando um volume externo, e as tabelas Iceberg não incorrem em custos de armazenamento Snowflake. Para obter mais informações, consulte Faturamento.
Para saber mais sobre armazenamento para tabelas Iceberg, consulte Armazenamento para tabelas Apache Iceberg™.
Volume externo¶
Um volume externo é um objeto Snowflake nomeado ao nível de conta, que você usa para conectar o Snowflake ao seu armazenamento em nuvem externo para tabelas Iceberg. Um volume externo armazena uma entidade de gerenciamento de identidade e acesso (IAM) para seu local de armazenamento. O Snowflake usa a entidade de IAM para se conectar com segurança ao seu armazenamento e acessar dados de tabela, metadados Iceberg e arquivos de manifesto que armazenam o esquema de tabela, partições e outros metadados.
Um único volume externo pode oferecer suporte a uma ou mais tabelas Iceberg.
Para configurar um volume externo para tabelas Iceberg, consulte Configuração de um volume externo.
Catálogo¶
Um catálogo Iceberg permite que um mecanismo de computação gerencie e carregue tabelas Iceberg. O catálogo forma a primeira camada de arquitetura na especificação da tabela Iceberg e deve oferecer suporte ao seguinte:
Armazenar o ponteiro de metadados atual para uma ou mais tabelas Iceberg. Um ponteiro de metadados mapeia o nome de uma tabela para o local do arquivo de metadados atual dessa tabela.
Executar operações atômicas para que você possa atualizar o ponteiro de metadados atual de uma tabela.
Para saber mais sobre os catálogos Iceberg, consulte a documentação do Apache Iceberg.
O Snowflake oferece suporte a diferentes opções de catálogo. Por exemplo, você pode usar o Snowflake como o catálogo Iceberg ou usar uma integração de catálogo para conectar o Snowflake a um catálogo Iceberg externo.
Integração de catálogo¶
Uma integração de catálogo é um objeto Snowflake nomeado no nível de conta que armazena informações sobre como os metadados da tabela são organizados para os seguintes cenários:
Quando você não usa o Snowflake como catálogo Iceberg. Por exemplo, você precisa de uma integração de catálogo, se sua tabela for gerenciada pelo AWS Glue.
Quando você deseja fazer a integração ao Snowflake Open Catalog para:
Consultar uma tabela Iceberg no Snowflake Open Catalog usando Snowflake.
Sincronizar uma tabela Iceberg gerenciada pelo Snowflake com o Snowflake Open Catalog para que mecanismos de computação de terceiros possam consulta a tabela.
Uma única integração de catálogo pode oferecer suporte a uma ou mais tabelas Iceberg que usam o mesmo catálogo externo.
Para configurar uma integração de catálogo, consulte Configurar uma integração de catálogo.
Metadados e instantâneos¶
Iceberg usa um modelo de consulta baseado em instantâneo, onde os arquivos de dados são mapeados usando arquivos de manifesto e metadados. Um instantâneo representa o estado de uma tabela em um determinado momento e é usado para acessar o conjunto completo de arquivos de dados na tabela.
Para saber mais sobre metadados da tabela e suporte a Time Travel, consulte Metadados e retenção para tabelas Apache Iceberg™.
Suporte entre nuvens/entre regiões¶
O Snowflake oferece suporte ao uso de um local de armazenamento de volume externo com um provedor de nuvem diferente (em uma região diferente) daquele que hospeda sua conta Snowflake.
Tipo de tabela |
Suporte entre nuvens/entre regiões |
Notas |
---|---|---|
Tabelas que usam um catálogo externo com uma integração de catálogo |
✔ |
Se sua conta Snowflake e seu volume externo estiverem em regiões diferentes, sua conta externa de armazenamento em nuvem incorrerá em custos de saída quando você consultar a tabela. |
Tabelas que usam o Snowflake como o catálogo |
✔ |
Se sua conta Snowflake e seu volume externo estiverem em regiões diferentes, sua conta externa de armazenamento em nuvem incorrerá em custos de saída quando você consultar a tabela. Essas tabelas incorrem em custos para o uso de transferência de dados entre regiões. Para obter mais informações, consulte Faturamento. |
Faturamento¶
O Snowflake fatura sua conta pelo uso do warehouse virtual (computação) e pelos serviços de nuvem quando você trabalha com tabelas Iceberg. A Snowflake também cobra sua conta se você usar atualização automática.
Se uma tabela Iceberg gerenciada pelo Snowflake estiver em uma nuvem/região diferente, o Snowflake cobrará o uso da transferência de dados entre nuvens/regiões sob o TRANSFER_TYPE de DATA_LAKE. Para saber mais, consulte:
Exibição DATA_TRANSFER_HISTORY no esquema ORGANIZATION_USAGE.
Exibição DATA_TRANSFER_HISTORY no esquema ACCOUNT_USAGE.
A Snowflake não fatura sua conta pelo seguinte:
Custos de armazenamento da tabela Iceberg. Seu provedor de armazenamento em nuvem faz a cobrança diretamente pelo uso do armazenamento de dados.
Bytes ativos usados pelas tabelas Iceberg. No entanto, as exibições INFORMATION_SCHEMA TABLE_STORAGE_METRICS e ACCOUNT_USAGE TABLE_STORAGE_METRICS exibem ACTIVE_BYTES para tabelas Iceberg para ajudar você a monitorar quanto armazenamento uma tabela ocupa. Para visualizar um exemplo, consulte Recuperar métricas de armazenamento.
Nota
Se sua conta Snowflake e seu volume externo estiverem em regiões diferentes, sua conta externa de armazenamento em nuvem incorrerá em custos de saída quando você consultar a tabela.
Opções de catálogo¶
O Snowflake oferece suporte às seguintes opções de catálogo Iceberg:
Uso do Snowflake como o catálogo Iceberg
Usar um catálogo externo do Iceberg
A tabela a seguir resume as diferenças entre essas opções de catálogo.
Acesso de leitura |
✔ |
✔ |
Acesso de gravação |
✔ |
✔ O suporte de gravação para tabelas gerenciadas externamente está em versão preliminar. |
Acesso de gravação entre regiões |
✔ |
✔ com suporte de gravação para tabelas gerenciadas externamente |
Armazenamento de dados e metadados |
Volume externo (armazenamento em nuvem) |
Volume externo (armazenamento em nuvem) |
Suporte à plataforma Snowflake |
✔ |
|
Integra-se com o Snowflake Open Catalog |
✔ Você pode sincronizar uma tabela gerenciada pelo Snowflake com o Open Catalog para consulta uma tabela usando outros mecanismos de computação. |
✔ Você pode usar o Snowflake para consultar ou gravar em tabelas Iceberg gerenciadas pelo Open Catalog. |
Funciona com o SDK do catálogo Snowflake |
✔ |
✔ |
Usar o Snowflake como catálogo¶
Uma tabela Iceberg que usa o Snowflake como catálogo Iceberg (tabela Iceberg gerenciada pelo Snowflake) oferece suporte completo à plataforma Snowflake com acesso de leitura e gravação. Os dados e metadados da tabela são armazenados em armazenamento em nuvem externo, que o Snowflake acessa usando um volume externo. Snowflake cuida de toda a manutenção do ciclo de vida, como compactação, da tabela.
Use um catálogo externo¶
Uma tabela Iceberg que usa um catálogo externo oferece suporte limitado à plataforma Snowflake.
Com esse tipo de tabela, o Snowflake usa uma integração de catálogo para recuperar informações sobre os metadados e o esquema Iceberg.
Você pode usar essa opção para criar uma tabela Iceberg para as seguintes fontes:
Catálogo REST Iceberg remoto, incluindo AWS Glue e Snowflake Open Catalog. O Snowflake oferece suporte a gravações em tabelas gerenciadas externamente que usam um catálogo REST Iceberg remoto.
Snowflake não assume nenhum gerenciamento de ciclo de vida.
Os dados e metadados da tabela são armazenados em armazenamento em nuvem externo, que o Snowflake acessa usando um volume externo.
Nota
Se quiser suporte total à plataforma Snowflake para uma tabela Iceberg que usa um catálogo externo, poderá convertê-la para usar o Snowflake como catálogo. Para obter mais informações, consulte Converter uma tabela Apache Iceberg™ para usar o Snowflake como catálogo.
O diagrama a seguir mostra como uma tabela Iceberg usa uma integração de catálogo com um catálogo Iceberg externo.
Considerações e limitações¶
As seguintes considerações e limitações se aplicam às tabelas Iceberg e estão sujeitas a alterações:
Nuvens e regiões
As tabelas Iceberg estão disponíveis para todas as contas Snowflake, em todas as plataformas de nuvem e em todas as regiões.
Há suporte para tabelas entre nuvens e entre regiões. Para obter mais informações, consulte Suporte entre nuvens/entre regiões.
Iceberg
As versões 1 e 2 da especificação Apache Iceberg são suportadas, excluindo os seguintes recursos:
Exclusões de igualdade em nível de linha. No entanto, tabelas que usam o Snowflake como catálogo oferecem suporte a instruções DELETE do Snowflake.
Usando a
history.expire.min-snapshots-to-keep
propriedade da tabela para especificar o número mínimo padrão de instantâneos a serem mantidos. Para obter mais informações, consulte Metadados e instantâneos.O particionamento Iceberg com a função de transformação
bucket
afeta o desempenho de consultas que usam cláusulas condicionais para filtrar resultados.Para tabelas Iceberg que não são gerenciadas pelo Snowflake, esteja ciente do seguinte:
O Time Travel para qualquer instantâneo gerado após a criação da tabela é compatível, desde que você atualize periodicamente a tabela antes que o instantâneo expire.
Não há suporte para a conversão de uma tabela que tenha uma coluna de partição de identidade não materializada. Uma coluna de partição de identidade não materializada é criada quando uma tabela define uma transformação de identidade usando uma coluna de origem que não existe em um arquivo Parquet.
Para , o nível de linha exclui:
O Snowflake apenas oferece suporte à exclusão por posição.
Para obter o melhor desempenho de leitura ao usar exclusões em nível de linha, execute a compactação regular e a manutenção da tabela para remover arquivos de exclusão antigos. Para obter mais informações, consulte Manter tabelas que usam um catálogo externo.
Atualmente, a atualização automatizada não é compatível quando você usa exclusões de posição.
Exclusões de posição excessivas, especialmente exclusões de posição pendentes, podem impedir operações de criação e atualização de tabelas. Para evitar esse problema, execute a manutenção da tabela para remover exclusões de posição extras.
O método de manutenção de tabela a ser usado depende do seu mecanismo Iceberg externo. Por exemplo, você pode usar o método
rewrite_data_files
para Spark com as opçõesdelete-file-threshold
ourewrite-all
. Para obter mais informações, consulte rewrite_data_files na documentação Apache Iceberg™.
Formatos de arquivo
As tabelas Iceberg são compatíveis com arquivos Apache Parquet.
Arquivos Parquet que usam o tipo lógico inteiro não assinado não são aceitos.
Para arquivos Parquet que usam o tipo lógico
LIST
, esteja ciente do seguinte:
A estrutura de anotação de três níveis com a palavra-chave
element
é compatível. Para obter mais informações, consulte Definições do tipo lógico Parquet. Se o arquivo Parquet usar um formato obsoleto com a palavra-chavearray
, você deverá gerar novamente os dados com base no formato compatível.
Volumes externos
Você não pode acessar os locais de armazenamento em nuvem em volumes externos usando uma integração de armazenamento.
Você deve configurar uma relação de confiança separado para cada volume externo que criar.
É possível usar a conectividade privada saída para acessar tabelas Iceberg gerenciadas pelo Snowflake e tabelas Iceberg que usam uma integração de catálogo para armazenamento de objetos, mas não é possível usá-la para acessar tabelas Iceberg que usam outras integrações de catálogo.
Depois que você cria uma tabela gerenciada pelo Snowflake, o caminho para seus arquivos no armazenamento externo não muda, mesmo que você renomeie a tabela.
O Snowflake não é compatível com volumes externos com nomes de bucket S3 que contenham pontos (por exemplo,
my.s3.bucket
). O S3 não oferece suporte a SSL para buckets do tipo de hospedam virtual com pontos no nome, e o Snowflake usa caminhos do tipo de hospedam virtual e HTTPS para acessar dados no S3.
Arquivos de metadados
Os arquivos de metadados não identificam o instantâneo mais recente de uma tabela Iceberg.
Você não pode modificar o local dos arquivos de dados ou instantâneos usando o comando ALTER ICEBERG TABLE. Para modificar qualquer uma dessas configurações, você deve recriar a tabela (usando a sintaxe CREATE OR REPLACE ICEBERG TABLE).
Para tabelas que usam um catálogo externo:
Certifique-se de que os arquivos de manifesto não contenham duplicatas. Se houver arquivos duplicados no mesmo instantâneo, o Snowflake retornará um erro que inclui o caminho do arquivo duplicado.
Não é possível criar uma tabela se os metadados Parquet contiverem caracteres UTF-8 inválidos. Certifique-se de que seus metadados Parquet sejam compatíveis com UTF-8.
O Snowflake detecta corrupções e inconsistências nos metadados do Parquet produzidos fora do Snowflake e revela problemas por meio de mensagens de erro.
É possível criar, atualizar ou consultar tabelas gerenciadas externamente (ou convertidas), mesmo que os metadados da tabela sejam inconsistentes. Ao escrever dados Iceberg, certifique-se de que as estatísticas de metadados da tabela (por exemplo,
RowCount
ouNullCount
) correspondam ao conteúdo dos dados.Para tabelas que usam o Snowflake como catálogo, o Snowflake processa instruções DDL individualmente e produz metadados de uma maneira que pode ser diferente de outros catálogos. Para obter mais informações, consulte Instruções DDL.
Clustering
O suporte ao clustering depende do tipo de tabela Iceberg.
Tipo de tabela
Notas
Tabelas que usam Snowflake como catálogo Iceberg
Defina uma chave de clustering usando o comando CREATE ICEBERG TABLE ou ALTER ICEBERG TABLE. Para definir ou gerenciar uma chave de clustering, consulte CREATE ICEBERG TABLE (Snowflake como o catálogo Iceberg) e ALTER ICEBERG TABLE.
Tabelas que usam um catálogo externo
Clustering não é suportado.
Tabelas convertidas
O Snowflake apenas clusteriza arquivos se eles tiverem sido criados após a conversão da tabela ou se os arquivos tiverem sido modificados usando uma instrução DML.
Delta
O Snowflake oferece suporte ao leitor Delta versão 2 e pode ler todas as tabelas escritas por mecanismos que usam o Delta Lake versão 2.2.0.
Os fluxos Snowflake não são compatíveis com tabelas Iceberg criadas a partir de arquivos de tabela Delta com colunas de partição. No entanto, os fluxos apenas de inserção para tabelas criadas a partir de arquivos Delta sem colunas de partição são compatíveis.
As tabelas Iceberg criadas a partir de arquivos delta criados antes do pacote de lançamento 2024_04 não são aceitas em tabelas dinâmicas.
Snowflake não oferece suporte à criação de tabelas Iceberg a partir de definições de tabela Delta no AWS Glue Data Catalog.
Arquivos Parquet (arquivos de dados para tabelas Delta) que usam qualquer um dos seguintes recursos ou tipos de dados não são compatíveis:
Campo IDs.
O tipo de dados INTERVAL.
O tipo de dados DECIMAL com precisão maior que 38.
Os tipos LIST ou MAP com representação de um ou dois níveis.
Tipos inteiros sem sinal (INT(signed = false)).
O tipo de dados FLOAT16.
Você pode usar o tipo físico Parquet
int96
para TIMESTAMP, mas o Snowflake não oferece suporte aint96
para TIMESTAMP_NTZ.
Para obter mais informações sobre os tipos de dados Delta e tabelas Iceberg, consulte Tipos de dados Delta.
O Snowflake processa um máximo de 1.000 arquivos de confirmação Delta cada vez que você atualiza uma tabela usando CREATE/ALTER … REFRESH. Se sua tabela tiver mais de 1.000 arquivos de confirmação, é possível fazer atualizações manuais adicionais. A cada vez, o processo de atualização continua de onde o último parou.
Nota
O Snowflake usa arquivos de ponto de verificação Delta ao criar uma tabela Iceberg. O limite de 1.000 arquivo de confirmação se aplica somente a confirmações após o último ponto de verificação.
Quando você atualiza uma tabela existente, o Snowflake processa os arquivos de confirmação Delta, mas não os arquivos de ponto de verificação. Se a manutenção da tabela remover arquivos de log e de dados obsoletos da tabela Delta de origem, você deverá atualizar as tabelas Iceberg baseadas em Delta no Snowflake com mais frequência do que o período de retenção dos logs e arquivos de dados do Delta.
Os seguintes recursos do Delta Lake não são compatíveis no momento: rastreamento de linhas, arquivos vetoriais de exclusão, arquivos de dados de alteração, metadados de alteração, DataChange, CDC e evolução de protocolo.
Atualização automática
Para integrações de catálogo criadas antes da versão 8.22 do Snowflake (ou 9.2 para tabelas baseadas em Delta), você deve definir manualmente o parâmetro
REFRESH_INTERVAL_SECONDS
antes de ativar a atualização automática em tabelas que dependem dessa integração de catálogo. Para obter instruções, consulte ALTER CATALOG INTEGRATION … SET AUTO_REFRESH.Para as integrações de catálogo para armazenamento de objetos, a atualização automatizada só é compatível com as integrações com
TABLE_FORMAT = DELTA
.Para tabelas com atualizações frequentes, o uso de um intervalo de pesquisa mais curto (
REFRESH_INTERVAL_SECONDS
) pode causar degradação do desempenho.
Bancos de dados vinculados a catálogos e descoberta automática de tabelas
Aceito apenas quando você usa uma integração de catálogo para o Iceberg REST (por exemplo, Snowflake Open Catalog).
Faturamento: Durante o período de versão preliminar, o Snowflake não cobra por bancos de dados vinculados a catálogos. O faturamento começa quando bancos de dados vinculados a catálogos Apache Iceberg™ se tornam disponíveis ao público em geral.
Para limitar a descoberta automática de tabelas a um conjunto específico de namespaces, use o parâmetro ALLOWED_NAMESPACES. Você também pode usar o parâmetro BLOCKED_NAMESPACES para bloquear um conjunto de namespaces.
O Snowflake não sincroniza o controle de acesso a catálogo remoto (usuários ou funções).
Você pode criar esquemas ou tabelas Iceberg gerenciadas externamente em um banco de dados vinculado a catálogos. Atualmente, não há suporte para a criação de outros objetos Snowflake.
Latência:
Para bancos de dados vinculados a 7.500 namespaces em um catálogo remoto, a descoberta de namespaces e tabelas leva cerca de uma hora.
Para catálogos remotos com 500 mil tabelas, o processo de atualização automatizada leva cerca de uma hora para ser concluído. Para namespaces com diferentes requisitos de latência, recomendamos a criação de bancos de dados vinculados a catálogos separados. Cada banco de dados deve referenciar uma integração de catálogo com um intervalo de atualização automática apropriado (REFRESH_INTERVAL_SECONDS).
Para tabelas Iceberg em um banco de dados vinculado a catálogo:
O Snowflake não copia propriedades de tabelas de catálogo remoto (como políticas de retenção ou buffers) e atualmente não oferece suporte à alteração de propriedades de tabela.
A atualização automática está habilitada por padrão. Se o
table-uuid
de uma tabela externa e a tabela do banco de dados vinculado a catálogo não corresponderem, a atualização falhará e o Snowflake removerá a tabela do banco de dados vinculado a catálogo; o Snowflake não alterará a tabela remota.Se você remover uma tabela do catálogo remoto, o Snowflake a removerá do banco de dados vinculado a catálogo. Essa ação é assíncrona; portanto, você pode não ver a alteração no catálogo remoto imediatamente.
Se você renomear uma tabela no catálogo remoto, o Snowflake removerá a tabela existente do banco de dados vinculado a catálogo e criará uma tabela com o novo nome.
Políticas de mascaramento e tags são aceitas. Outros recursos específicos do Snowflake, incluindo replicação, clonagem e compartilhamento, não são aceitos.
O caractere escolhido para o parâmetro NAMESPACE_FLATTEN_DELIMITER não pode aparecer em seus namespaces remotos. Durante o processo de descoberta automática, o Snowflake ignora qualquer namespace que contenha o delimitador e não cria um esquema correspondente no seu banco de dados vinculado a catálogo.
Se você especificar algo diferente de
_
,$
, letras maiúsculas ou números para o parâmetro NAMESPACE_FLATTEN_DELIMITER, deverá colocar o nome do esquema entre aspas ao consultar a tabela.Para bancos de dados vinculados ao AWS Glue, você deve usar letras minúsculas e colocar os nomes do esquema, da tabela e das colunas entre aspas duplas. Isso também é necessário para outros catálogos Iceberg REST que aceitam apenas identificadores em minúsculas.
O exemplo a seguir mostra uma consulta válida:
CREATE SCHEMA "s1";As instruções a seguir não são válidas porque usam letras maiúsculas ou omitem as aspas duplas:
CREATE SCHEMA s1; CREATE SCHEMA "Schema1";O uso de UNDROP ICEBERG TABLE não é aceito.
Compartilhamentos com uma listagem são aceitos para tabelas que usam um volume externo. No momento, o compartilhamento direto não é aceito.
Para gravar em tabelas em um banco de dados vinculado a catálogo:
As credenciais fornecidas não são aceitas.
Gravações em tabelas em namespaces aninhados não são aceitas no momento.
Suporte a gravação gerenciada externamente
O Snowflake fornece comandos de Linguagem de Definição de Dados (DDL) e Linguagem de Manipulação de Dados (DML) para tabelas gerenciadas externamente. No entanto, você configura retenção de dados e metadados usando seu catálogo externo e as ferramentas fornecidas pelo seu provedor de armazenamento externo. Para obter mais informações, consulte Tabelas que usam um catálogo externo.
Para gravações, o Snowflake garante que as alterações sejam confirmadas no seu catálogo remoto antes de atualizar a tabela no Snowflake.
Se você usar um banco de dados vinculado a catálogo, poderá usar a sintaxe CREATE ICEBERG TABLE com definições de coluna para criar uma tabela no Snowflake e no seu catálogo remoto. Se você usar um banco de dados Snowflake padrão (não vinculado a catálogo), deverá primeiro criar uma tabela no seu catálogo remoto. Depois disso, você poderá usar a sintaxe CREATE ICEBERG TABLE (catálogo REST Iceberg) para criar uma tabela Iceberg no Snowflake e gravar nela.
Para o catálogo de dados do AWS Glue: Remover uma tabela gerenciada externamente por meio do Snowflake não exclui os arquivos da tabela subjacente. Esse comportamento é específico da implementação do catálogo de dados do AWS Glue.
Se você tiver participado da versão preliminar privada deste recurso, as exclusões em nível de linha de posição poderão estar ativadas por padrão na sua conta. Para verificar, execute o seguinte comando:
SHOW PARAMETERS LIKE 'ENABLE_ICEBERG_MERGE_ON_READ' IN ACCOUNT;Se o parâmetro estiver visível na sua conta (independentemente do valor), as exclusões de posição estarão ativadas. Para desativar as exclusões de posição, defina o parâmetro
ENABLE_ICEBERG_MERGE_ON_READ
como FALSE no nível da tabela, do esquema ou do banco de dados.Não há suporte para gravação em tabelas gerenciadas externamente com os seguintes tipos de dados Iceberg:
uuid
fixed(L)
Os seguintes recursos não são aceitos atualmente quando você usa o Snowflake para gravar em tabelas Iceberg gerenciadas externamente:
Credenciais fornecidas pelo catálogo.
Criptografia do lado do servidor (SSE) para volumes externos GCS ou do Azure.
Transações com várias instruções. O Snowflake oferece suporte apenas a transações de confirmação automática.
Conversão em tabelas gerenciadas pelo Snowflake.
Catálogos Iceberg externos que não estão em conformidade com o protocolo Iceberg REST.
Exclusões em nível de linha (mesclagem na leitura).
Uso da opção OR REPLACE ao criar uma tabela.
Uso da sintaxe CREATE TABLE … AS SELECT se você usar o AWS Glue como seu catálogo remoto.
Para criar esquemas em um banco de dados vinculado a catálogo, esteja ciente do seguinte:
O comando CREATE SCHEMA cria um namespace correspondente no seu catálogo remoto somente quando você usa um banco de dados vinculado a catálogo.
As opções ALTER e CLONE não são aceitas.
Delimitadores não são aceitos para nomes de esquema. Somente nomes de esquema alfanuméricos são aceitos.
Você pode definir um tamanho de arquivo de destino para os arquivos Parquet de uma tabela. Para obter mais informações, consulte Definir um tamanho de arquivo de destino.
Acesso de clientes terceiros aos dados e metadados do Iceberg
Clientes de terceiros não podem anexar, excluir ou atualizar dados em tabelas Iceberg que usam o Snowflake como catálogo.
Recursos não compatíveis
Os seguintes recursos do Snowflake não são aceitos atualmente para todas as tabelas Iceberg:
Listagens que permitem o Preenchimento automático entre nuvens
Replicação de de tabelas Iceberg, volumes externos ou integrações de catálogo.
Criptografia do Snowflake
Uso de tags usando o procedimento armazenado ASSOCIATE_SEMANTIC_CATEGORY_TAGS
Os seguintes recursos não são aceitos para tabelas Iceberg gerenciadas externamente:
Fluxos padrão e apenas para anexação. Fluxos apenas de inserção são aceitos.