Preparação de dados para uma listagem

Este tópico contém orientações para a preparação da criação de uma listagem, incluindo como preparar um produto de dados para diferentes tipos de listagens.

Neste tópico:

Preparação para criar uma listagem

Antes de criar uma listagem, faça o seguinte:

  1. Decida como oferecer seu produto de dados. Consulte Opções de disponibilidade da listagem e Opções de acesso à listagem.

  2. Configure as funções e privilégios para simplificar a criação de listagens. Consulte Configuração de funções e privilégios para listagens.

  3. Identifique os objetos que você deseja compartilhar. Consulte Decisão sobre o que colocar em uma listagem.

  4. Prepare os objetos para serem compartilhados com outras pessoas. Consulte Preparação dos compartilhamentos para sua listagem.

  5. Determine como você deseja gerenciar o acesso ao seu produto de dados:

  6. Escolha em qual(is) região(ões) de nuvem você deseja oferecer sua listagem. Consulte Preparação de sua listagem para compartilhamento com outras regiões.

A listagem e o compartilhamento de dados devem estar em conformidade com as Políticas do provedor do Snowflake.

Configuração de funções e privilégios para listagens

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.

Alguns privilégios só podem ser concedidos usando Snowsight, enquanto outros podem ser concedidos usando SQL ou Snowsight.

Tarefa

Privilégios obrigatórios

Conceder usando

Criação de um perfil de provedor

Privilégio global CREATE DATA EXCHANGE LISTING.

SQL ou Snowsight

Gerenciamento ou atualização de um perfil de provedor

O privilégio OWNERSHIP ou MODIFY no perfil.

Snowsight

Modificação das capacidades e propriedades da listagem

O privilégio OWNERSHIP ou MODIFY na listagem.

Snowsight

Ver uma listagem

O privilégio OWNERSHIP, MODIFY ou USAGE na listagem.

Snowsight

Anexar um compartilhamento a uma listagem

OWNERSHIP do compartilhamento e privilégios de OWNERSHIP ou MODIFY na listagem.

Snowsight

Configuração do preenchimento automático para uma listagem

O privilégio MANAGE LISTING AUTO FULFILLMENT no nível de conta concedido por um ACCOUNTADMIN com privilégios delegados e OWNERSHIP ou privilégios MODIFY na listagem.

SQL

Atendimento a uma solicitação de listagem

Privilégios OWNERSHIP ou MODIFY sobre a listagem.

Snowsight

Para obter mais informações sobre a concessão de privilégios de compartilhamento, consulte Concessão de privilégios a outras funções.

Decisão sobre o que colocar em uma listagem

Enquanto você se prepara para compartilhar dados de sua conta com uma listagem, decida o que colocar na listagem.

Primeiro, certifique-se de que os dados que você deseja compartilhar estejam no Snowflake, e que você tem os direitos legais e contratuais para compartilhar os dados. Se necessário, carregue os dados que você deseja compartilhar no Snowflake. Consulte Visão geral do carregamento de dados.

Nota

Na medida em que quaisquer dados em sua listagem ou conjunto de dados sejam regidos por quaisquer leis ou obrigações contratuais, você deve assegurar-se de que tem os direitos legais e contratuais de compartilhar tais dados. Por exemplo, você só pode compartilhar informações de saúde protegidas (PHI) através de uma listagem personalizada e, para isso, você precisa: (1) ter assinado um contrato de associação comercial (BAA) com a Snowflake e o Consumidor que recebe as PHI e; (2) garantir que o Consumidor também tenha assinado um BAA com a Snowflake. Além disso, embora você possa compartilhar dados pessoais pela listagem gratuita ou personalizada, para fazê-lo você deve ter os direitos legais e contratuais aplicáveis se os dados não estiverem disponíveis publicamente.

Em seguida, decida como oferecer os dados que você tem como uma listagem. Se você planeja oferecer listagens no Snowflake Marketplace ou apenas como listagens privadas diretamente a clientes específicos, você pode tomar decisões diferentes sobre o que colocar na listagem.

  • Considere a disponibilidade de seus dados.

  • Considere os consumidores que você espera que tenham acesso às suas listagens.

  • Considere os formatos dos dados que você seleciona para o compartilhamento, tais como tabela, exibição, exibição segura ou outro objeto de banco de dados.

