Snowflake Data Clean Rooms: Guia de referência da API do provedor¶
Este guia descreve as APIs de desenvolvedor que permitem que um provedor crie, configure e compartilhe uma sala limpa. Todas as funções residem dentro do seguinte esquema:
samooha_by_snowflake_local_db.provider
Configuração do ambiente¶
Execute os seguintes comandos para configurar o ambiente Snowflake antes de usar as APIs de desenvolvedor para trabalhar com uma Snowflake Data Clean Room. Se você não tiver a função SAMOOHA_APP_ROLE, entre em contato com o administrador de sua conta.
use role samooha_app_role;
use warehouse app_wh;
Cria um nome para a sala limpa. O nome da sala limpa pode conter apenas caracteres alfanuméricos. O nome da sala limpa não pode conter caracteres especiais, exceto espaços e sublinhados.
set cleanroom_name = 'Test Cleanroom 1'; -- This must only have alphanumeric characters.
Crie uma sala limpa¶
Use os seguintes comandos para criar e excluir uma sala limpa:
provider.cleanroom_init¶
Descrição: Cria uma sala limpa em sua conta. Você pode dar à sala limpa um nome com apenas caracteres alfanuméricos e espaços. Você também precisa informar a distribuição da sala limpa para especificar se esta é uma sala limpa de teste que você pretende compartilhar apenas dentro da sua organização (INTERNAL) ou uma sala limpa de produção que você pretende compartilhar externamente com outras organizações (EXTERNAL).
Se uma distribuição não for especificada, o padrão será INTERNAL.
Você pode transformar uma sala limpa INTERNAL em uma sala limpa EXTERNAL usando:
alter application package samooha_cleanroom_<CLEANROOM_ID> SET DISTRIBUTION = EXTERNAL;
Nota
A distribuição pode ser EXTERNAL ou INTERNAL. Se uma sala limpa for marcada como distribuição EXTERNAL, o Snowflake precisa realizar uma verificação de segurança automatizada antes que ela possa ser compartilhada com colaboradores. Consulte provider.set_default_release_directive para obter mais detalhes.
Entrada: cleanroom_name (cadeia de caracteres), distribution (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.cleanroom_init($cleanroom_name, 'INTERNAL');
provider.set_default_release_directive¶
Descrição: Define uma diretiva de lançamento para a sala limpa, ou seja, a versão e o patch que os colaboradores receberão.
Por padrão, todas as salas limpas são criadas com os seguintes números de versão e patch:
versão: V1_0
patch: 0
Nota
Se a distribuição da sala limpa estiver definida como EXTERNAL, ela só pode ser chamada quando a verificação de segurança da sala limpa for movida para um estado APPROVED. Para exibir o status atual da verificação, chame:
show versions in application package samooha_cleanroom_<CLEANROOM_ID>;
Entrada: cleanroom_name (cadeia de caracteres), version (cadeia de caracteres), patch (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.set_default_release_directive($cleanroom_name, 'V1_0', '0');
provider.drop_cleanroom¶
Descrição: Uma sala limpa existente pode ser descartada pelo criador. Isso exclui a sala limpa completamente, o que significa que os consumidores que a instalaram não poderão mais acessá-la ou utilizá-la.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
Registro e cancelamento de registro de dados¶
Use o comando a seguir para registrar e cancelar o registro de bancos de dados, esquemas e objetos. Tabelas e exibições devem ser registradas antes de poderem ser vinculadas à sala limpa. Se você registrar um banco de dados ou esquema, todos os objetos naquele banco de dados ou esquema serão registrados.
provider.register_db¶
Descrição: Executa com os direitos de chamadores e permite que administradores de contas registrem bancos de dados para que fiquem visíveis no aplicativo da Snowflake Data Clean Room. A capacidade de SELECT é concedida em todos os esquemas e tabelas no banco de dados e no aplicativo nativo de Snowflake Data Clean Room (SAMOOHA_BY_SNOWFLAKE).
Entrada: db_name (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.register_db('SAMOOHA_SAMPLE_DATABASE');
library.register_schema¶
Descrição: semelhante a register_db
, mas opera em nível de esquema. Uma matriz ou cadeia de caracteres representando o nome do esquema totalmente qualificado pode ser passado, e seleções de concessão para a função SAMOOHA_APP_ROLE são feitas, permitindo que o usuário vincule os objetos no esquema à sala limpa.
Se você quiser registrar um esquema de acesso gerenciado (ou seja, um esquema criado com o parâmetro WITH MANAGED ACCESS), use library.register_managed_access_schema
.
Entrada: schema_name (array)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.register_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_managed_access_schema¶
Descrição: semelhante a register_schema
, mas registra um esquema que foi criado com o parâmetro WITH MANAGED ACCESS. Uma matriz ou cadeia de caracteres representando o nome do esquema totalmente qualificado pode ser passado, e seleções de concessão para a função SAMOOHA_APP_ROLE são feitas, permitindo que o usuário vincule os objetos no esquema à sala limpa.
Entrada: schema_name (array)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_table_or_view¶
Descrição: registra tabelas e exibições de todos os tipos.
Entrada: object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)
Saída mensagem de sucesso (string)
Exemplos
Para registrar uma tabela:
call samooha_by_snowflake_local_db.library.register_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
false,
false,
false);
Para registrar uma tabela Iceberg:
call samooha_by_snowflake_local_db.library.register_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
true,
false,
false);
library.register_table¶
Descrição: Semelhante a register_db
, mas opera ao nível de tabela. Uma matriz ou cadeia de caracteres representando o nome da tabela totalmente qualificado pode ser passada, e serão concedidos privilégios de seleção à função SAMOOHA_APP_ROLE são criadas, permitindo que o usuário vincule a tabela à sala limpa.
Se você quiser registrar tabelas em um esquema de acesso gerenciado (ou seja, um esquema criado com o parâmetro WITH MANAGED ACCESS), use library.register_managed_access_table
.
Entrada: table_name (matriz)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_table¶
Descrição: semelhante a register_table
, mas registra tabelas que foram criadas com o parâmetro WITH MANAGED ACCESS. Uma matriz ou cadeia de caracteres representando o nome da tabela totalmente qualificado pode ser passada, e serão concedidos privilégios de seleção à função SAMOOHA_APP_ROLE são criadas, permitindo que o usuário vincule a tabela à sala limpa.
Entrada: table_name (matriz)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_view¶
Descrição: semelhante a register_db
, mas opera em nível de exibição. Uma matriz ou cadeia de caracteres representando o nome da exibição totalmente qualificado pode ser passada, e seleções de concessão para a função SAMOOHA_APP_ROLE são feitas, permitindo que o usuário link a exibição à sala limpa.
Se você quiser registrar exibições em um esquema de acesso gerenciado (ou seja, um esquema criado com o parâmetro WITH MANAGED ACCESS), use library.register_managed_access_view
.
Entrada: view_name (array)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_view¶
Descrição: semelhante a register_view
, mas registra exibições que foram criadas com o parâmetro WITH MANAGED ACCESS. Uma matriz ou cadeia de caracteres representando o nome da exibição totalmente qualificado pode ser passada, e seleções de concessão para a função SAMOOHA_APP_ROLE são feitas, permitindo que o usuário link a exibição à sala limpa.
Entrada: view_name (array)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.register_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_db¶
Descrição: Inverte o procedimento register_db
e remove as concessões ao nível de banco de dados concedidas à função SAMOOHA_APP_ROLE e ao aplicativo nativo de Snowflake Data Clean Room. Isso também remove qualquer banco de dados do menu suspenso de UI.
Entrada: db_name (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_db('SAMOOHA_SAMPLE_DATABASE');
library.unregister_schema¶
Descrição: cancela o registro de um esquema, o que impede que os usuários vinculem suas tabelas e exibições à sala limpa.
Se você quiser cancelar o registro de um esquema de acesso gerenciado (ou seja, um esquema criado com o parâmetro WITH MANAGED ACCESS), use library.unregister_managed_access_schema
.
Entrada: schema_name (array)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_managed_access_schema¶
Descrição: semelhante a unregister_schema
, mas cancela o registro em um esquema que foi criado com o parâmetro WITH MANAGED ACCESS.
Entrada: schema_name (array)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_table_or_view¶
Descrição: cancela o registro de tabelas e exibições de todos os tipos.
Entrada: object_names (array), is_view (boolean), is_iceberg (boolean), is_external (boolean), is_under_managed_access_schema (boolean)
Saída mensagem de sucesso (string)
Exemplos
Para cancelar o registro de uma tabela:
call samooha_by_snowflake_local_db.library.unregister_table_or_view(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
false,
false,
false,
false);
library.unregister_table¶
Descrição: semelhante a unregister_db
, mas opera em nível de tabela. Uma matriz ou cadeia de caracteres representando o nome da tabela totalmente qualificado pode ser passada para cancelar o registro das tabelas. Os usuários não podem vincular tabelas não registradas a uma sala limpa.
Se você quiser cancelar o registro de tabelas em um esquema de acesso gerenciado (ou seja, um esquema criado com o parâmetro WITH MANAGED ACCESS), use library.unregister_managed_access_table
.
Entrada: table_name (matriz)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_managed_access_table¶
Descrição: semelhante a unregister_table
, mas cancela o registro de tabelas em um esquema de acesso gerenciado (ou seja, um esquema criado com o parâmetro WITH MANAGED ACCESS).
Entrada: table_name (matriz)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_view¶
Descrição: semelhante a unregister_db
, mas opera em nível de exibição. Uma matriz ou cadeia de caracteres representando o nome de exibição totalmente qualificado pode ser passada para cancelar o registro das exibições. Os usuários não podem vincular exibições não registradas a uma sala limpa.
Se você quiser cancelar o registro de exibições em um esquema de acesso gerenciado (ou seja, um esquema criado com o parâmetro WITH MANAGED ACCESS), use library.unregister_managed_access_view
.
Entrada: view_name (array)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_managed_access_view¶
Descrição: semelhante a unregister_view
, mas cancela o registro de exibições em um esquema de acesso gerenciado (ou seja, um esquema criado com o parâmetro WITH MANAGED ACCESS).
Entrada: view_name (array)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Como adicionar conjuntos de dados e criar políticas¶
Use os seguintes comandos para adicionar dados e configurar políticas para a sala limpa.
provider.link_datasets¶
Descrição: Vincula uma tabela Snowflake à sala limpa. O procedimento torna a tabela automaticamente acessível à sala limpa, criando uma exibição segura da tabela de dentro da sala limpa, evitando assim a necessidade de fazer uma cópia da tabela.
O terceiro argumento é opcional. Se você não usá-lo para especificar uma lista de consumidores, todos os consumidores da sala limpa poderão acessar as tabelas especificadas. Se você especificar consumidores, somente esses consumidores poderão acessar as tabelas especificadas.
Entrada: cleanroom_name (string), tables_list (array), consumer_list (array)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.link_datasets($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES']);
Nota
Antes de vincular uma exibição à sala limpa, um usuário com a função ACCOUNTADMIN deve executar o seguinte no Snowflake:
grant reference_usage on database <DB NAME> to share in application package samooha_cleanroom_<cleanroom_name>;
provider.restrict_table_options_to_consumers¶
Descrição: controla se um consumidor específico pode acessar uma tabela na sala limpa.
O segundo argumento é um objeto JSON, onde cada par nome/valor é o nome de uma tabela e uma matriz de consumidores que podem acessá-la. Cada consumidor é especificado usando seu localizador de conta.
Entrada: cleanroom_name(string), access_details(variant)
Saída: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.provider.restrict_table_options_to_consumers(
$cleanroom_name,
{
'DB.SCHEMA.TABLE1': ['CONSUMER_1_LOCATOR'],
'DB.SCHEMA.TABLE2': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
}
);
provider.set_join_policy¶
Descrição: Especifica em quais colunas o consumidor tem permissão para realizar uma junção ao executar modelos na sala limpa. Observe que a política de coluna é somente substituição, portanto, se a função for chamada novamente, a política de coluna definida anteriormente será completamente substituída pela atual.
Observe que as verificações são realizadas examinando o argumento where_clause para um modelo SQL Jinja ou quaisquer argumentos aos quais o filtro join_policy tenha sido adicionado. Esta verificação procura por colunas não autorizadas. Consultas com curingas podem não ser detectadas usando essas verificações, e ainda assim é preciso ter cautela ao projetar o modelo de análise.
Por padrão, as verificações são realizadas em argumentosSQL Jinja chamados where_clause. Certifique-se de usar esta tag para habilitar esta verificação.
Entrada: cleanroom_name (cadeia de caracteres), table_and_col_names (matriz)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.set_join_policy($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:EMAIL', 'SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES:EMAIL']);
Modelos¶
Use os seguintes comandos para adicionar os modelos/análises compatíveis nesta sala limpa.
provider.add_templates¶
Descrição: Adiciona uma lista de modelos predefinidos usando seus identificadores de nome. Exemplos incluem “prod_overlap_analysis” e “prod_provider_data_analysis”.
Entrada: cleanroom_name (cadeia de caracteres), template_names (matriz)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.add_templates($cleanroom_name, ['prod_overlap_analysis']);
provider.view_template_definition¶
Descrição: Dado o nome do modelo, recupera a definição do modelo da sala limpa. Isso ajuda o usuário a inspecioná-lo visualmente e determinar quais parâmetros ele precisa passar ao executar o modelo.
Entrada: cleanroom_name (cadeia de caracteres), template_name (cadeia de caracteres)
Saída: A definição do modelo (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_template_definition($cleanroom_name, 'prod_overlap_analysis');
provider.clear_template¶
Descrição: Remove um modelo especificado (referido pelo nome) da sala limpa.
Entrada: cleanroom_name (cadeia de caracteres), template_name (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.clear_template($cleanroom_name, 'prod_custom_template');
provider.clear_all_templates¶
Descrição: Remove todos os modelos adicionados à sala limpa. Depois que ele for chamado, os modelos precisarão ser adicionados novamente.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.clear_all_templates($cleanroom_name);
provider.set_column_policy¶
Descrição: Define em quais colunas de dados o consumidor pode realizar operações. Isso só deve ser chamado depois que o modelo for adicionado. Esta também é uma função de modelo, portanto as entradas precisam estar no formato template_name:full_table_name:column_name
. Observe que a política de coluna é somente substituição, portanto, se a função for recuperada, a política de coluna definida anteriormente será completamente substituída pela atual.
A API da política de coluna não deve ser chamada em colunas de identidade como e-mail. Ela deve ser usada somente em colunas agregadas e agrupadas.
Observe que as verificações são realizadas analisando a consulta SQL a ser executada nos dados para quaisquer colunas não autorizadas. Consultas com curingas podem não ser detectadas usando essas verificações, e ainda assim é preciso ter cautela ao projetar o modelo de análise.
Por padrão, as verificações são realizadas em argumentos SQL Jinja chamados dimensions ou measure_columns. Certifique-se de usar essas tags para habilitar essa verificação.
Como alternativa, você pode usar as tags join_policy e column_policy no modelo SQL Jinja para impor políticas de segurança contra argumentos SQL Jinja personalizados.
Entrada: cleanroom_name (cadeia de caracteres), analysis_and_table_and_columns (matriz)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.set_column_policy($cleanroom_name,
['prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:STATUS',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:AGE_BAND',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:DAYS_ACTIVE',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE.DEMO.EXPOSURES:CAMPAIGN']);
provider.add_custom_sql_template¶
Descrição: Adiciona um modelo SQL Jinja personalizado à sala limpa. Isso permite que o consumidor chame o modelo.
Você pode chamar esta API mais de uma vez para adicionar vários modelos personalizados à sala limpa. O procedimento substitui qualquer modelo anterior com o mesmo nome. Se você quiser editar um modelo existente, passe o nome do modelo existente como um argumento para a API.
Se o consumidor estiver usando o modelo para ativar os resultados de volta para o provedor, o comando deverá atender aos seguintes requisitos:
O nome do modelo personalizado deve começar com a cadeia de caracteres
activation
. Por exemplo,activation_custom_template
.A definição do modelo deve criar uma tabela que começa com
cleanroom.activation_data_
. Por exemplo,CREATE TABLE cleanroom.activation_data_analysis_results AS ...
.A definição do modelo deve retornar a parte exclusiva do nome da tabela que foi criada na definição, que é a cadeia de caracteres anexada a
cleanroom.activation_data_
. Por exemplo,retorne 'data_analysis_results'
.
Em modelos SQL Jinja, existem dois argumentos especiais:
source_table: uma matriz de tabelas do lado do provedor
my_table: uma matriz de tabelas do lado do consumidor
Todas as tabelas de provedores/consumidores devem ser referenciadas usando esses argumentos, pois o nome da exibição segura realmente vinculada à sala limpa será diferente do nome da tabela. Os aliases de tabela de provedores DEVEM ser obrigatoriamente p (ou p1), p2, p3, p4 etc., e os aliases da tabela do consumidor devem ser c (ou c1), c2, c3 etc. Isso é necessário para aplicar políticas de segurança na sala limpa.
Além disso, para que “column_policy” e “join_policy” realizem verificações nas solicitações de análise do consumidor, todos os nomes de colunas devem ser referenciados como dimensions ou measure_columns no modelo SQL Jinja. Certifique-se de usar essas tags para se referir às colunas que deseja verificar nos modelos SQL Jinja personalizados por padrão.
Alternativamente, qualquer argumento em um modelo SQL Jinja personalizado pode ser verificado quanto à conformidade com as políticas de junção e coluna usando os seguintes filtros:
join_policy: verifica se um valor de cadeia de caracteres ou cláusula de filtro está em conformidade com a política de junção
column_policy: verifica se um valor de cadeia de caracteres ou cláusula de filtro está em conformidade com a política de coluna
join_and_column_policy: verifica se as colunas usadas para uma junção em uma cláusula de filtro estão em conformidade com a política de junção e se as colunas usadas como um filtro estão em conformidade com a política de coluna
Por exemplo, na cláusula {{ where_clause | sqlsafe | join_and_column_policy }}, uma entrada de p.HEM = c.HEM e p.STATUS = 1 será analisada para verificar se p.HEM está na política de junção e p.STATUS está na política de coluna.
Observação: use o filtro sqlsafe apenas com cautela, visto que ele permite que os colaboradores coloquem SQL puro no modelo.
Se você não especificar uma lista de consumidores, todos os consumidores poderão usar o modelo personalizado. Se você usar o parâmetro para especificar uma lista de consumidores, somente esses consumidores poderão usar o modelo na sala limpa.
Entrada: cleanroom_name(string), template_name(string), template(string), differential_privacy_sensitivity(float, OPTIONAL), consumer_list(array, OPTIONAL)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.add_custom_sql_template(
$cleanroom_name, 'prod_custom_template',
$$
select
identifier({{ dimensions[0] | column_policy }})
from
identifier({{ my_table[0] }}) c
inner join
identifier({{ source_table[0] }}) p
on
c.identifier({{ consumer_id }}) = identifier({{ provider_id | join_policy }})
{% if where_clause %} where {{ where_clause | sqlsafe | join_and_column_policy }} {% endif %};
$$);
provider.restrict_template_options_to_consumers¶
Descrição: controla se um consumidor específico pode usar um modelo na sala limpa.
O segundo argumento é um objeto JSON, onde cada par nome/valor é o nome de um modelo e uma matriz de consumidores que podem usá-lo. Cada consumidor é especificado usando seu localizador de conta.
Entrada: cleanroom_name(string), access_details(variant)
Saída: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.provider.restrict_template_options_to_consumers(
$cleanroom_name,
{
'prod_template_1': ['CONSUMER_1_LOCATOR', 'CONSUMER_2_LOCATOR']
}
);
Modelos definidos pelo consumidor¶
As seguintes APIs permitem que você aprove ou rejeite uma solicitação de um consumidor para adicionar um modelo à sala limpa. Um modelo definido pelo consumidor só é adicionado a uma sala limpa se o provedor aprovar a solicitação do consumidor para adicioná-lo. Para obter mais informações, consulte Como usar a API do desenvolvedor para adicionar modelos definidos pelo consumidor.
provider.list_template_requests¶
Descrição: lista todas as solicitações de consumidores que desejam adicionar um modelo definido pelo consumidor a uma sala limpa. Isso inclui solicitações pendentes, aprovadas e rejeitadas.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: request_id(string), consumer_identifier(string), template_name(string), template_definition(string), status(string)
Exemplo:
CALL samooha_by_snowflake_local_db.provider.list_template_requests('dcr_cleanroom');
provider.approve_template_request¶
Descrição: aprova uma solicitação para adicionar um modelo à sala limpa. Para obter o argumento <request_id>, execute o comando provider.list_template_requests
para recuperar o UUID da solicitação.
Entrada: cleanroom_name (string), request_id (string)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
CALL samooha_by_snowflake_local_db.provider.approve_template_request('dcr_cleanroom',
'01b4d41d-0001-b572');
provider.reject_template_request¶
Descrição: rejeita uma solicitação para adicionar um modelo à sala limpa. Para obter o argumento <request_id>, execute o comando provider.list_template_requests
para recuperar o UUID da solicitação.
Entrada: cleanroom_name (string), request_id (string), reason_for_rejection(string)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
CALL samooha_by_snowflake_local_db.provider.reject_template_request('dcr_cleanroom',
'01b4d41d-0001-b572',
'Failed security assessment');
Como configurar quem pode executar análises¶
Use os seguintes comandos para configurar quem pode executar análises na sala limpa. Você pode especificar o provedor (criador da sala limpa), o consumidor (instalador da sala limpa) ou ambos.
provider.enable_provider_run_analysis¶
Descrição: Permite que o provedor (criador da sala limpa) execute análises na sala limpa (isso é desabilitado por padrão).
Nota
Muito importante: isso precisa ser chamado depois do provedor.add_consumer
e antes que um consumidor instale uma sala limpa. Se isso for alterado depois que um consumidor já tiver instalado sua sala limpa, ele precisará reinstalar a sala limpa para refletir a nova configuração.
Entrada: cleanroom_name (cadeia de caracteres), consumer_account_locator (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.enable_provider_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
provider.disable_provider_run_analysis¶
Descrição: Desabilita o provedor (criador de sala limpa) de executar análises na sala limpa (isso é desabilitado por padrão).
Nota
Muito importante: isso precisa ser chamado depois do provedor.add_consumer
e antes que um consumidor instale uma sala limpa. Se isso for alterado depois que um consumidor já tiver instalado sua sala limpa, ele precisará reinstalar a sala limpa para refletir a nova configuração.
Entrada: cleanroom_name (cadeia de caracteres), consumer_account_locator (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.disable_provider_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
provider.enable_consumer_run_analysis¶
Descrição: Permite que o consumidor (instalador da sala limpa) execute análises na sala limpa (isso é habilitado por padrão).
Nota
Muito importante: isso precisa ser chamado depois do provedor.add_consumer
e antes que um consumidor instale uma sala limpa. Se isso for alterado depois que um consumidor já tiver instalado sua sala limpa, ele precisará reinstalar a sala limpa para refletir a nova configuração.
Entrada: cleanroom_name (cadeia de caracteres), consumer_account_locator (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.enable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
provider.disable_consumer_run_analysis¶
Descrição: Desabilita o consumidor (instalador da sala limpa) de executar análises na sala limpa (isso é habilitado por padrão).
Nota
Muito importante: isso precisa ser chamado depois do provedor.add_consumer
e antes que um consumidor instale uma sala limpa. Se isso for alterado depois que um consumidor já tiver instalado sua sala limpa, ele precisará reinstalar a sala limpa para refletir a nova configuração.
Entrada: cleanroom_name (cadeia de caracteres), consumer_account_locator (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.disable_consumer_run_analysis($cleanroom_name, ['<CONSUMER_ACCOUNT_LOCATOR>']);
library.is_provider_run_enabled¶
Descrição: Verifica se esta sala limpa tem Provider Run Analysis habilitado. Nota: a aprovação explícita ainda precisa ser dada chamando consumer.enable_templates_for_provider_run
(Consulte abaixo).
Entrada: cleanroom_name (cadeia de caracteres)
Saída: mensagem habilitada (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
biblioteca.is_consumer_run_enabled¶
Descrição: Verifica se esta sala limpa tem Consumer Run Analysis habilitado. Este sinalizador determina se o consumidor da sala limpa (instalador) pode executar análises ou atuar como um colaborador de dados.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: mensagem habilitada (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name)
Encadeamentos de modelos¶
Use os seguintes comandos para criar e gerenciar cadeias de modelos. Para obter informações gerais sobre o uso de cadeias de modelos, consulte Como usar APIs do desenvolvedor para executar modelos sequencialmente.
provider.add_template_chain¶
Descrição: cria uma nova cadeia de modelos. Os modelos devem existir antes de serem adicionados à cadeia de modelos.
Entrada: cleanroom_name(string), template_chain_name(string), templates(array of objects)
O objeto JSON que representa um modelo pode conter os seguintes campos:
template_name
(string) - Especifica o modelo que está sendo adicionado à cadeia de modelos. O modelo já deve existir.cache_results
(boolean) - Determina se os resultados do modelo são salvos temporariamente para que outros modelos na cadeia de modelos possam acessá-los. Para armazenar os resultados em cache, especifique TRUE.output_table_name
(string) - Quando cache_results = TRUE, especifica o nome da tabela Snowflake onde os resultados do modelo são armazenados.jinja_output_table_param
(string) - Quando cache_results = TRUE, especifica o nome do parâmetro Jinja que outros modelos devem incluir para aceitar os resultados armazenados em output_table_name.cache_expiration_hours
(inteiro) - Quando cache_results = TRUE, especifica o número de horas antes que os resultados no cache sejam descartados. Quando o cache expira, na próxima vez que a cadeia de modelos for executada, o cache será atualizado com os resultados do modelo.
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.add_template_chain(
'collab_clean_room',
'my_chain',
[
{
'template_name': 'crosswalk',
'cache_results': True,
'output_table_name': 'crosswalk',
'jinja_output_table_param': 'crosswalk_table_name',
'cache_expiration_hours': 2190
},
{
'template_name': 'transaction_insights',
'cache_results': False
}
]
);
provider.view_added_template_chains¶
Descrição: exibe as cadeias de modelos atualmente ativas na sala limpa.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: as cadeias de modelos adicionadas (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_added_template_chains($cleanroom_name);
provider.view_template_chain_definition¶
Descrição: retorna os atributos de uma cadeia de modelos.
Entrada: cleanroom_name (string), template_chain_name (string)
Saída: a definição da cadeia de modelos (string)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_template_chain_definition($cleanroom_name, 'insights_chain');
provider.clear_template_chain¶
Descrição: remove uma cadeia de modelos especificada (referida pelo seu nome) da sala limpa.
Entrada: cleanroom_name(string), template_chain_name(string)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.clear_template_chain($cleanroom_name, 'insights_chain');
provider.clear_all_template_chains¶
Descrição: remove todas as cadeias de modelos que foram adicionadas à sala limpa.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.clear_all_template_chains($cleanroom_name);
Execução de análises como um criador de sala limpa¶
provider.submit_analysis_request¶
Descrição: A execução de análises como um provedor de sala limpa acontece por meio do envio de uma solicitação de análise. Essa solicitação de análise passa pela sala limpa e é verificada em relação às políticas de segurança do consumidor. Depois que as verificações de segurança e as camadas de privacidade diferencial permitem que a análise seja realizada, ela é executada na sala limpa e os resultados são armazenados com segurança dentro dela.
Ao permitir que o provedor execute análises, uma chave criptográfica é adicionada à sala limpa, que somente o provedor conhece. Essa chave é usada para criptografar os resultados da análise antes de retornar ao locatário do provedor, onde é então descriptografada usando a chave segura. Isso garante que ninguém, exceto o provedor, possa ver os resultados de uma análise solicitada pelo provedor.
Entrada: cleanroom_name (cadeia de caracteres), consumer_account_locator (cadeia de caracteres), template_name (cadeia de caracteres), consumer_tables (matriz), provider_tables (matriz), analysis_arguments (objeto)
Saída: ID de solicitação (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.submit_analysis_request(
$cleanroom_name,
'<CONSUMER_ACCOUNT>',
'prod_overlap_analysis',
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
object_construct(
'dimensions', ['c.REGION_CODE'],
'measure_type', ['AVG'],
'measure_column', ['c.DAYS_ACTIVE']
));
-- This API returns a request ID that we save into a local variable.
set request_id = '<REQUEST_ID';
provider.check_analysis_status¶
Descrição: Depois que uma solicitação de análise for enviada, use esta API para verificar o status da solicitação. A solicitação pode levar até 1 minuto após o envio para aparecer. Uma vez feito isso, o status aparece como COMPLETED.
Entrada: cleanroom_name (cadeia de caracteres), request_id (cadeia de caracteres), consumer_account_locator (cadeia de caracteres)
Saída: status (cadeia de caracteres)
Exemplo:
-- It can take up to 2 minutes for this to pick up the request ID after the initial request
call samooha_by_snowflake_local_db.provider.check_analysis_status(
$cleanroom_name,
$request_id,
'<CONSUMER_ACCOUNT>'
);
provider.get_analysis_result¶
Descrição: Assim que o status da análise aparecer como COMPLETED para um determinado ID de solicitação, os resultados para um request_id podem ser obtidos usando esta API. Isso irá descriptografar os resultados com a chave secreta criada em sua conta durante a ativação da análise e gerar os resultados da análise.
Entrada: cleanroom_name (cadeia de caracteres), request_id (cadeia de caracteres), consumer_account_locator (cadeia de caracteres)
Saída: resultados da análise (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.get_analysis_result(
$cleanroom_name,
$request_id,
'<CONSUMER_ACCOUNT>'
);
Funções para carregar código Python em sala limpa¶
provider.load_python_into_cleanroom¶
Descrição: Carrega confidencialmente qualquer função Python na sala limpa. Qualquer código carregado na sala limpa usando esta API não será visível ao consumidor. A função resultante pode ser chamada dentro de qualquer modelo SQL Jinja como sala limpa.
Nota
Este procedimento adiciona seu código Python à sala limpa como um patch na versão existente. Isso reacionará a verificação de segurança e você pode ter que esperar que ela seja APPROVED antes de compartilhar a versão mais recente com os colaboradores. Se você fizer isso, chame provider.set_default_release_directive
antes de compartilhar a sala limpa com provedores com a versão/patch mais recente. Consulte a documentação do aplicativo nativo Snowflake para obter mais detalhes.
Entrada: cleanroom_name (cadeia de caracteres), function_name (cadeia de caracteres), arguments (matriz), packages (matriz), ret_type (cadeia de caracteres), handler (cadeia de caracteres), code (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.load_python_into_cleanroom(
$cleanroom_name,
'assign_group', // Name of the UDF
['data variant', 'index integer'], // Arguments of the UDF, along with their type
['pandas', 'numpy'], // Packages UDF will use
'integer', // Return type of UDF
'main', // Handler
$$
import pandas as pd
import numpy as np
def main(data, index):
df = pd.DataFrame(data) # you can do something with df but this is just an example
return np.random.randint(1, 100)
$$
);
Métodos de registro da UI da sala limpa¶
Use os seguintes comandos para registrar uma sala limpa carregada com análises personalizadas no aplicativo da Web de uma Snowflake Data Clean Room na aba Análise personalizada.
provider.add_ui_form_customizations¶
Descrição:: Adiciona personalizações ao formulário de UI para salas limpas que você deseja registrar no aplicativo da Web para seus consumidores. No mínimo, você deve especificar valores para display_name
, description
e methodology
.
As personalizações permitidas são:
type
: Um dos seguintes elementos de UI:boolean
: Seletor verdadeiro/falsointeger
: Use as setas para alterar o númeromultiselect
: Selecione vários itens de um menu suspensodropdown
: Selecione um item de um menu suspensodate
: Seletor de dataany
: Campo de entrada de texto regular
choices
: Lista de opções disponíveis para tipos de menu suspenso e seleção múltipladefault
: Qualquer valor padrãodisplay_name
(obrigatório): Nome de exibição do elemento de UIdescription
(obrigatório): Descrição que aparece sob o nomemethodology
(obrigatório): Descrição de como o consumidor deve usar o formulário para executar uma análise.infoMessage
: Mensagem informativa que é exibida ao passar o mouse sobre um ícone de “i” ao lado do nomesize
: Escolha o tamanho do elemento entreXS
,S
,M
,L
eXL
required
: Indica se o elemento é obrigatório. EspecificarTRUE
ouFALSE
.group
: Coloque o mesmo valor para vários elementos para agrupá-los todos juntos no formulário de UIrender_table_dropdowns
: Controla se as listas suspensas padrão que permitem aos usuários selecionar tabelas aparecem no modelo. Se não for especificado, um menu suspenso será exibido para as tabelas de provedores e consumidores. Se você quiser uma lista suspensa que consista em todas as tabelas de provedor ou consumidor, mas não quiser listá-las, use o parâmetroreferences
.O valor de
render_table_dropdowns
é um dicionário que consiste nas seguintes chaves:render_consumer_table_dropdown
: SeFALSE
, a lista suspensa padrão para tabelas de consumidores fica oculta. O padrão éTRUE
.render_provider_table_dropdown
: SeFALSE
, a lista suspensa padrão para tabelas de provedores fica oculta. O padrão éTRUE
.
Se você ocultar as listas suspensas padrão, poderá usar os argumentos especiais
{{ source_table }}
e{{ my_table }}
no modelo personalizado e, em seguida, definir sua própria lista suspensa com as tabelas desejadas. Para obter mais detalhes sobre o uso dessas variáveis especiais ao definir o modelo personalizado, consulte provider.add_custom_sql_template.references
: cria uma lista suspensa contendo tabelas ou colunas que estão disponíveis na sala limpa. Permite que os usuários selecionem tabelas e colunas ao executar uma análise no aplicativo da web sem precisar especificar cada tabela ou coluna individualmente ao criar a interface do usuário.Ele tem os seguintes valores de cadeia de caracteres possíveis:
PROVIDER_TABLES
: a lista suspensa consiste em todas as tabelas do provedor na sala limpa.CONSUMER_TABLES
: a lista suspensa consiste em todas as tabelas do consumidor na sala limpa.PROVIDER_COLUMN_POLICY
: a lista suspensa consiste nas colunas nas políticas de colunas do provedor, por exemplo, as colunas que podem ser filtradas. Se especificado, você também deve incluir o parâmetroprovider_parent_table_field
para identificar qual tabela de provedor contém as políticas de coluna.PROVIDER_JOIN_POLICY
: a lista suspensa consiste nas colunas nas políticas de junção do provedor, ou seja, as colunas na tabela do provedor que o consumidor pode usar como uma chave de junção. Se especificado, você também deve incluir o parâmetroprovider_parent_table_field
para identificar qual tabela de provedor contém as políticas de junção.CONSUMER_COLUMNS
: a lista suspensa consiste nas colunas nas políticas de junção do consumidor, ou seja, as colunas na tabela do consumidor que o analista pode usar como uma chave de junção. Se especificado, você também deve incluir o parâmetroconsumer_parent_table_field
para identificar qual tabela de consumidor contém as políticas de junção.
provider_parent_table_field
: especifica o nome de um campo UI que permite que um usuário selecione uma tabela de provedor. Obrigatório se o parâmetroreferences
especificarPROVIDER_COLUMN_POLICY
ouPROVIDER_JOIN_POLICY
.Por exemplo, se
a_provider_table
for o nome de um campo de UI que permite ao analista selecionar uma tabela de provedor, então o campo de UI que permite ao usuário selecionar colunas de uma tabela de provedor pode incluir o par nome/valor'provider_parent_table_field': 'a_provider_table'
.consumer_parent_table_field
: especifica o nome de um campo UI que permite que um usuário selecione uma tabela de provedor. Obrigatório se o parâmetroreferences
especificarCONSUMER_COLUMNS
.Por exemplo, se
a_consumer_table
for o nome de um campo de UI que permite ao analista selecionar uma tabela de consumidor, então o campo de UI que permite ao usuário selecionar colunas de uma tabela de consumidor pode incluir o par nome/valor'consumer_parent_table_field': 'a_consumer_table'
.warehouse_hints
: Personalização opcional que controla que tipo de warehouse a conta do consumidor usará para executar análises. Por exemplo, para a maioria dos casos de uso de aprendizado de máquina, a Snowflake recomenda especificar um warehouse otimizado para o Snowpark. Para valores válidos parawarehouse_size
, consulte CREATE WAREHOUSE.
As personalizações visuais são:
measure_columns
: pontos de dados quantitativos que são exibidos na saída. Essas colunas incluem métricas e dimensões que permitem uma análise detalhada dos dados.default_output_type
: o formato no qual os dados serão visualizados. Tipos suportados:TABLE
: exibe dados em formato tabular. Este é o tipo de saída padrão.BAR
: visualiza dados usando gráficos de barras, que são ideais para comparar diferentes categorias.LINE
: usa gráficos de linha para mostrar tendências ao longo do tempo ou dados contínuos.PIE
: representa dados como um gráfico de pizza, adequado para mostrar proporções ou porcentagens.
Entrada: nome do modelo (cadeia de caracteres), descrição do modelo (dicionário), personalizações (dicionário), configuração de saída (dicionário)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.add_ui_form_customizations(
$cleanroom_name,
'prod_custom_template',
{
'display_name': 'Custom Analysis Template',
'description': 'Use custom template to run a customized analysis.',
'methodology': 'This custom template dynamically renders a form for you to fill out, which are then used to generate a customized analysis fitting your request.',
'warehouse_hints': {
'warehouse_size': 'xsmall',
'snowpark_optimized': FALSE
},
'render_table_dropdowns': {
'render_consumer_table_dropdown': false,
'render_provider_table_dropdown': false
}
},
{
'a_provider_table': {
'display_name': 'Provider table',
'order': 3,
'description': 'Provider table selection',
'size': 'S',
'group': 'Seed Audience Selection',
'references': ['PROVIDER_TABLES'],
'type': 'dropdown'
},
'a_provider_col': {
'display_name': 'Provider column',
'order': 4,
'description': 'Which col do you want to count on',
'size': 'S',
'group': 'Seed Audience Selection',
'references': ['PROVIDER_COLUMN_POLICY'],
'provider_parent_table_field': 'a_provider_table',
'type': 'dropdown'
}
},
{
'measure_columns': ['col1', 'col2'],
'default_output_type': 'PIE'
}
);
provider.register_cleanroom_in_ui¶
Descrição: Registra uma sala limpa para uso no aplicativo da Web pelo consumidor. A sala limpa é criada e configurada pelo provedor usando as APIs de desenvolvedor. Este método então o registra no aplicativo da Web para que os consumidores instalem, adicionem suas tabelas e executem quaisquer análises personalizadas que você tenha adicionado sem precisar usar as APIs de desenvolvedor. Eles trabalham com a sala limpa inteiramente por meio da interface do usuário do aplicativo da Web.
Você pode chamar esta API mais de uma vez para incluir vários modelos personalizados no aplicativo da web.
Entrada: cleanroom_name (cadeia de caracteres), template name (cadeia de caracteres), consumer_account_locator (cadeia de caracteres), user_email (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.register_cleanroom_in_ui($cleanroom_name, 'prod_custom_template', <CONSUMER ACCOUNT LOCATOR>, <USER_EMAIL>)
provider.view_ui_registration_request_log¶
Descrição: Exibe a lista de solicitações geradas pela conta para registrar salas limpas no aplicativo da Web. Cada solicitação tem um ID associado que pode ser usado em conjunto com o procedimento view_ui_registration_log
para visualizar o status das solicitações. As solicitações são compartilhadas com o back-end, onde são processadas e a sala limpa é adicionada à sala limpa.
Entrada:
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_ui_registration_request_log();
Métodos de obtenção de metadados de sala limpa¶
Use os seguintes comandos para mostrar as propriedades relevantes da sala limpa.
provider.describe_cleanroom¶
Descrição: Cria um resumo de texto com todas as informações sobre o que foi adicionado à sala limpa, incluindo modelos, conjuntos de dados e políticas.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: Cadeia de caracteres de descrição extensa da sala limpa (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.describe_cleanroom($cleanroom_name);
provider.view_provider_datasets¶
Descrição: Exibe todos os conjuntos de dados que foram adicionados à sala limpa.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: Todos os nomes de conjuntos de dados do provedor na sala limpa (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_provider_datasets($cleanroom_name);
provider.view_join_policy¶
Descrição: Exibe as políticas de junção atualmente ativas na sala limpa.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: A política de junção (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_join_policy($cleanroom_name);
provider.view_added_templates¶
Descrição: Exibe os modelos atualmente ativos na sala limpa.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: Os modelos adicionados (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_added_templates($cleanroom_name);
provider.view_column_policy¶
Descrição: Exibe as políticas de coluna atualmente ativas na sala limpa.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: A política de coluna (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_column_policy($cleanroom_name);
provider.view_consumers¶
Descrição: Exibe os consumidores com os quais a sala limpa foi compartilhada.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: Contas de consumidores com acesso à sala limpa (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_consumers($cleanroom_name);
provider.view_cleanrooms¶
Descrição: Exibe todas as salas limpas criadas recentemente, classificadas pela data em que foram criadas.
Entrada:
Saída: Todas as salas limpas existentes ordenadas pela data de criação (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_cleanrooms();
provider.view_request_logs¶
Descrição: Exibe os logs de solicitação enviados pelos consumidores desta sala limpa.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: Um conjunto de logs registrados das consultas sendo executadas na sala limpa (tabela)
Exemplo:
call samooha_by_snowflake_local_db.provider.view_request_logs($cleanroom_name);
Métodos auxiliares gerais¶
Use os métodos a seguir para ajudar a aproveitar a funcionalidade da sala limpa e os fluxos compatíveis.
provider.grant_reference_usage¶
Descrição: Permite que bancos de dados upstream com dados recebam reference_usage para a sala limpa.
Nota
Este comando deve ser usado somente com o aplicativo da Web.
Esta é uma concessão muito mais limitada do que as que existem em register_db
. O uso deste procedimento é necessário ao adicionar visualizações ou UDTFs que referenciam dados de bancos de dados upstream, mas não permitirá que a função SAMOOHA_APP_ROLE consulte as tabelas reais ou mostre esses bancos de dados no menu suspenso do aplicativo da Web.
Este comando deve ser chamado em bancos de dados com dados usados em exibições vinculadas e UDTFs.
Entrada: database_names (matriz)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.grant_reference_usage(['<DATABASE_NAME>']);
provider.revoke_reference_usage¶
Descrição: Remove bancos de dados da lista de bancos de dados referenciados criados por provider.grant_reference_usage
.
Nota
Este comando deve ser usado somente com o aplicativo da Web.
Entrada: database_names (matriz)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
call samooha_by_snowflake_local_db.provider.revoke_reference_usage(['<DATABASE_NAME>']);
provider.mount_request_logs_for_all_consumers¶
Descrição: dá aos provedores acesso às informações que chegam ao provedor dos consumidores de uma sala limpa.
Entrada: cleanroom_name (cadeia de caracteres)
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
CALL samooha_by_snowflake_local_db.provider.mount_request_logs_for_all_consumers($cleanroom_name);
library.enable_local_db_auto_upgrades¶
Descrição: habilita a tarefa, samooha_by_snowflake_local_db.admin.expected_version_task
, que atualiza automaticamente o Snowflake Native App para Snowflake Data Clean Rooms conforme novas versões são lançadas.
Entrada: nenhuma
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
CALL samooha_by_snowflake_local_db.library.enable_local_db_auto_upgrades();
library.disable_local_db_auto_upgrades¶
Descrição: desabilita a tarefa, samooha_by_snowflake_local_db.admin.expected_version_task
, que atualiza automaticamente o Snowflake Native App para Snowflake Data Clean Rooms conforme novas versões são lançadas.
Entrada: nenhuma
Saída: mensagem de sucesso (cadeia de caracteres)
Exemplo:
CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();