ALTER ICEBERG TABLE … CONVERT TO MANAGED¶
Converte uma tabela Apache Iceberg™ que usa um catálogo Iceberg externo em uma tabela que usa o Snowflake como catálogo (uma tabela Iceberg gerenciada pelo Snowflake).
A tabela convertida oferece suporte a operações de leitura e gravação, e o Snowflake cuida de toda a manutenção do ciclo de vida, como compactação, da tabela. Para obter mais informações, consulte Antes e depois da conversão da tabela.
- Consulte também:
CREATE ICEBERG TABLE , DROP ICEBERG TABLE , SHOW ICEBERG TABLES , DESCRIBE ICEBERG TABLE
Sintaxe¶
ALTER ICEBERG TABLE [ IF EXISTS ] <table_name> CONVERT TO MANAGED
[ BASE_LOCATION = '<directory_for_table_files>' ]
[ STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED } ]
Parâmetros¶
table_name
Identificador da tabela a ser convertida.
Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.
Para obter mais informações, consulte Requisitos para identificadores.
[ BASE_LOCATION = 'directory_for_table_files' ]
O caminho para um diretório onde o Snowflake pode gravar dados e arquivos de metadados para a tabela. Especifique um caminho relativo da localização da tabela
EXTERNAL_VOLUME
. Para obter mais informações, consulte Diretórios de dados e metadados.Você deverá especificar um valor para essa propriedade se a instrução CREATE ICEBERG TABLE original não permitisse ou incluísse um
BASE_LOCATION
.Este diretório não pode ser alterado após a conversão de uma tabela.
STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED }
Especifica a política de serialização de armazenamento para a tabela. Se não for especificado durante a conversão, a tabela herdará o valor definido no nível do esquema, do banco de dados ou da conta. Se o valor não for especificado em nenhum nível, a tabela usará o valor padrão.
Você não pode alterar o valor deste parâmetro depois de converter uma tabela.
COMPATIBLE
: o Snowflake realiza codificação e compactação que garantem a interoperabilidade com mecanismos de computação de terceiros.OPTIMIZED
: o Snowflake realiza a codificação e a compactação que garantem o melhor desempenho de tabela dentro do Snowflake.
Padrão:
OPTIMIZED
Requisitos de controle de acesso¶
Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:
Privilégio |
Objeto |
Notas |
---|---|---|
OWNERSHIP |
Tabela Iceberg |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
USAGE |
Volume externo |
|
USAGE |
Integração de catálogo |
Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso¶
Somente o proprietário da tabela (ou seja, a função com o privilégio OWNERSHIP na tabela) ou superior pode executar este comando.
Em relação aos metadados:
Atenção
Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.
Exemplos¶
O exemplo a seguir usa a instrução ALTER ICEBERG TABLE … CONVERT TO MANAGED para converter uma tabela que não é gerenciada pelo Snowflake em uma tabela que usa o Snowflake como catálogo Iceberg.
ALTER ICEBERG TABLE myTable CONVERT TO MANAGED
BASE_LOCATION = 'my/relative/path/from/external_volume';