Por exemplo, se você quiser fornecer listas sobre o tratamento de cães, você pode tomar decisões como as seguintes:

  • Ofereça uma listagem gratuita disponível ao público no Snowflake Marketplace com informações sobre raças de cães e comprimento do pelo.

  • Ofereça uma listagem de avaliação limitada no Snowflake Marketplace com um exemplo de produto de dados que contém dados sobre o tempo necessário para cuidar de um poodle padrão, com a opção para os consumidores solicitarem um produto de dados completo sobre insights de preparação para mais raças de cães.

  • Ofereça uma listagem de avaliação limitada no Snowflake Marketplace com um produto de dados que contém dados sobre o tempo necessário para cuidar de qualquer raça de cachorro, com a opção para os consumidores solicitarem acesso ilimitado ao seu produto de dados.

  • Ofereça uma listagem privada a uma organização parceira com informações sobre o tempo necessário para cuidar de vários cães, e a frequência típica de consultas para diferentes raças de cães.

Neste exemplo, você oferece dados valiosos no Snowflake Marketplace, mas oferece insights mais específicos a uma organização com a qual você já tem uma relação comercial de confiança.

Preparação dos compartilhamentos para sua listagem

Você pode criar um compartilhamento antes de criar uma listagem, ou selecionar o banco de dados, tabelas e exibições para englobar seu produto de dados ao criar a listagem. Consulte Como trabalhar com compartilhamentos.

Se você planeja oferecer muitas listagens, crie os compartilhamentos separadamente das listagens para que você possa gerenciar mais facilmente seus produtos de dados. Você não pode fornecer múltiplas listagens a partir do mesmo compartilhamento.

Como manter os compartilhamentos atualizados

Considere a manutenção dos dados em seu compartilhamento. Com o tempo, talvez seja necessário fazer alterações em seus compartilhamentos de dados à medida que as informações que você deseja fornecer nas listagens mudam.

Você também precisa considerar como manter os dados atualizados nos compartilhamentos, e garantir que o conteúdo do compartilhamento seja útil aos consumidores.

Se os objetos em um compartilhamento forem descartados e posteriormente recriados, será necessário adicionar os objetos recriados ao compartilhamento para que permaneçam disponíveis aos consumidores. Por exemplo, se você atualizar alguns dados na ação, descartando e recriando uma tabela no banco de dados, você precisará atualizar a ação para incluir a tabela recriada.

Preparação dos dados a serem compartilhados

Prepare os dados que você deseja compartilhar em sua listagem para serem compartilhados com outras pessoas.

  • Use identificadores de objetos sem aspas para nomes de tabelas, colunas e compartilhamento. Use somente caracteres maiúsculos e alfanuméricos para nomes de objetos para permitir que os consumidores de listagem utilizem os objetos de dados compartilhados sem a necessidade de duplicar os identificadores entre aspas duplas. Consulte Requisitos para identificadores.

  • Proteja os dados sensíveis em bancos de dados compartilhados. Crie exibições seguras e use objetos seguros para controlar o acesso aos dados. Consulte Uso de objetos seguros para controlar o acesso aos dados

  • Você pode adicionar compartilhamentos que já sejam compartilhados com uma conta de consumidor, como por exemplo, um compartilhamento direto, a uma listagem.

  • Um compartilhamento só pode ser anexado a uma única listagem. Se um compartilhamento já tiver sido anexado a uma listagem, você não pode anexá-lo a outra listagem, mesmo que a listagem tenha sido excluída.

Preparação para oferecer uma listagem de avaliação limitada

Uma listagem de avaliação limitada permite que você ofereça uma amostra do seu produto de dados como uma avaliação gratuita, dando aos consumidores informações sobre o que pode estar disponível em um produto de dados completo, ou acesso por tempo limitado ao seu produto de dados completo. Os consumidores podem então solicitar acesso ilimitado ao produto de dados completo. Consulte Listagens de avaliação limitada para obter mais detalhes.

Se você optar por oferecer uma amostra do seu produto de dados completo, o produto de dados de amostra idealmente fornecerá um subconjunto dos dados reais incluídos no seu produto de dados completo e será representativo do produto de dados completo das seguintes maneiras:

  • Contém as mesmas colunas.

  • Contém intervalos e distribuições de valores iguais ou semelhantes nos dados.

As listagens de avaliação limitada incluem um dicionário de dados, portanto, a forma geral dos dados no produto de dados completo deve ficar clara no produto de dados de amostra que você oferece.

Por exemplo, se você for uma empresa de treinamento e cuidados com cães, considere oferecer um dos seguintes produtos de dados de amostra com uma listagem de avaliação limitada:

Amostra de recomendação de produto de dados

Exemplo de produto de dados de amostra

Exemplo do produto de dados completo

Contém um conjunto de dados completo para um atributo completo específico dos dados.

Contém informações atualizadas sobre a preparação de um Poodle Padrão.

Contém informações atualizadas sobre cuidados com todas as raças de cães.

Contém o conjunto de dados completo para um período específico e desatualizado.

Contém informações sobre cuidados e preços para todas as raças de cães a partir de maio de 2021.

