Sobre o gerenciamento de listagens usando SQL¶
Os provedores podem usar listagens para compartilhar produtos de dados com contas em qualquer região do Snowflake. Para saber mais sobre listagens, consulte Sobre as listagens.
Os provedores podem usar comandos SQL para criar e gerenciar listagens e oferecê-las a consumidores específicos. Para compartilhar uma listagem usando SQL, os provedores concluem as seguintes tarefas:
(Opcional) Crie um perfil de provedor para oferecer listagens. Consulte Sobre provedores de listagem.
Nota
Os provedores não podem oferecer listagens pagas e personalizadas, nem listagens em trocas de dados privados.
Pré-requisitos para trabalhar com listagens usando SQL¶
Avaliação e aceitação dos Termos de serviço do provedor e do consumidor do Snowflake.
Preparar os dados para sua listagem. Consulte Como preparar dados para uma listagem.
Revisar as Políticas do provedor.
Configurar os privilégios de conta.
Funções de proprietário de listagem e aplicativo¶
Quando você cria uma listagem, você a cria a partir da conta que tem os dados ou pacote de aplicativo nela contidos. A função que anexa um produto de dados a uma listagem e publica a listagem deve ser a mesma que criou e, portanto, possui o pacote de aplicativo ou compartilhamento. Você não pode transferir o privilégio OWNERSHIP para um compartilhamento.
Se você usar uma função diferente para criar e gerenciar a listagem, conceda o privilégio MODIFY na listagem à função que possui o pacote de aplicativo ou compartilhamento. Por exemplo:
- Função de proprietário de compartilhamento ou pacote de aplicativo:
Privilégio OWNERSHIP no pacote de aplicativo ou compartilhamento. Privilégio MODIFY na listagem.
- Função de proprietário da listagem:
Privilégio OWNERSHIP na listagem.
Privilégio global CREATE DATA EXCHANGE LISTING.
Na conta do provedor, você pode usar um dos seguintes itens para criar e gerenciar listagens:
- ACCOUNTADMIN:
Se você usar a função ACCOUNTADMIN para criar e gerenciar listagens, a função ORGADMIN deverá primeiro delegar privilégios para configurar o preenchimento automático.
- Função personalizada:
Se você usar uma função personalizada, a função ORGADMIN deverá primeiro delegar privilégios para configurar o preenchimento automático à função ACCOUNTADMIN, que poderá então ser usada para conceder os privilégios relevantes à função personalizada.
Para obter mais informações sobre a concessão de privilégios de compartilhamento, consulte Concessão de privilégios a outras funções.
Definição de um manifesto de listagem¶
Para criar uma listagem, primeiro você deve criar um manifesto de listagem. Os manifestos são escritos em YAML (https://yaml.org/spec/) e incluem um prefixo e campos obrigatórios e opcionais.
Por exemplo, para criar uma listagem com título simples e termos de listagem, defina um manifesto semelhante a:
title: A title for the listing.
subtitle: An optional subtitle.
description: A general description.
profile: Provider profile reference.
listing_terms: ...
targets: ...
Cada manifesto inclui seções adicionais, como:
auto_fulfillment: ...
E uma série de campos opcionais, como data_dictionary
, business_needs
e muito mais.
Um manifesto simples incluiria:
title: "MyFirstListing"
subtitle: "Example listing"
description: "This is my first listing!"
listing_terms:
type: "OFFLINE"
targets:
accounts: ["Org1.Account1"]
Para obter mais informações, consulte Listagem de referência de manifesto.
Para obter exemplos adicionais e casos de uso associados ao gerenciamento de listagens usando SQL, consulte Gerenciamento de listagens com SQL como um provedor – Exemplos.
Criação de uma listagem usando SQL¶
Para criar uma listagem, use o comando CREATE LISTING, especificando um nome e os detalhes da listagem em linha em um manifesto YAML que descreva a listagem. Listagens criadas usando CREATE LISTING … são publicadas automaticamente. Depois que uma listagem for criada, você pode alterá-la usando ALTER LISTING, que inclui suporte à publicação e cancelamento de publicação.
Observe que, ao contrário do Snowsight, ao criar uma listagem usando SQL o compartilhamento associado já deve existir.
Além disso, as listagens podem ser descritas, exibidas, publicadas e não publicadas e descartadas.
Nota
A criação de uma listagem usando SQL é conceitualmente similar a Compartilhamento de dados ou aplicativos com consumidores específicos usando uma listagem privada. Você deve estar familiarizado e confortável com a criação, exibição e publicação de listagens usando o Snowsight e Provider Studio antes de criar listagens usando SQL. Para obter mais informações, consulte Compartilhamento de dados ou aplicativos com consumidores específicos usando uma listagem privada.
Antes de criar sua listagem, certifique-se de ter concluído todos os pré-requisitos.
Por exemplo, se você deseja criar uma listagem DRAFT my1stlisting
do compartilhamento myshare
com o título “Minha primeira listagem SQL”, execute o seguinte comando:
CREATE EXTERNAL LISTING my1stlisting
SHARE myshare AS
$$
title: "My first SQL listing"
description: "This is my first listing"
listing_terms:
type: "OFFLINE"
targets:
accounts: ["Org1.Account1"]
$$ PUBLISH=FALSE REVIEW=FALSE;
Nota
As listagens são identificadas usando o NAME da listagem. Um NAME de listagem é o identificador usado ao criar a listagem. No exemplo acima, o nome da listagem é MY1STLISTING. Embora o título, o subtítulo e outras características da listagem possam ser alterados, o NAME não pode ser mudado especificando um novo nome em YAML. Use ALTER LISTING … RENAME TO para renomear uma listagem. Todos os comandos, como ALTER LISTING, SHOW LISTINGS, DESCRIBE LISTING e DROP LISTING, usam NAME para identificar uma listagem. O NAME da listagem não é mostrado no Snowsight, que identifica listagens por título.
Para obter exemplos adicionais e casos de uso associados ao gerenciamento de listagens usando SQL, consulte Gerenciamento de listagens com SQL como um provedor – Exemplos.
Publicação de uma listagem usando SQL¶
Você pode publicar e cancelar a publicação de listagens usando ALTER LISTING … PUBLISH e ALTER LISTING … UNPUBLISH.
Para obter mais informações sobre a publicação de listagens usando o Snowsight, consulte Publicação de uma listagem.
Observe que as listagens podem ser publicadas automaticamente quando criadas usando CREATE LISTING.
Por exemplo, para publicar uma listagem não publicada anteriormente, execute o seguinte comando:
ALTER LISTING MY1STLISTING PUBLISH;
Além disso, para que uma listagem possa ser descartada, sua publicação deve ser cancelada. Para cancelar a publicação de uma listagem publicada, execute um comando semelhante a:
ALTER LISTING MY1STLISTING UNPUBLISH;
Para obter exemplos adicionais e casos de uso associados ao gerenciamento de listagens usando SQL, consulte Gerenciamento de listagens com SQL como um provedor – Exemplos.
Expansão da definição de uma listagem usando SQL¶
O exemplo anterior não incluiu metas ou exemplos de uso. Você pode usar ALTER LISTING para alterar as características de uma listagem. Neste exemplo, atualizamos uma listagem existente para adicionar metas e exemplo SQL. Observe que o manifesto YAML original é estendido para incluir novo conteúdo.
Para alterar uma listagem e incluir campos adicionais, execute um comando semelhante a:
ALTER LISTING MY1STLISTING AS
$$
title: "My First SQL Listing"
description: "This is my first listing"
listing_terms:
type: "OFFLINE"
targets:
accounts: ["Org1.Account1"]
usage_examples:
- title: "this is a test sql"
description: "Simple example"
query: "select *"
$$;
Para obter exemplos adicionais e casos de uso associados ao gerenciamento de listagens usando SQL, consulte Gerenciamento de listagens com SQL como um provedor – Exemplos.
Examine as listagens usando SQL¶
Assim como tabelas e outros elementos SQL, as listagens podem ser descritas e exibidas. A DESCRIBE LISTING recebe um único nome de listagem como parâmetro e fornece detalhes sobre essa listagem. As SHOW LISTINGS podem fornecer informações sobre um grupo de listagens, usando um filtro LIKE
, ou todas as listagens criadas por uma determinada conta, caso nenhum filtro seja fornecido.
Para mostrar os detalhes da listagem MY1STLISTING, execute um comando semelhante a:
SHOW LISTINGS LIKE 'MY1STLISTING';
Para mostrar todas as listagens às quais sua função tem acesso, execute um comando semelhante a:
SHOW LISTINGS;
Para descrever a listagem MY1STLISTING, execute um comando semelhante a:
DESC LISTING MY1STLISTING;
Descarte de listagens usando SQL¶
Para remover uma listagem, você deve primeiro cancelar a publicação dela. Você deve estar familiarizado com a remoção de listagens usando o Snowsight antes de descartar as listagens usando SQL. Para obter mais informações sobre como remover listagens usando o Snowsight, consulte Remoção de listagens como um provedor.
Para cancelar a publicação de uma listagem, execute um comando semelhante a:
ALTER LISTING MY1STLISTING UNPUBLISH;
Para remover uma listagem, execute um comando semelhante a:
DROP LISTING IF EXISTS MY1STLISTING