CREATE CATALOG INTEGRATION

Nota

Uma integração de catálogo é necessária somente quando você deseja criar uma tabela Iceberg somente leitura com um catálogo externo ou a partir de arquivos de origem no armazenamento de objetos. Você não precisa de uma integração de catálogo para criar uma tabela Iceberg que use Snowflake como catálogo Iceberg. Para usar o Snowflake como seu catálogo, defina o parâmetro CATALOG como SNOWFLAKE no comando CREATE ICEBERG TABLE.

Cria uma nova integração de catálogo para tabelas Iceberg na conta ou substitui uma integração de catálogo existente.

Consulte também:

DROP CATALOG INTEGRATION , SHOW CATALOG INTEGRATIONS, DESCRIBE CATALOG INTEGRATION

Sintaxe

CREATE [ OR REPLACE ] CATALOG INTEGRATION [IF NOT EXISTS]
  <name>
  CATALOG_SOURCE = { GLUE | OBJECT_STORE }
  TABLE_FORMAT = { ICEBERG }
  [ catalogParams ]
  ENABLED = { TRUE | FALSE }
  [ COMMENT = '{string_literal}' ]
Copy

Onde:

catalogParams (for AWS Glue)::=
  GLUE_AWS_ROLE_ARN = '<arn-for-AWS-role-to-assume>'
  GLUE_CATALOG_ID = '<glue-catalog-id>'
  [ GLUE_REGION = '<AWS-region-of-the-glue-catalog>' ]
  CATALOG_NAMESPACE = '<catalog-namespace>'
Copy

Parâmetros obrigatórios

name

Cadeia de caracteres que especifica o identificador (nome) para a integração de catálogo; deve ser única em sua conta.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes, consulte Requisitos para identificadores.

CATALOG_SOURCE = { GLUE | OBJECT_STORE }

Especifica o tipo de origem do catálogo.

AWS Glue

GLUE: cria uma integração entre Snowflake e AWS Glue.

Metadados do iceberg no armazenamento de objetos

OBJECT_STORE: cria uma integração para arquivos de metadados Iceberg em um local de armazenamento em nuvem externo que você associa a um volume externo.

TABLE_FORMAT = { ICEBERG }

Especifica o formato da tabela fornecido pelo catálogo.

ICEBERG: especifica tabelas Glue Iceberg ou tabelas Iceberg de metadados em um local de armazenamento em nuvem externo.

ENABLED = { TRUE | FALSE }

Especifica se a integração do catálogo está disponível para uso em tabelas Iceberg.

  • TRUE permite que os usuários criem novas tabelas Iceberg que fazem referência a esta integração. As tabelas Iceberg existentes que fazem referência a esta integração funcionam normalmente.

  • FALSE impede que os usuários criem novas tabelas Iceberg que referenciem esta integração. As tabelas Iceberg existentes que fazem referência a esta integração não podem acessar o catálogo na definição da tabela.

Parâmetros de catálogo (catalogParams)

AWS Glue

Importante

Ao criar uma integração de catálogo para o AWS Glue, você deve concluir etapas adicionais para estabelecer uma relação de confiança entre o Snowflake e o catálogo de dados do Glue. Para obter mais detalhes, consulte Configuração de uma integração de catálogo para tabelas Iceberg.

GLUE_AWS_ROLE_ARN = 'arn-for-AWS-role-to-assume'

Especifica o Amazon Resource Name (ARN) da função do AWS Identity and Access Management (IAM) a ser assumida.

GLUE_CATALOG_ID = 'glue-catalog-id'

Especifica o ID da sua conta AWS.

[ GLUE_REGION = 'AWS-region-of-the-glue-catalog' ]

Especifica a região AWS do catálogo de dados do AWS Glue. Você deverá especificar um valor para esse parâmetro se sua conta Snowflake não estiver hospedada em AWS. Caso contrário, a região padrão será a região de implantação do Snowflake da conta.

CATALOG_NAMESPACE = 'catalog-namespace'

Especifica seu namespace do catálogo de dados do AWS Glue (por exemplo, my_glue_database). Este é o namespace padrão para todas as tabelas Iceberg associadas a esta integração de catálogo. Você pode substituir esse valor especificando o namespace no nível da tabela ao criar uma tabela.

Parâmetros opcionais

COMMENT = 'string_literal'

Cadeia de caracteres (literal) que especifica um comentário da integração.

Padrão: sem valor

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

CREATE INTEGRATION

Conta

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

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

  • Não é possível modificar uma integração de catálogo existente; use uma instrução CREATE OR REPLACE CATALOG INTEGRATION.

  • 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.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

Exemplos

AWS Glue

O exemplo a seguir cria uma integração de catálogo que usa uma fonte de catálogo do AWS Glue. Ao criar uma integração de catálogo para o Glue, você deve concluir etapas adicionais para estabelecer uma relação de confiança entre o Snowflake e o catálogo de dados do Glue. Para obter mais detalhes, consulte Configuração de uma integração de catálogo para tabelas Iceberg.

CREATE CATALOG INTEGRATION glueCatalogInt
  CATALOG_SOURCE=GLUE
  CATALOG_NAMESPACE='my.catalogdb'
  TABLE_FORMAT=ICEBERG
  GLUE_AWS_ROLE_ARN='<arn-for-aws-role-to-assume>'
  GLUE_CATALOG_ID='<catalog-id>'
  GLUE_REGION='<optional-aws-region-of-the-glue-catalog>'
  ENABLED=TRUE;
Copy

Metadados do iceberg no armazenamento de objetos

O exemplo a seguir cria uma integração que usa metadados Iceberg em armazenamento externo em nuvem. OBJECT_STORE corresponde ao armazenamento de objetos associado a um volume externo.

CREATE CATALOG INTEGRATION myCatalogInt
  CATALOG_SOURCE=OBJECT_STORE
  TABLE_FORMAT=ICEBERG
  ENABLED=TRUE;
Copy