Recompartilhar dados recebidos como recompartilhador¶
Como recompartilhador, você pode extrair os dados da listagem de um provedor e compartilhá-los com outras contas, seja no estado original ou transformados com seus próprios dados. Este tópico descreve como recompartilhar os dados recebidos.
Pré-requisitos¶
A listagem do provedor deve ter
resharing.enableddefinido comotrue.Você deve criar exibições seguras em seu próprio banco de dados. Não é possível modificar diretamente o banco de dados importado.
A mesma função deve criar o compartilhamento e concedê-lo à listagem.
Limitações¶
O recompartilhamento só é habilitado por meio de listagens. Não é possível recompartilhar apps ou compartilhamentos diretamente.
Não é possível anexar objetos de dados de bancos de dados importados ou localizadores uniformes de listagem (Uniform Listing Locators, ULLs) diretamente para outro compartilhamento. Para recompartilhar objetos de dados de uma listagem recebida, você deve criar uma exibição segura em seu banco de dados.
Os recompartilhadores só podem recompartilhar tabelas, tabelas dinâmicas e exibições dos produtos de dados recebidos permitidos para recompartilhamento.
As listagens recompartilhadas não oferecem suporte à recuperação de desastre.
Fluxo de trabalho de recompartilhamento¶
Crie um banco de dados importado da listagem do provedor.
Crie uma exibição segura em seu próprio banco de dados que faça referência aos dados do banco de dados importado.
Crie um compartilhamento e conceda SELECT na exibição segura para o compartilhamento.
Crie uma nova listagem usando o compartilhamento.
CREATE DATABASE imported_db FROM LISTING provider_listing;
CREATE DATABASE reshared_db;
CREATE SECURE VIEW reshared_db.public.reshared_view
AS SELECT * FROM imported_db.public.provider_table;
CREATE SHARE my_reshare;
GRANT USAGE ON DATABASE reshared_db TO SHARE my_reshare;
GRANT USAGE ON SCHEMA reshared_db.public TO SHARE my_reshare;
GRANT SELECT ON VIEW reshared_db.public.reshared_view TO SHARE my_reshare;
Nota
A concessão de REFERENCE_USAGE não é necessária em bancos de dados importados criados de listagens recompartilhadas.
Recompartilhamento entre regiões¶
Nota
Você precisa estar ciente dos custos de preenchimento automático antes de habilitar o preenchimento automático em suas listagens recompartilhadas. O Snowflake também oferece diversas exibições para monitorar os custos e o uso do preenchimento automático. Para obter mais informações, consulte Monitorar recursos e visualizar custos.
Para recompartilhar dados com consumidores em outras regiões, o preenchimento automático de listagens deve estar habilitado. A propriedade auto-fulfillment inclui um campo warehouse que você deve especificar ao recompartilhar entre regiões. Esse campo pode ser omitido ao recompartilhar dentro da mesma região.
O recompartilhamento de dados entre regiões requer uma cópia local dos dados para replicação downstream. O Snowflake cria automaticamente tabelas dinâmicas para gerenciar isso. O warehouse que você especifica é usado para criar e atualizar as tabelas dinâmicas.
auto_fulfillment:
warehouse: my_wh
Você pode usar a função do sistema SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING para visualizar as tabelas dinâmicas criadas para recompartilhamento.
Habilitando o recompartilhamento também por seus consumidores¶
Se você quiser que seus consumidores recompartilhem a listagem que você criou, habilite o recompartilhamento em sua própria listagem definindo resharing.enabled como true. Para obter detalhes sobre como fazer essa configuração como provedor, consulte Usando o recompartilhamento como provedor.
Solução de problemas¶
Se os consumidores receberem o erro «The listing has resharing restrictions that prevent access to the underlying data», trabalhe com o provedor para resolver o problema. Esse erro pode ocorrer quando:
O provedor desabilita o recompartilhamento definindo
enabledcomofalse.O provedor adiciona ou altera políticas de governança ou funções de contexto nas tabelas base que não são compatíveis com recompartilhamento.