Contém informações atualizadas sobre cuidados e preços para todas as raças de cães.

Contém dados sintéticos representativos do produto de dados completo.

Contém informações e preços atualizados sobre o treinamento da raça fictícia de cães Acadian Hound.

Contém informações e preços atualizados sobre o treinamento de todas as raças de cães.

Oferecer um subconjunto relevante e completo de seu produto de dados completo como produto de dados de amostra para sua listagem de avaliação limitada ajuda os consumidores a compreender o valor de seu produto de dados completo e aumenta a probabilidade de eles solicitarem o produto de dados completo.

Preparação para oferecer uma listagem paga

Se você quiser cobrar por sua listagem, você deve fazer o seguinte:

  1. Determine se você pode oferecer listagens pagas. Consulte Quem pode fornecer listagens pagas.

  2. Prepare os dados para oferecer um período de teste dos dados. Consulte Preparação de compartilhamentos para uma listagem paga.

  3. Decida sobre o plano de preços que melhor se adequa à sua listagem. Consulte Modelos de preços de listagens pagas para rever os planos de preços disponíveis.

Onde você pode publicar listagens pagas

Somente provedores em determinadas regiões podem publicar listagens pagas. Consulte Quem pode fornecer listagens pagas.

Além disso, as listagens pagas só podem ser publicadas em determinadas regiões. Consulte Onde as listagens pagas estão disponíveis para os consumidores para ver em quais regiões você pode publicar listagens pagas.

Preparação de compartilhamentos para uma listagem paga

Quando você oferece uma listagem paga no Snowflake Marketplace, você deve oferecer aos consumidores a possibilidade de testar a listagem antes de comprá-la. Os períodos de teste são opcionais para listagens privadas pagas. Como parte do período de avaliação, você pode limitar os consumidores a dados e funcionalidades específicas, a um período específico ou a uma combinação destas duas possibilidades.

Se você optar por limitar o período de teste dos consumidores a dados e funcionalidades específicas, crie uma única ação para sua listagem paga e use exibições seguras e uma função de sistema fornecida pelo Snowflake, SYSTEM$IS_LISTING_PURCHASED, para controlar quais dados ficam visíveis para os consumidores de teste e quais dados estão disponíveis apenas para os consumidores pagantes.

Nota

Se sua listagem incluir uma função segura definida pelo usuário (UDF), você não poderá limitar o acesso ao UDF. Tanto os clientes pagantes quanto os clientes de avaliação de sua listagem podem acessar o UDF seguro.

Consulte os exemplos a seguir para criar suas próprias exibições seguras para exibir dados diferentes para os consumidores pagantes e consumidores do período de avaliação.

Se você quiser permitir que consumidores do período de teste utilizem todos os dados em sua listagem por um período limitado, não utilize a função SYSTEM$IS_LISTING_PURCHASED em suas definições de exibição para sua ação.

Exemplo 1: retornar dados com base no status de compra da conta

Crie uma exibição segura que selecione todas as colunas em uma tabela. A exibição retorna linhas somente quando a consulta é feita em uma conta de consumidor que tenha comprado sua listagem paga.

CREATE SECURE VIEW paid_v
  AS
  SELECT
    *
  FROM
    paid_t
  WHERE
    SYSTEM$IS_LISTING_PURCHASED() = TRUE;
Copy

Exemplo 2: retornar um subconjunto de linhas com base no status de compra da conta

Crie uma exibição segura que retorna um subconjunto de linhas com base no valor booleano de uma coluna específica nos dados. Neste exemplo, a tabela subjacente contém uma coluna chamada is_free que é usada para determinar quais dados devem ser mostrados a quais consumidores.

Algumas linhas têm is_free definido como TRUE, indicando que os dados nessas linhas podem ser mostrados aos consumidores no período de teste. Outras linhas têm is_free definido como FALSE, indicando que os dados nessas linhas devem ser mostrados apenas aos consumidores pagantes.

Esta exibição de exemplo é configurada para retornar todas as linhas somente quando é consultada por uma conta de consumidor que comprou a listagem paga, caso contrário, ela retorna somente as linhas em que is_free está definido como TRUE.

CREATE SECURE VIEW paid_v
  AS
  SELECT
    *
  FROM
    paid_t
  WHERE
    is_free
    OR
    SYSTEM$IS_LISTING_PURCHASED() = TRUE;
Copy

Exemplo 3: retornar apenas as linhas mais recentes com base no status de compra da conta

Crie uma exibição segura que retorna apenas linhas dos 7 dias anteriores para uma conta de consumidor em teste, mas que ainda não tenha comprado sua listagem paga.

Este exemplo usa uma coluna com um tipo de dados de carimbo de data/hora para filtrar os dados, mas você pode usar outros tipos de dados de coluna em sua definição de exibição segura.

CREATE SECURE VIEW paid_v
  AS
  SELECT *
  FROM
    paid_t
  WHERE
    (timestamp > current_timestamp() - interval '7 days')
    OR
    SYSTEM$IS_LISTING_PURCHASED() = TRUE;
Copy

Validação de exibições seguras de dados pagos e de teste

Depois de preparar suas exibições seguras, valide que você as definiu corretamente, simulando as experiências das contas de consumidor pagas e em período de teste. Execute consultas na exibição segura para confirmar que cada tipo de consumidor tem acesso aos dados esperados.

Importante

Esse método não confirma se os consumidores podem acessar seus dados com segurança. Esse método só confirma se o compartilhamento funcionará como esperado para os seus consumidores.

Para validar seus compartilhamentos, execute uma consulta em uma exibição segura usando SHARE_CONTEXT(SYSTEM$IS_LISTING_PURCHASED):

EXECUTE USING SHARE_CONTEXT(SYSTEM$IS_LISTING_PURCHASED=>{ 'TRUE' | 'FALSE' })
  AS <query>
Copy

Onde:

  • SYSTEM$IS_LISTING_PURCHASED especifica se você deseja validar como consumidor pago ou como consumidor de teste ou não pago. Os valores válidos são:

    • TRUE para validar o compartilhamento como um consumidor pago.

    • FALSE para validar o compartilhamento como um consumidor de teste ou não pago.

  • <consulta> é a consulta SQL que você deseja executar na exibição segura.

Quando você usa o comando para executar sua consulta, a consulta é executada no compartilhamento como se você fosse um consumidor.

Por exemplo, suponha que você tenha um compartilhamento que queira validar. Seu compartilhamento inclui uma exibição segura chamada PURCHASED_VIEW, que protege todos os dados de uma tabela chamada SHARE_TABLE. Você quer validar que os dados só podem ser acessados por um consumidor que tenha comprado a listagem.

Para confirmar que os consumidores do período de teste não podem acessar dados na exibição segura, faça a seguinte consulta:

EXECUTE USING share_context(system$is_listing_purchased=>'FALSE')
  AS
    SELECT
      *
    FROM
      example_database.example_schema.PURCHASED_VIEW
Copy

Se a exibição segura estiver funcionando como esperado e nenhum dado estiver acessível aos consumidores do período de teste, sua consulta retornará a seguinte resposta:

Query produced no results
Copy

Para confirmar que seus consumidores pagos terão acesso aos dados, você deve realizar a seguinte consulta:

EXECUTE USING share_context(system$is_listing_purchased=>'TRUE')
  AS
    SELECT
      *
    FROM
      example_database.example_schema.PURCHASED_VIEW
Copy

Se a exibição segura estiver funcionando como esperado, sua consulta retornará todas as colunas e linhas em SHARE_TABLE, o resultado desejado para os consumidores pagos.

SYSTEM$IS_LISTING_PURCHASED

Retorna TRUE se a conta do consumidor que consulta os dados adquiriu a listagem, caso contrário retorna FALSE. Se uma conta estiver testando a listagem, a função retorna FALSE. Use esta função do sistema em uma exibição segura para gerenciar o acesso aos dados em um compartilhamento e mostre certos dados apenas para clientes pagantes.

Esta função deduz a listagem associada ao banco de dados que contém a exibição e determina se a conta que executa a consulta comprou a listagem.

Sintaxe
SYSTEM$IS_LISTING_PURCHASED()
Copy
Argumentos

Nenhum.

Exemplo

Crie uma exibição segura que selecione todas as colunas em uma tabela. A exibição retorna linhas somente quando a consulta é feita em uma conta de consumidor que tenha comprado uma listagem paga.

CREATE SECURE VIEW paid_view
  AS
  SELECT
    *
  FROM
    paid_table
  WHERE
    SYSTEM$IS_LISTING_PURCHASED();
Copy

Os consumidores que experimentam a listagem paga não conseguem ver linhas nesta exibição.

Para exemplos adicionais, consulte Preparação de compartilhamentos para uma listagem paga.

Preparação de sua listagem para compartilhamento com outras regiões

Ao configurar sua listagem, você pode optar por oferecê-la em diferentes regiões. Oferecer listagens em outras regiões requer a replicação de dados.

Considere o tempo necessário para replicar os dados e os custos envolvidos na replicação.

Todo compartilhamento de dados entre regiões no Snowflake usa a funcionalidade de replicação de dados do Snowflake. Consulte Compartilhamento de dados de forma segura entre regiões e plataformas de nuvem