Preparação de dados para uma listagem

Este tópico contém orientações para preparar a criação de uma listagem, incluindo como preparar um compartilhamento para uma listagem.

Neste tópico:

Preparação para criar uma listagem

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

  1. Decida que tipo de listagem você deseja criar. Consulte Tipos de listagens.

  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 se você quer cobrar por sua listagem. Consulte Preparação de compartilhamentos para uma listagem paga.

  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 nela contidos. Dentro dessa conta, você pode realizar uma das seguintes ações para criar e gerenciar listagens:

  • Use a função ACCOUNTADMIN.

  • Criar e usar uma função dedicada com o privilégio global CREATE DATA EXCHANGE LISTING.

A função que cria um compartilhamento também é a proprietária do compartilhamento, e essa função deve ser usada para anexar o compartilhamento a uma listagem. Se a função que criou o compartilhamento for diferente da função que você usa para criar e modificar a listagem, conceda o privilégio MODIFY LISTING nessa listagem à função que possui o compartilhamento para que os usuários com essa função possam publicar a listagem.

Para obter mais informações sobre privilégios de compartilhamento de dados, 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 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 paga

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

  1. Determine se você pode oferecer listagens pagas em sua região. Consulte Onde você pode publicar 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

Como provedor, você pode criar uma listagem paga se o endereço de faturamento da sua conta for em um dos seguintes países:

  • Austrália

  • Finlândia

  • França

  • Alemanha

  • Irlanda

  • Israel

  • Itália

  • México

  • Países Baixos

  • Noruega

  • Cingapura

  • Suécia

  • Suíça

  • Reino Unido

  • Estados Unidos

Consulte Onde as listagens pagas estão disponíveis para os consumidores para obter informações sobre a disponibilidade da região para os consumidores.

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