Consultas SQL de forma livre¶
Um provedor de dados pode permitir que seus dados sejam expostos a um executor de análise por meio de um modelo ou consultas de forma livre. Quando um provedor de dados habilita consultas de forma livre em um conjunto de dados, qualquer executor de análise com acesso à oferta de dados pode executar consultas SQL no ambiente dele nesse conjunto de dados.
Os executores de análise e os provedores de dados devem ter ingressado na colaboração antes que os dados estejam disponíveis.
Visão geral¶
Aqui estão as etapas para executar consultas de forma livre em dados em uma sala limpa:
Provedor de dados
Registre uma oferta de dados que contenha um ou mais conjuntos de dados em que
allowed_analyses: template_and_freeform_sqlesteja especificado.Se o provedor de dados quiser aplicar políticas do Snowflake às colunas do conjunto de dados, ele deverá criar essas políticas antes de registrar os dados e associá-las às colunas na especificação da oferta de dados.
Vincule a oferta de dados à colaboração da maneira padrão.
Executor de análise
Após a instalação da colaboração na conta, o executor de análise chama VIEW_DATA_OFFERINGS. Se houver um valor na coluna freeform_sql_view_name, será possível consultar o conjunto de dados diretamente na exibição nomeada nessa coluna.
Todas as políticas listadas em freeform_sql_column_policies são aplicadas aos dados pela colaboração. Todas as políticas aplicadas diretamente aos dados de origem pelo provedor de dados são aplicadas, mas não serão exibidas nessa coluna.
Detalhes sobre o provedor de dados e as etapas de análise são fornecidos nas seções a seguir.
Registrando um conjunto de dados de consulta de forma livre (provedor de dados)¶
As etapas a seguir mostram como habilitar consultas de forma livre durante o registro da oferta de dados:
Especifique
allowed_analyses: template_and_freeform_sqlna especificação da colaboração. Isso permite que o conjunto de dados seja consultado usando um modelo ou uma consulta de forma livre.Somente as colunas listadas em
schema_and_template_policiesestão disponíveis para consulta por meio de modelos ou consultas de forma livre.Se você deseja aplicar políticas do Snowflake em consultas de forma livre sem aplicá-las aos seus dados de origem, siga estas etapas:
Crie suas políticas do Snowflake da maneira padrão. Não as aplique à sua tabela.
A função que cria a colaboração deve ter o privilégio USAGE no banco de dados, esquema e objeto de política.
Essas políticas são vinculadas dinamicamente; quaisquer alterações feitas nelas afetarão imediatamente todos os conjuntos de dados que as utilizam, mesmo que a oferta de dados já esteja registrada e vinculada.
Atribua suas políticas na especificação da oferta de dados no campo
freeform_sql_policies. Importante: todos os nomes de coluna utilizados emfreeform_sql_policiesdeverão usar o nome de coluna gerado automaticamente se a coluna tiver sido renomeada. A renomeação afeta apenas as colunas de categoria padrão de junção.Essas políticas não são aplicadas diretamente à tabela de origem, apenas à exibição registrada pela colaboração.
Registre a oferta de dados da maneira padrão chamando REGISTER_DATA_OFFERING.
Executando consultas de forma livre (executor de análise)¶
Quando um executor de análise chama VIEW_DATA_OFFERINGS, se um valor aparecer na coluna freeform_sql_view_name, a exibição SQL de forma livre poderá ser consultada diretamente, sem usar um modelo. Todas as políticas do Snowflake aplicadas à tabela de origem ou definidas na seção freeform_sql_policies da oferta de dados são aplicadas nas consultas.
Coluna |
Valor |
|---|---|
TEMPLATE_VIEW_NAME |
|
TEMPLATE_JOIN_COLUMNS |
|
ANALYSIS_ALLOWED_COLUMNS |
|
ACTIVATION_ALLOWED_COLUMNS |
|
FREEFORM_SQL_VIEW_NAME |
|
FREEFORM_SQL_COLUMN_POLICIES |
|
SHARED_BY |
|
SHARED_WITH |
|
DATA_OFFERING_ID |
|
Você deve usar o valor de freeform_sql_view_name, não o valor de template_view_name.
Exemplo: colaboração de duas partes¶
O exemplo a seguir demonstra uma colaboração entre duas partes, em que uma parte (o «provedor») é o proprietário da colaboração e um provedor de dados para o consumidor. A outra parte (o «consumidor») é um executor de análise que pode executar o modelo e usar os dados fornecidos pelo provedor, além de executar consultas SQL de forma livre nos dados, sujeitas às políticas definidas na especificação do provedor de dados.
Para executar este exemplo, você deve ter duas contas separadas com o Snowflake Data Clean Rooms instalado.
Você pode baixar os arquivos e carregá-los em sua conta Snowflake ou copiar e colar o código de exemplo em planilhas em duas contas separadas usando o Snowsight.
Baixe os arquivos SQL de origem e carregue-os em duas contas separadas que tenham o Snowflake Data Clean Rooms instalado: