Consultar uma tabela no Snowflake Open Catalog usando o Snowflake

Para consultar uma tabela registrada no Snowflake Open Catalog usando o Snowflake, você pode criar uma tabela Apache Iceberg™ que usa um catálogo externo.

A tabela representa a tabela Iceberg no Snowflake Open Catalog e fornece acesso somente leitura.

Pré-requisitos

Antes de começar, você precisa do seguinte:

  • Uma tabela Iceberg registrada com Open Catalog.

  • Uma conexão de serviço que o Snowflake pode usar para se conectar ao Open Catalog. Você pode usar uma conexão de serviço existente para a qual definiu funções e privilégios ou Configurar uma conexão de serviço para o Snowflake. Se você configurar uma nova conexão de serviço, também deverá configurar o controle de acesso para ela.

Etapa 1: criar um volume externo no Snowflake

Se você ainda não tiver um, comece criando um volume externo no Snowflake que forneça acesso ao local de armazenamento em nuvem onde você armazena os dados da tabela e os metadados.

Siga as instruções para o seu serviço de armazenamento em nuvem:

Etapa 2: criar uma integração de catálogo para o Open Catalog

Em seguida, use o comando CREATE CATALOG INTEGRATION para criar uma integração de catálogo no Snowflake que use OAuth para se conectar ao Open Catalog usando suas credenciais de conexão de serviço.

CREATE OR REPLACE CATALOG INTEGRATION open_catalog_int
  CATALOG_SOURCE = POLARIS
  TABLE_FORMAT = ICEBERG
  CATALOG_NAMESPACE= 'myOpenCatalogNamespace'
  REST_CONFIG = (
    CATALOG_URI ='https://my_account.snowflakecomputing.com/polaris/api/catalog'
    WAREHOUSE = 'myOpenCatalogName'
  )
  REST_AUTHENTICATION = (
    TYPE = OAUTH
    OAUTH_CLIENT_ID = 'my-client-id'
    OAUTH_CLIENT_SECRET = 'my-client-secret'
    OAUTH_ALLOWED_SCOPES = ( 'PRINCIPAL_ROLE:ALL' )
  )
  ENABLED = TRUE;
Copy

Etapa 3: criar uma tabela gerenciada externamente

Crie uma tabela Iceberg no Snowflake usando o volume externo e a integração de catálogo que você configurou anteriormente.

Para CATALOG_TABLE_NAME, especifique o nome da tabela como ele aparece no Open Catalog.

CREATE ICEBERG TABLE open_catalog_iceberg_table
  CATALOG = 'open_catalog_int'
  EXTERNAL_VOLUME = 'my_external_volume'
  CATALOG_TABLE_NAME = 'my_iceberg_table';
Copy

Opcionalmente, você pode habilitar atualizações automatizadas dos metadados da tabela especificando AUTO_REFRESH = TRUE. Para obter mais informações, consulte Atualizar tabelas Apache Iceberg™ automaticamente.

Nota

Para recuperar uma lista de tabelas ou namespaces em seu catálogo remoto, é possível usar as seguintes funções:

Etapa 4: consulte a tabela usando o Snowflake

Agora você pode usar o Snowflake para consultar a tabela no Open Catalog. Você também pode unir os resultados da consulta com outras tabelas do Snowflake.

SELECT id, date
  FROM open_catalog_iceberg_table
  LIMIT 10;
Copy