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;
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';
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;