- Categorias:
Funções do sistema (Controle do sistema)
SYSTEM$SET_CATALOG_INTEGRATION¶
Substitui a integração de catálogo associada a uma tabela Apache Iceberg™ gerenciada externamente.
Use esta função para atualizar uma tabela para funcionar com uma integração de catálogo Iceberg REST, que oferece suporte a uma variedade mais ampla de recursos do Iceberg, como suporte à gravação para tabelas Iceberg gerenciadas externamente. Você também pode usar esta função para reverter para a integração de catálogo Glue original, se necessário.
Você também pode usar essa função para migrar sua tabela de uma integração de catálogo Iceberg REST para outra.
Sintaxe¶
SYSTEM$SET_CATALOG_INTEGRATION(
'<table_name>' ,
'<new_catalog_integration_name>'
)
Argumentos¶
'table_name'Nome da tabela Iceberg cuja integração de catálogo você deseja substituir.
'new_catalog_integration_name'Nome da integração de catálogo para a qual você deseja migrar o
table_namefornecido.
Retornos¶
A função retorna uma mensagem de status informando que a integração de catálogo para a tabela foi migrada com sucesso. Para obter um exemplo, consulte Exemplos.
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
Privilégio |
Objeto |
|---|---|
OWNERSHIP |
Tabela cuja integração de catálogo está sendo substituída. |
USAGE |
Integração de catálogo atual. |
USAGE |
Integração de catálogo de destino. |
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema. Observe que uma função com privilégio concedido em um esquema permite que essa função resolva o esquema. Por exemplo, uma função com privilégio CREATE concedido em um esquema pode criar objetos nesse esquema sem também ter USAGE concedido nesse esquema.
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¶
Você só pode substituir a integração de catálogo para tabelas Iceberg gerenciadas externamente em um banco de dados Snowflake padrão. Você não pode substituir a integração de catálogo para tabelas Iceberg em um banco de dados vinculado a catálogo ou substituir a integração de catálogo para qualquer outro tipo de tabela Iceberg.
O tipo de integração de catálogo atual associado à tabela restringe os tipos de integrações de catálogo que você pode usar como substituição. A tabela a seguir lista as transições compatíveis quando você substitui um tipo de integração de catálogo por outro:
Tipo de integração de catálogo atual
Novo tipo de integração de catálogo
Notas
AWS Glue Iceberg REST
AWS Glue
Retorne para uma integração de catálogo que use uma fonte de catálogo Glue AWS.
Iceberg REST
Migre a tabela para uma integração de catálogo alternativa.
Nenhuma outra combinação de transição é aceita.
table_nameenew_catalog_integration_namesão literais de cadeia de caracteres; portanto, você deve incluir os valores entre aspas simples.As integrações de catálogo atual e de destino devem apontar para o mesmo catálogo externo.
As integrações de catálogo atual e de destino não podem ter o fornecimento de credenciais ativado.
Exemplos¶
Substitua a integração de catálogo do AWS Glue associada a uma tabela Iceberg denominada glue_table por uma integração de catálogo do AWS Glue Iceberg REST denominada glue_rest_catalog_int:
SELECT SYSTEM$SET_CATALOG_INTEGRATION('glue_table', 'glue_rest_catalog_int');
Exemplo de saída:
+------------------------------------------------------------------------------------------------------------------------------+
| SYSTEM$SET_CATALOG_INTEGRATION |
+------------------------------------------------------------------------------------------------------------------------------+
| Catalog integration for table GLUE_TABLE has been migrated from 'GLUE_CATALOG_INTEGRATION' to 'GLUE_REST_CATALOG_INT' |
+------------------------------------------------------------------------------------------------------------------------------+
Solução de problemas¶
Se a função falhar, ela retornará uma resposta de erro. As mensagens de erro comuns incluem:
Mensagem de erro |
Situação e solução |
|---|---|
SYSTEM$SET_CATALOG_INTEGRATION não oferece suporte à transição da integração de catálogo “[CURRENT_CATALOG_INTEGRATION]” para “[TARGET_CATALOG_INTEGRATION]” devido à combinação de tipos não aceita. |
A integração de catálogo atual ou de destino fornecida não corresponde aos tipos de integração de catálogo aceitos. Para conhecer os tipos aceitos, consulte as notas de uso. |
SYSTEM$SET_CATALOG_INTEGRATION não pode fazer a transição de “[CURRENT_CATALOG_INTEGRATION]” para “[TARGET_CATALOG_INTEGRATION]” devido a configurações de integração de catálogo incompatíveis. |
As integrações de catálogo fornecidas são do tipo aceito, mas não se alinham com uma das combinações de transição aceitas. Para as combinações de transição aceitas, consulte as notas de uso. |
Atualmente, não há suporte para a execução de transição quando a integração de catálogo “[CATALOG_INTEGRATION]” tem o fornecimento de credenciais ativado. |
A integração de catálogo fornecida tem o fornecimento de credenciais ativado. Forneça uma integração de catálogo com o fornecimento de credenciais desativado e tente novamente. |
SYSTEM$SET_CATALOG_INTEGRATION só pode ser usado em tabelas Iceberg não gerenciadas. |
A tabela fornecida não é uma tabela Iceberg gerenciada externamente. Forneça uma tabela Iceberg gerenciada externamente e tente de novo. |