Configuração de uma integração de catálogo para Snowflake Postgres¶
Integrar o catálogo Snowflake Postgres permite que o Snowflake acesse tabelas Apache Iceberg™ gerenciadas por uma instância do Snowflake Postgres. Ao criar uma integração de catálogo para o Snowflake Postgres, o Snowflake descobre automaticamente tabelas em seus bancos de dados Postgres e as disponibiliza como tabelas Iceberg somente para leitura.
As integrações de catálogo do Snowflake Postgres usam credenciais fornecidas para acessar dados e metadados de sua tabela no armazenamento em nuvem. Você não precisa configurar um volume externo nem gerenciar as credenciais de armazenamento separadamente.
Nota
Atualmente, as integrações do catálogo Snowflake Postgres são suportadas em apenas na AWS.
Pré-requisitos¶
Uma conta Snowflake com o recurso Snowflake Postgres ativado.
Uma instância do Postgres com estado READY. Para criar uma instância do Postgres, consulte CREATEPOSTGRESINSTANCE.
A função que cria a integração de catálogo deve ter os seguintes privilégios:
USAGEna instância do Postgres.CREATE INTEGRATIONna conta.
Considerações¶
Considere o seguinte ao usar uma integração do catálogo Snowflake Postgres:
As integrações do catálogo Snowflake Postgres sempre usam credenciais fornecidas. Você deve definir
ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS. O modoEXTERNAL_VOLUME_CREDENTIALSé incompatível.Você não precisa especificar
REST_AUTHENTICATION. O Snowflake manipula automaticamente a autenticação com a instância do Postgres.A atualização automática usa sondagem de metadados. Notificações de alteração são incompatíveis.
As tabelas são somente leitura. Operações de gravação em tabelas Iceberg gerenciadas pelo Postgres são incompatíveis.
Este recurso é incompatível com instâncias do Postgres que aceitam intermitência.
Esse recurso é compatível apenas com a AWS.
Criação de integração de catálogo para Snowflake Postgres¶
Para criar uma integração de catálogo para o Snowflake Postgres, use o comando CREATECATALOGINTEGRATION(Snowflake Postgres).
Por exemplo:
Para obter a referência completa da sintaxe e dos parâmetros, consulte CREATECATALOGINTEGRATION(Snowflake Postgres).
Criação de uma tabela Iceberg¶
Depois da integração do catálogo, você pode criar tabelas Iceberg que fazem referência às tabelas em sua instância do Postgres. Ao criar uma tabela Iceberg com uma integração de catálogo Snowflake Postgres, você especifica a integração de catálogo e o nome da tabela conforme está no banco de dados Postgres.
Por exemplo:
Onde:
CATALOG = '<catalog_integration_name>': especifica o nome da integração de catálogo. Obrigatório.CATALOG_TABLE_NAME = '<table_name>': especifica o nome da tabela conforme está no banco de dados Postgres. Obrigatório.CATALOG_NAMESPACE = '<schema_name>': (opcional) especifica o esquema Postgres em que a tabela está. O padrão é o valorCATALOG_NAMESPACEdefinido na integração do catálogo.CATALOG_NAME = '<database_name>': (opcional) especifica o banco de dados Postgres em que a tabela está. O padrão é o valorCATALOG_NAMEdefinido na integração do catálogo.AUTO_REFRESH = TRUE: (opcional) habilita a atualização automática de metadados. Quando ativado, o Snowflake pesquisa periodicamente o catálogo em busca de alterações de metadados e atualiza a tabela de forma automática.
Nota
Você não precisa especificar um EXTERNAL_VOLUME ao criar uma tabela Iceberg com uma integração de catálogo Snowflake Postgres.
Criar um banco de dados vinculado a catálogo¶
Em vez de criar tabelas Iceberg individuais, você pode criar um banco de dados vinculado a catálogo que descobre e sincroniza automaticamente tabelas de seu banco de dados Postgres. Um banco de dados vinculado a catálogo cria esquemas correspondentes e tabelas Iceberg no Snowflake que continuam sincronizados com seu banco de dados Postgres.
Por exemplo:
Onde:
CATALOG = <catalog_integration_name>: especifica o nome da integração do catálogo Snowflake Postgres. Obrigatório. O banco de dados vinculado a catálogo sincroniza o banco de dados Postgres especificado pelo valorCATALOG_NAMEna integração do catálogo.ALLOWED_WRITE_OPERATIONS = NONE: necessário para bancos de dados vinculados a catálogos Snowflake Postgres. As tabelas Snowflake Postgres são somente leitura.
Após criar o banco de dados vinculado a catálogo, o Snowflake descobre automaticamente os namespaces e tabelas do banco de dados Postgres e gera os esquemas e tabelas Iceberg correspondentes. Para obter mais informações, consulte Usar um banco de dados vinculado a catálogo para tabelas Apache Iceberg™.
Consulta a tabelas Iceberg¶
Depois de criar uma tabela Iceberg ou um banco de dados vinculado a catálogo, você pode consultar as tabelas usando o padrão SQL:
Controle de acesso¶
A função de proprietário da integração de catálogo deve ter o privilégio USAGE na instância do Postgres. O Snowflake verifica esse privilégio quando você cria a integração de catálogo.
Qualquer função que tenha USAGE na integração do catálogo pode criar tabelas Iceberg que fazem referência a tabelas na instância do Postgres. Não são necessárias outras concessões na instância do Postgres. A função também precisa dos privilégios padrão do Snowflake para criar tabelas no banco de dados e esquema de destino.
Por exemplo, para conceder a outra função a capacidade de criar tabelas Iceberg usando a integração de catálogo: