Usar tabelas Apache Iceberg™ com o Snowflake Open Catalog no Snowflake

Use tabelas Apache Iceberg™ no Snowflake para trabalhar com o Snowflake Open Catalog.

O que é Snowflake Open Catalog ?

Open Catalog é uma implementação de catálogo para o Iceberg construída no protocolo Apache Iceberg REST de código aberto. Para saber mais, consulte a documentação do Snowflake Open Catalog.

O Snowflake oferece suporte às seguintes opções para trabalhar com o Open Catalog:

Considerações

Ao usar o Snowflake com o Open Catalog, observe as seguintes considerações:

Armazenamento

Configuração para sincronização de tabelas Iceberg gerenciadas pelo Snowflake

Acesso à tabela

  • As tabelas Iceberg gerenciadas pelo Snowflake que você sincroniza com o Open Catalog são somente leitura no Open Catalog.

  • O Snowflake pode consultar, mas não pode gravar em tabelas gerenciadas pelo Open Catalog.

Diferenças terminológicas

Esta seção resume as principais diferenças terminológicas entre o Snowflake e o Open Catalog.

Termo do Snowflake

Termo do Open Catalog

Banco de dados

O Open Catalog usa os catálogos, que são como bancos de dados no Snowflake. No Open Catalog, você cria um ou mais recursos de catálogo para organizar as tabelas Iceberg em namespaces. Para obter mais informações, consulte p Catalog na documentação do Open Catalog.

Ao sincronizar uma tabela gerenciada pelo Snowflake com o Open Catalog, o Snowflake sincroniza a tabela com o catálogo associado à integração de catálogo da tabela usando dois namespaces pai. Os namespaces correspondem ao banco de dados e ao esquema da tabela no Snowflake. Por exemplo, se você tiver uma tabela Iceberg db1.public.table1 registrada no Snowflake e especificar catalog1 na integração do catálogo, ela será sincronizada com o Open Catalog com o seguinte nome totalmente qualificado: catalog1.db1.public.table1.

Esquema

No Open Catalog, os conceitos de esquema e namespace são sinônimos e podem ser usados de forma intercambiável.

Namespace é exibido na interface de usuário do Open Catalog. O Open Catalog usa namespaces para manter uma coleção de objetos e o termo _namespace_ é usado principalmente na documentação do Open Catalog. Para obter mais informações sobre namespaces, consulte Namespace.

No entanto, se estiver usando um mecanismo de consulta de terceiros, como o Apache Spark, e executar o comando CREATE SCHEMA ou CREATE DATABASE, você criará um namespace no Open Catalog. Você também pode executar o comando CREATE NAMESPACE para criar um namespace.

Namespace

Como o Snowflake, o Open Catalog também usa namespaces, mas com diferenças importantes em relação à forma como o Snowflake usa namespaces.

Um catálogo no Open Catalog compreende namespaces de nível superior, definidos pelo usuário, juntamente com qualquer número de namespaces aninhados abaixo deles, também definidos pelo usuário.

Os namespaces aninhados permitem que você registre tabelas com o mesmo nome dentro do mesmo catálogo. Por exemplo, um catálogo chamado customers pode conter as seguintes tabelas customerdata, que são agrupadas em um namespace de nível superior <region> e um namespace aninhado <state>:

  • customers.northeast.maine.customerdata

  • customers.northeast.vermont.customerdata

Além disso, no Open Catalog, é possível agrupar tabelas em qualquer namespace na hierarquia de namespaces, inclusive namespaces de nível superior.

Para obter mais informações sobre namespaces, incluindo um diagrama conceitual de um exemplo de estrutura Open Catalog, consulte os conceitos-chave do Open Catalog.

Função

No Open Catalog, as funções de entidade são como funções no Snowflake, mas com diferenças importantes. Você não concede privilégios a uma função de entidade. Em vez disso, o usuário concede privilégios a uma função de catálogo, que é então concedida a uma função de entidade e, em seguida, concede à função de entidade a uma entidade de serviço, concedendo assim os privilégios à entidade de serviço. Além disso, você não pode atribuir funções de entidade a outras funções de entidade. Você só pode conceder uma função de entidade a uma entidade de serviço.

É possível usar uma função de entidade para agrupar logicamente as entidades de serviço. O escopo de uma função de entidade abrange todos os catálogos. Além disso, não há diferentes tipos de funções de entidade. Para obter mais informações, consulte Função de entidade na documentação do Open Catalog.

Função de banco de dados

O Open Catalog usa as funções de catálogo, que são como funções de banco de dados no Snowflake. As funções de catálogo especificam um conjunto de permissões para ações em um catálogo ou objetos no catálogo. O escopo de uma função de catálogo é o catálogo em que ela é criada.

No Open Catalog, você concede privilégios às funções de catálogo. Em seguida, você concede funções de catálogo a funções de entidade e, em seguida, concede funções de entidade a diretores de serviço, o que concede acesso aos recursos. É possível conceder várias funções de catálogo a uma função de entidade, mas somente uma função de entidade a uma entidade de serviço. Para obter mais informações, consulte Função de catálogo na documentação do Open Catalog.

Usuário

No contexto de controle de acesso, não existe o conceito de usuário no Open Catalog.

No Open Catalog, os privilégios são concedidos às entidades de serviço, não aos usuários. Os mecanismos de consulta usam princípios de serviço para se conectar aos catálogos. Para obter mais informações, consulte Entidade de serviço na documentação do Open Catalog.