Snowflake Data Clean Rooms: Guia de referência da API do consumidor¶
Esta página descreve os procedimentos usados pelos consumidores de API de clean rooms para gerenciar suas clean rooms. Para obter as instruções de configuração de codificação, consulte Configuração de codificação.
Gerenciamento do acesso à função¶
consumer.grant_run_on_cleanrooms_to_role¶
Descrição: concede à função especificada permissão para executar um subconjunto de procedimentos nas clean rooms especificadas. As clean rooms devem ser instaladas nesta conta, e não criadas por esta conta. (Ou seja, apenas clean rooms para as quais você é um consumidor)
Para conceder uso limitado às suas clean rooms, conceda aos usuários a função especificada em vez de SAMOOHA_APP_ROLE. Saiba mais sobre o acesso à função.
Os procedimentos a seguir podem ser executados usando uma função especificada aqui:
CONSUMER.VIEW_ADDED_TEMPLATES
CONSUMER.VIEW_ADDED_TEMPLATE_CHAINS
CONSUMER.GET_ARGUMENTS_FROM_TEMPLATE
CONSUMER.VIEW_COLUMN_POLICY
CONSUMER.VIEW_CONSUMER_DATASETS
CONSUMER.VIEW_JOIN_POLICY
CONSUMER.VIEW_PROVIDER_COLUMN_POLICY
CONSUMER.VIEW_PROVIDER_DATASETS
CONSUMER.VIEW_PROVIDER_JOIN_POLICY
CONSUMER.VIEW_REMAINING_PRIVACY_BUDGET
CONSUMER.RUN_ANALYSIS
CONSUMER.VIEW_PROVIDER_ACTIVATION_POLICY
CONSUMER.VIEW_ACTIVATION_POLICY
CONSUMER.RUN_ACTIVATION
Argumentos:
cleanroom_names (matriz de cadeia de caracteres) – Nomes de todas as clean rooms às quais será concedido acesso limitado à função especificada.
run_role_name (string) – Nome de uma função que tem permissões limitadas nas clean rooms especificadas. Você deve criar a função antes de chamar esse procedimento.
Retorna: (cadeia de caracteres) – Mensagem de sucesso ou falha.
Exemplo:
CREATE ROLE MARKETING_ANALYST_ROLE;
CALL samooha_by_snowflake_local_db.consumer.grant_run_on_cleanrooms_to_role(
['overlap_cleanroom', 'market_share_cleanroom'],
'MARKETING_ANALYST_ROLE'
);
consumer.revoke_run_on_cleanrooms_from_role¶
Descrição: revoga as permissões das funções especificadas nas clean rooms especificadas. Observe que, se o usuário tiver acesso a uma função não revogada ou tiver SAMOOHA_APP_ROLE, ele ainda poderá executar procedimentos de clean room nas clean rooms especificadas.
Argumentos:
cleanroom_names (matriz de cadeia de caracteres) – Nomes de uma ou mais clean rooms nessa conta.
run_role_name (string) – Nome da função que não deve mais ter permissões limitadas nas clean rooms especificadas nessa conta.
Retorna: (cadeia de caracteres) – Mensagem de sucesso ou falha.
Exemplo:
CALL samooha_by_snowflake_local_db.consumer.revoke_run_on_cleanrooms_from_role(
['overlap_cleanroom', 'market_share_cleanroom'],
'TEMP_USERS_ROLE'
);
Instalação da sala limpa¶
Instale a sala limpa que o provedor compartilhou por meio dos seguintes comandos:
consumidor.install_cleanroom¶
Descrição: instala (une) a clean room criada pelo provedor especificado. Observe que chamar esse procedimento várias vezes limpará a clean room existente a cada vez; se você interromper uma segunda instalação antes que ela seja concluída, a clean room será corrompida e será necessário concluir esse procedimento para tornar a clean room utilizável.
Argumentos:
cleanroom_name (string) – Nome da clean room a ser instalada.
provider_account_locator (string) – Localizador da conta de provedor que criou essa clean room.
Retorna: (string) Mensagem de sucesso.
Exemplo:
call samooha_by_snowflake_local_db.consumer.install_cleanroom($cleanroom_name, $provider_locator);
consumer.is_enabled¶
Descrição: Após a instalação da sala limpa, o provedor leva cerca de 1 minuto para concluir a configuração e habilitá-la. Esta função permite ao usuário verificar o status da sala limpa e ver se ela está habilitada ou não. O sinalizador geralmente muda para Verdadeiro cerca de 1 minuto após a instalação da sala limpa.
Argumentos: cleanroom_name (string)
Retorna: está ativado (boolean)
Exemplo:
call samooha_by_snowflake_local_db.consumer.is_enabled($cleanroom_name);
consumer.uninstall_cleanroom¶
Descrição: desinstala a clean room na conta de consumidor. Isso remove todos os bancos de dados associados à clean room, incluindo o banco de dados da clean room compartilhada. Observe que a clean room sempre pode ser instalada novamente com consumer.install_cleanroom.
Argumentos: cleanroom_name (string)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
Colaboração entre nuvens¶
Instale uma clean room criada em outra região de nuvem. Saiba mais.
library.enable_laf_on_account¶
Descrição: ativa o preenchimento automático entre nuvens na conta atual. Requer a função ACCOUNTADMIN.
Argumentos: nenhum
Retorna: (string) mensagem de sucesso.
Exemplo:
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.library.enable_laf_on_account();
consumer.is_laf_enabled_for_cleanroom¶
Descrição: descreve se o preenchimento automático entre nuvens foi ou não ativado para essa clean room. O preenchimento automático entre nuvens deve ser configurado por um administrador de conta.
Argumentos:
cleanroom_name (string) – Nome da sala limpa.
Devoluções: se o preenchimento automático entre nuvens foi ou não ativado para essa clean room.
Exemplo:
CALL samooha_by_snowflake_local_db.consumer.is_laf_enabled_for_cleanroom($cleanroom_name);
consumer.request_laf_cleanroom¶
Descrição: define os pré-requisitos para a instalação de uma clean room criada em outra região de nuvem. A chamada de consumer.install_cleanroom
antes de chamar esse procedimento falhará. Esse procedimento retorna o status atual sempre que você o chama. Continue chamando periodicamente até que o status retornado seja FULFILLED e, em seguida, chame consumer.install_cleanroom
. Pode levar até 10 minutos para que o status chegue a FULFILLED.
Argumentos:
cleanroom_name (string) – o nome da clean room entre regiões que será instalada.
provider_locator (string) – localizador da conta de provedor que criou essa clean room.
Retorna: (string) mensagem de status da solicitação. Continue chamando até que o status seja FULFILLED.
Exemplo:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.consumer.request_laf_cleanroom(
$cleanroom_name,$provider_locator);
Análise executada pelo provedor¶
Saiba mais sobre a análise executada pelo provedor
library.is_provider_run_enabled¶
Descrição: verifica se essa clean room permite análises executadas pelo provedor. Observação: a aprovação explícita ainda precisa ser dada chamando consumer.enable_templates_for_provider_run
antes que os provedores possam executar uma análise nessa clean room.
Argumentos: cleanroom_name (string)
Retorna: mensagem ativada (string)
Exemplo:
call samooha_by_snowflake_local_db.library.is_provider_run_enabled($cleanroom_name)
consumer.enable_templates_for_provider_run¶
Descrição: concede permissão ao provedor para executar uma análise na clean room solicitada. Isso é chamado depois que o provedor chama provider.enable_provider_run_analysis
para habilitar a análise executada pelo provedor em uma clean room. consumer.enable_templates_for_provider_run
concede ao provedor permissão para executar a análise nos modelos especificados na clean room especificada quantas vezes quiser.
Argumentos:
cleanroom_name (string) – O nome da clean room onde o provedor pode executar análises.
template_names (matriz de cadeia de caracteres) – Uma matriz de nomes de um ou mais modelos na clean room que o provedor pode executar.
enable_differential_privacy (booliano) – Se TRUE, habilita a privacidade diferencial para todos os modelos listados em
template_names
. A privacidade diferencial pode ser ativada para esses modelos somente se a ela estiver ativada para a própria sala limpa. É possível verificar o status de privacidade diferencial de uma sala limpa chamandoconsumer.is_dp_enabled
. Você pode personalizar as configurações de privacidade chamandoconsumer.set_privacy_settings
. Saiba mais.template_configuration (objeto, opcional) – Um objeto opcional para especificar configurações adicionais para cada modelo. Esse objeto contém pares chave-valor, em que a chave é o nome do modelo (de
template_names
) e o valor é um objeto com as seguintes propriedades:warehouse_type
(string) – Um tipo de warehouse permitido que o provedor pode usar com esse modelo. Os valores permitidos são aqueles definidos para WAREHOUSE_TYPE.warehouse_size
(matriz de cadeia de caracteres) – Um ou mais tamanhos de warehouse permitidos que podem ser usados com esse tipo e modelo de warehouse. Os valores permitidos são aqueles definidos para WAREHOUSE_SIZE.
Retorna: (cadeia de caracteres) mensagem de sucesso ou falha.
Exemplos:
-- Simple example
CALL samooha_by_snowflake_local_db.consumer.enable_templates_for_provider_run($cleanroom_name, ['prod_overlap_analysis'], FALSE);
-- Specify warehouse types that the provider can request for each template.
call samooha_by_snowflake_local_db.CONSUMER.enable_templates_for_provider_run(
$cleanroom_name,
[$template1, $template2],
TRUE,
{
$template1: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']},
$template2: {'warehouse_type': 'SNOWPARK-OPTIMIZED', 'warehouse_size': ['MEDIUM', 'XLARGE']},
$template3: {'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'XLARGE']}
});
Análise multiprovedor¶
Esses procedimentos permitem a análise de vários provedores.
consumer.prepare_multiprovider_flow¶
Descrição: envia uma solicitação para executar uma consulta de vários provedores aos provedores das clean rooms especificadas. Esse procedimento não executa de fato a solicitação; ele simplesmente pede permissão ao provedor para executar essa solicitação no futuro, chamando consumer.execute_multiprovider_flow
.
Se um provedor conceder a aprovação, o consumidor poderá executar a consulta chamando consumer.execute_multiprovider_flow
quantas vezes quiser (dependendo de qualquer configuração de privacidade diferencial). Se quiser executar novamente uma consulta aprovada anteriormente após chamar prepare_multiprovider_flow
com novos valores, você ainda deve chamar prepare_multiprovider_flow
com a consulta anterior exata, mas não precisa esperar pela aprovação do provedor antes de executar consumer.execute_multiprovider_flow
.
A solicitação é válida por quatro horas; depois disso, a solicitação será retirada da fila.
Argumentos:
cleanroom_names (matriz de cadeia de caracteres) – Matriz de nomes de clean rooms na conta de consumidor. Essas clean rooms devem ser instaladas.
template_name (string) – Nome do modelo a ser executado em cada uma das clean rooms listadas em
cleanroom_names
. Esse pode ser um modelo fornecido pelo Snowflake adicionado pelo provedor da clean room ou um modelo personalizado que você enviou anteriormente à clean room chamandoconsumer.create_template_request
. Em ambos os casos, o modelo já deve estar presente em uma clean room para que a solicitação seja enviada ao provedor da clean room.arguments (objeto) – Um objeto com os seguintes campos, usado para preencher o modelo:
source_table
(matriz de cadeia de caracteres) – Uma matriz de nomes de tabela usada para preencher a matrizsource_table
disponível para o modelo. A sintaxe para cada nome de tabela écleanroom_name.db.schema.table
. Cada provedor vê apenas suas próprias tabelas de clean room listadas na solicitação.my_table
(Matriz de cadeia de caracteres) – Uma matriz de nomes de tabela de seus próprios dados usados para preencher a matrizmy_table
disponível para o modelo. Use a mesma sintaxe passada ao argumentoconsumer_tables
deconsumer.run_analysis
.Quaisquer outras variáveis de modelo – Passe quaisquer valores necessários para o modelo como pares de chave-valor.
Retorna: (string) ID de solicitação para passar para consumer.execute_multiprovider_flow
.
Exemplo:
CALL samooha_by_snowflake_local_db.consumer.prepare_multiprovider_flow(
[$cleanroom_name_1, $cleanroom_name_2],
'prod_aggregate_data',
object_construct(
'source_table', [
CONCAT($cleanroom_name_1, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'),
CONCAT($cleanroom_name_2, '.SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS')
],
'my_table', ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']),
'hem_col', ['p1.HASHED_EMAIL', 'p2.HASHED_EMAIL'],
'dimensions', ['p1.STATUS', 'p2.STATUS'],
'consumer_join_col', 'HASHED_EMAIL'
)
);
consumer.execute_multiprovider_flow¶
Descrição: executa a consulta mais recente enviada pelo consumidor para consumer.prepare_multiprovider_flow
. O procedimento executa a consulta em cada clean room especificada onde a consulta foi aprovada pelo provedor e retorna a união de todos os resultados de consulta. A execução desse procedimento é a única maneira de saber se um provedor aprovou uma consulta.
Argumentos:
cleanroom_names (matriz de cadeia de caracteres) – Matriz de nomes de clean rooms onde a consulta preparada deve ser executada. Essa matriz deve corresponder à lista completa de clean rooms na solicitação de consulta.
request_id (cadeia de caracteres, opcional) – ID de solicitação retornado por
prepare_multiprovider_flow
.
Retorna: (tabela) união dos resultados de todas as clean rooms aprovadas. Se um provedor nunca tiver aprovado uma consulta desse consumidor, a consulta falhará. No entanto, se um provedor tiver aprovado uma consulta diferente desse consumidor, mas não a consulta mais recente, o procedimento retornará um conjunto de resultados vazio.
Exemplo:
CALL samooha_by_snowflake_local_db.consumer.execute_multiprovider_flow([$cleanroom1, $cleanroom2], $request_id);
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.
consumer.register_db¶
Descrição: Ao adicionar um banco de dados à sala limpa, você pode vincular qualquer conjunto de dados do banco de dados. Se não for chamado, as concessões terão que ser feitas para samooha_app_role individualmente.
Argumentos: db_name (string)
Retorna: mensagem de sucesso (string)
Exemplo:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.consumer.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
.
Argumentos: schema_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
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.
Argumentos: schema_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.register_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.register_objects¶
Descrição: concede à sala limpa acesso a tabelas e exibições de todos os tipos, tornando-as disponíveis para serem vinculadas à sala limpa por meio da chamada de consumer.link_datasets
. É possível registrar grupos mais amplos de objetos chamando library.register_schema
, library.register_managed_access_schema
ou consumer.register_db
.
Argumentos:
object_names (array) – Matriz de nomes de objeto totalmente qualificados. Esses objetos podem então ser conectados à sala limpa.
Retorna: mensagem de sucesso (string)
Exemplos
Para registrar uma tabela e uma exibição:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.register_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS']);
library.enable_external_tables_on_account¶
Descrição: habilita o uso de tabelas Iceberg ou externas em todas as clean rooms dessa conta. Deve ser chamado por um ACCOUNTADMIN em ambas as contas, provedor e consumidor, para permitir que tabelas Iceberg ou externas sejam vinculadas por ambas as contas. Para limitar essa capacidade às clean rooms específicas nessa conta, chame enable_external_tables_for_cleanroom
em vez disso.
Argumentos: nenhum
Retorna: (cadeia de caracteres) mensagem de sucesso ou falha.
Exemplo:
USE ROLE ACCOUNTADMIN;
CALL samooha_by_snowflake_local_db.library.enable_external_tables_on_account();
consumer.enable_external_tables_for_cleanroom¶
Descrição: permite que o consumidor vincule tabelas Iceberg ou externas na clean room especificada nesta conta. Para permitir tabelas Iceberg e externas para todas as clean rooms dessa conta, chame enable_external_tables_on_account
em vez disso.
Argumentos:
cleanroom_name (string) – O nome da clean room à qual o provedor pode vincular as tabelas Iceberg ou externas.
Retorna: (cadeia de caracteres) mensagem de sucesso ou falha. Se for bem-sucedido, ele aciona uma varredura de segurança e também fornece o número do patch que será gerado se a varredura de segurança for bem-sucedida.
Exemplo:
CALL samooha_by_snowflake_local_db.provider.enable_external_tables_for_cleanroom(
$cleanroom_name);
library.register_table_or_view – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.register_objects.
Descrição: registra tabelas e exibições de todos os tipos.
Argumentos: 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 – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.register_objects.
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
.
Argumentos: table_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.library.register_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_table – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.register_objects.
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.
Argumentos: table_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.library.register_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_view – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.register_objects.
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
.
Argumentos: view_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.library.register_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.register_managed_access_view – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.register_objects.
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.
Argumentos: view_name (array)
Retorna: mensagem de sucesso (string)
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.
Argumentos: db_name (string)
Retorna: mensagem de sucesso (string)
Exemplo:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
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
.
Argumentos: schema_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
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.
Argumentos: schema_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_managed_access_schema(['SAMOOHA_SAMPLE_DATABASE.DEMO']);
library.unregister_objects¶
Descrição: revoga o acesso de sala limpa a tabelas e exibições de todos os tipos. Os objetos não estarão mais disponíveis para nenhum usuário em nenhuma sala limpa gerenciada por essa conta.
Argumentos:
object_names (array) – Matriz de nomes de objetos totalmente qualificados para os quais o acesso deve ser revogado.
Retorna: mensagem de sucesso (string)
Exemplos
Para cancelar o registro de uma tabela e de uma exibição:
USE ROLE <ROLE_WITH_MANAGE GRANTS>;
call samooha_by_snowflake_local_db.library.unregister_objects(
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS','SAMOOHA_SAMPLE_DATABASE.INFORMATION_SCHEMA.FIELDS']);
library.unregister_table_or_view – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.unregister_objects.
Descrição: cancela o registro de tabelas e exibições de todos os tipos.
Argumentos: 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 – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.unregister_objects
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
.
Argumentos: table_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_managed_access_table – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.unregister_objects
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).
Argumentos: table_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_managed_access_table(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_view – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.unregister_objects
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
.
Argumentos: view_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
library.unregister_managed_access_view – Obsoleto¶
Atenção
Esse comando está obsoleto. Use library.unregister_objects
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).
Argumentos: view_name (array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.library.unregister_managed_access_view(['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS']);
Vinculação e desvinculação de conjuntos de dados¶
Após o registro de um conjunto de dados, é possível vincular tabelas ou exibições desse conjunto de dados a uma sala limpa específica. Também é possível desvincular uma tabela ou exibição de uma sala limpa específica para remover o acesso a esses dados de sala limpa.
consumer.link_datasets¶
Descrição: vincule uma tabela ou exibição à sala limpa, dando aos modelos dessa sala limpa acesso à tabela, de acordo com as políticas de junção e coluna que você especificar.
Argumentos:
cleanroom_name (string) – Nome da sala limpa para conceder acesso
tables_list (matriz de cadeias de caracteres) – Lista de nomes de tabelas ou exibições totalmente qualificados a serem expostos na sala limpa. Esses objetos devem primeiro ser registrados (disponibilizados para o ambiente de sala limpa) com o método de registro apropriado.
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.consumer.link_datasets($cleanroom_name, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MY_DB.MY_SCH.EXPOSURES']);
consumer.unlink_datasets¶
Descrição: remove o acesso às tabelas ou exibições especificadas na sala limpa especificada para todos os usuários. Isso só funciona para dados fornecidos pelo consumidor.
Argumentos:
cleanroom_name (string) – Nome da sala limpa cujo acesso deve ser removido.
tables_list (matriz de cadeias de caracteres) – Lista de nomes de tabelas ou exibições totalmente qualificados para os quais o acesso deve ser bloqueado.
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.consumer.unlink_datasets($cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS', 'MYDB.MYSCH.EXPOSURES']);
consumer.view_consumer_datasets¶
Descrição: exibe todas as tabelas e exibições vinculadas à sala limpa especificada por qualquer consumidor nessa conta.
Argumentos:
cleanroom_name (string) – Nome da sala limpa.
Retorna: tabela de objetos vinculados à sala limpa especificada, juntamente com o nome da exibição interna da sala limpa para cada objeto.
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_consumer_datasets($cleanroom_name);
Gerenciamento de políticas¶
consumer.set_join_policy¶
Descrição: Especifica em quais colunas o provedor tem permissão para executar uma junção ao executar modelos na sala limpa, quando estiver usando Provider Run Analysis. 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 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.
Argumentos: cleanroom_name(cadeia de caracteres), table_and_col_names(array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.consumer.set_join_policy($cleanroom_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS:HASHED_EMAIL', 'MYDB.MYSCH.EXPOSURES:HASHED_EMAIL']);
consumer.set_column_policy¶
Descrição: Define em quais colunas de dados o provedor 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 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.
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.
Argumentos: cleanroom_name(cadeia de caracteres), analysis_and_table_and_columns(array)
Retorna: mensagem de sucesso (string)
Exemplo:
call samooha_by_snowflake_local_db.consumer.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']);
consumer.view_column_policy¶
Descrição: Exibe todas as políticas de coluna aplicadas à sala limpa pelo consumidor.
Argumentos: cleanroom_name (string)
Retorna: política de coluna (tabela)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_column_policy($cleanroom_name);
consumer.view_provider_column_policy¶
Descrição: Exibe todas as políticas de coluna aplicadas à sala limpa pelo provedor.
Argumentos: cleanroom_name (string)
Retorna: política de coluna (tabela)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
Modelos¶
Os comandos a seguir permitem que os usuários trabalhem com modelos disponíveis na sala limpa.
consumer.view_template_definition¶
Descrição: As definições do modelo de sala limpa estão disponíveis para ajudar a determinar quais parâmetros precisam ser passados ao modelo.
Se um modelo foi ocultado aplicando o argumento is_obfuscated
, você não poderá ver a definição do modelo.
Nota
Observe que todos os procedimentos do Samooha são criptografados e não podem ser visualizados por padrão. No entanto, todos os modelos personalizados que você adicionar ficarão visíveis para você.
Argumentos: cleanroom_name (string), template_name (string)
Retorna: a definição do modelo (string)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_template_definition($cleanroom_name, 'prod_overlap_analysis');
consumer.get_arguments_from_template¶
Descrição: Define como os dados devem ser organizados e quais dados são necessários para cada modelo para garantir que a saída seja facilmente digerível.
Argumentos: cleanroom_name (string), template_name (string)
Retorna: lista de argumentos e especificação (tabela)
Exemplo:
call samooha_by_snowflake_local_db.consumer.get_arguments_from_template($cleanroom_name, 'prod_overlap_analysis');
Encadeamentos de modelos¶
Os comandos a seguir permitem que os usuários trabalhem com cadeias de modelos disponíveis na sala limpa. Para obter informações gerais sobre o uso de cadeias de modelos, consulte Como usar APIs do desenvolvedor para executar modelos sequencialmente.
consumer.view_added_template_chains¶
Descrição: exibe as cadeias de modelos atualmente ativas na sala limpa.
Argumentos: cleanroom_name (string)
Retorna: cadeias de modelos adicionadas (tabela)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_added_template_chains($cleanroom_name);
consumer.view_template_chain_definition¶
Descrição: retorna os atributos de uma cadeia de modelos.
Argumentos: cleanroom_name (string), template_chain_name (string)
Retorna: definição da cadeia de modelos (string)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_template_chain_definition($cleanroom_name, 'insights_chain');
Execução de análises¶
Os comandos a seguir executam uma análise ou ativação específica com base no modelo especificado.
consumer.run_analysis¶
Descrição: executa uma análise usando um modelo ou cadeia de modelos e retorna a tabela de resultados.
Se a privacidade diferencial estiver ativada, a consulta poderá falhar se você tiver atingido o limite de orçamento para esse modelo.
Se um modelo foi ocultado aplicando o argumento is_obfuscated
, você deve usar o Snowflake Enterprise Edition ou superior para poder executar o modelo.
Argumentos:
cleanroom_name (cadeia de caracteres) – Nome da sala limpa que tem o modelo a ser executado.
template_name (cadeia de caracteres) – nome do modelo ou da cadeia de modelos a ser executada na sala limpa.
consumer_tables (matriz de cadeia de caracteres) – matriz de nomes de tabelas de consumidor totalmente qualificados. Elas são atribuídas à variável de modelo
my_table
. Essas tabelas já devem estar vinculadas à sala limpa. Veja as tabelas disponíveis chamandoconsumer.view_consumer_datasets
. Por exemplo, se você passar [“mytable1”,”mytable2”,”mytable3”], o modelo poderá acessar esses valores como{{my_table[0]}}
,{{my_table[1]}}
e{{my_table[2]}}
, respectivamente.provider_tables (matriz de cadeia de caracteres) – Matriz de nomes de tabela de provedor totalmente qualificados. Elas são atribuídas à variável de modelo
source_table
. Essas tabelas já devem estar vinculadas à sala limpa. Veja as tabelas disponíveis chamandoconsumer.view_provider_datasets
. Por exemplo, se você passar [“sourcetable1”,”sourcetable2”,”sourcetable3”], o modelo poderá acessar esses valores como{{source_table[0]}}
,{{source_table[1]}}
e{{source_table[2]}}
, respectivamente.analysis_arguments (objeto) – Um objeto com pares chave-valor passados para o modelo. O modelo pode acessar a variável pelo nome da chave. Se você passar o endereço
{'age': 20}
, o modelo acessará o valor como{{age}}
. Passe um objeto vazio se nenhum valor for necessário. Para ver quais valores são necessários, examine o modelo em questão chamandoconsumer.view_template_definition
. Se estiver fornecendo um nome de coluna, examine o modelo para determinar se você precisa qualificar o nome da coluna com o nome da tabela. Se a tabela tiver como aliasp
ouc
, use aliases de tabela em minúsculasp
ec
para os nomes das colunas. Ou seja,p.age_band
e nãoP.age_band
. Esse objeto tem um valor reservado opcional:epsilon
(float, opcional) – especifica o valor de epsilon para privacidade diferencial, se a privacidade diferencial estiver ativada para essa sala limpa. O padrão é 0.1.
use_cache (booliano, opcional) – Se você deve ou não usar resultados em cache para a mesma consulta. O padrão é FALSE.
Retorna: (tabela) resultados de consulta.
Exemplo:
call samooha_by_snowflake_local_db.consumer.run_analysis(
$cleanroom_name,
'prod_overlap_analysis',
['SAMOOHA_SAMPLE_DATABASE.MYDATA.CONVERSIONS'], -- Consumer tables
['MYDB.MYSCH.EXPOSURES'], -- Provider tables
object_construct(
'max_age', 30
)
);
Ativação¶
Para obter mais informações sobre a ativação de resultados, consulte a visão geral da ativação.
library.view_external_activation_history¶
Descrição: exibe o histórico de solicitações de ativação na conta atual.
Argumentos: nenhum
Retorna: uma tabela com os detalhes e o status das solicitações de ativação.
Exemplo:
call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.view_external_activation_history();
consumer.set_activation_policy¶
Descrição: define quais colunas podem ser usadas nos modelos de ativação. Isso garante que somente as colunas aprovadas pelo consumidor possam ser usadas com o modelo de ativação.
Entrada: cleanroom_name (string), columns (array)
O argumento columns é passado no formato <template_name>:<fully_qualified_table_name>:<column_name>
.
Saída: mensagem de sucesso
Exemplo:
call samooha_by_snowflake_local_db.consumer.set_activation_policy('my_cleanroom', [
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:HASHED_EMAIL',
'prod_overlap_analysis:SAMOOHA_SAMPLE_DATABASE_NAME.DEMO.CUSTOMERS:REGION_CODE' ]);
consumer.approve_provider_activation_consent¶
Descrição: aprova a solicitação do provedor para permitir a ativação do provedor, que é a capacidade de enviar resultados para a conta Snowflake do provedor. Se o provedor não tiver chamado provider.request_provider_activation_consent
nessa clean room com o modelo especificado, esse procedimento falhará.
Entrada: cleanroom_name (string), activation_template_name (string)
Saída: mensagem de sucesso
Exemplo:
call consumer.approve_provider_activation_consent('my_cleanroom', 'activation_my_template');
consumer.run_activation¶
Descrição: executa um modelo que envia os resultados de volta à conta Snowflake do consumidor ou provedor. O argumento consumer_direct_activation
determina se essa é uma ativação de consumidor ou provedor.
Argumentos:
cleanroom_name (string) – Nome da clean room na qual a ativação será executada.
segment_name (string) – Cadeia de caracteres arbitrária usada para rotular as linhas geradas por essa execução de ativação. Cada execução de ativação adiciona novas linhas a uma tabela de resultados existente. Forneça uma cadeia de caracteres exclusiva nesse campo toda vez que você chamar esse procedimento para poder filtrar os resultados para uma execução específica.
template_name (string) – Nome do modelo de ativação a ser chamado.
consumer_tables (matriz de cadeia de caracteres) – Matriz de nomes de tabelas de consumidores totalmente qualificados para passar para o modelo.
provider_tables (matriz de cadeia de caracteres) – Matriz de nomes de tabelas de provedores totalmente qualificados para passar para o modelo.
activation_arguments (objeto) – Conjunto de valores-chave de argumentos a serem passados para o modelo.
consumer_direct_activation (booliano, opcional) – TRUE para enviar os resultados de volta à conta de consumidor, FALSE para enviar os resultados ao provedor. O padrão é FALSE.
Retorna: (string) Mensagem de sucesso se você for bem-sucedido.
Exemplo:
-- Run a consumer activation, as specified by the final TRUE argument.
SET segment_name = 'my_activation_segment';
CALL samooha_by_snowflake_local_db.consumer.run_activation(
$cleanroom_name,
$segment_name,
$template_name,
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'],
object_construct(
'c_join_col', 'c.hashed_email',
'p_join_col', 'p.hashed_email'
),
TRUE);
Modelos definidos pelo consumidor¶
As seguintes APIs permitem que você adicione modelos definidos pelo consumidor a uma sala limpa. Para obter mais informações, consulte Usando a API do desenvolvedor para adicionar modelos definidos pelo consumidor.
consumer.create_template_request¶
Descrição: envia uma solicitação ao provedor de uma clean room, pedindo que ele aprove um modelo personalizado para que possa ser adicionado à clean room. Consulte Usando a API do desenvolvedor para adicionar modelos definidos pelo consumidor.
Argumentos:
cleanroom_name (cadeia de caracteres) – Nome da sala limpa à qual este modelo é aplicado.
template_name (cadeia de caracteres) – Nome do modelo. Devem ser todas letras minúsculas, números, espaços ou sublinhados. Os modelos de ativação devem ter um nome que comece com «activation».
template_definition (string) – O modelo JinjaSQL. Aprenda a sintaxe do modelo
Retorna: mensagem de sucesso (string)
Exemplo:
CALL samooha_by_snowflake_local_db.consumer.create_template_request('dcr_cleanroom',
'my_analysis',
$$
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 %};
$$);
consumer.get_sql_jinja¶
Descrição: avalia um modelo JinjaSQL para uma instrução SQL válida. Esse procedimento pode processar apenas instruções JinjaSQL padrão; ele não pode processar extensões de clean room para JinjaSQL, como join_policy
ou column_policy
.
Argumentos:
template_string (string) – O modelo a ser processado. Somente o JinjaSQL padrão é compatível.
arguments (objeto) – Um objeto em que os nomes de campo correspondem às variáveis usadas no modelo e os valores são inseridos nos espaços reservados para as variáveis correspondentes no modelo da consulta gerada.
Retorna: (string) a instrução SQL gerada pelo modelo enviado com os valores de variáveis fornecidos.
Exemplo:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.CONSUMER.GET_SQL_JINJA(
$$
SELECT COUNT(*), IDENTIFIER({{ group_by_col }})
FROM IDENTIFIER({{ my_table | sqlsafe }})
INNER JOIN IDENTIFIER({{ source_table | sqlsafe }})
ON IDENTIFIER({{ consumer_join_col }}) = IDENTIFIER({{ provider_join_col }})
GROUP BY IDENTIFIER({{ group_by_col }});
$$,
object_construct(
'group_by_col', 'city',
'consumer_join_col', 'hashed_email',
'provider_join_col', 'hashed_email',
'my_table', 'mydb.mysch.t1',
'source_table', 'mydb.mysch.t2'));
Resposta:
SELECT COUNT(*), IDENTIFIER('city')
FROM IDENTIFIER(mydb.mysch.t1)
INNER JOIN IDENTIFIER(mydb.mysch.t2)
ON IDENTIFIER('hashed_email') = IDENTIFIER('hashed_email')
GROUP BY IDENTIFIER('city');
consumer.generate_python_request_template¶
Descrição: gera um modelo de sala limpa para o consumidor que inclui código Python personalizado. O modelo gerado inclui seu código Python e um espaço reservado para seu modelo JinjaSQL. Passe seu modelo final para consumer.create_template_request
.
Saiba mais sobre modelos definidos pelo consumidor.
Argumentos:
function_name (string) – O nome da função Python que o modelo SQL deve chamar para executar a função.
arguments (matriz de cadeia de caracteres) – Lista de argumentos para sua função Python, em que cada argumento é um par de cadeia de caracteres delimitado por espaço no formato «<argument_name> <argument_type>». Por exemplo:
['data variant', 'scale integer']
.packages (matriz de cadeia de caracteres) – Matriz de nomes de pacote necessários para o seu código Python. Se não houver, especifique uma matriz vazia. Exemplo:
['pandas','numpy']
.imports (matriz de cadeias de caracteres) – Quaisquer bibliotecas Python personalizadas necessárias para o código Python. Deve ser uma matriz de zero ou mais endereços de estágio. Exemplo:
['@db.schema.stage/my_python_sproc.py']
rettype (string) – O tipo de retorno SQL de sua função. Exemplos:
'integer'
,'varchar'
.handler (string) – O nome da função principal do manipulador em seu código Python. Normalmente, isso é
'main'
.code (string) – Sua implementação de código Python. Se você incluir uma importação e o manipulador designado for definido dentro de uma importação, isso poderá ser uma cadeia de caracteres vazia.
Retorna: modelo Python gerado (string). Substitua o espaço reservado pelo seu código SQL.
Exemplo:
Chame a função auxiliar com um exemplo trivial em Python.
call SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.CONSUMER.GENERATE_PYTHON_REQUEST_TEMPLATE(
'my_func', // SQL should use this name to call your function
['data variant', 'index integer'], // Arguments and types for the function
['pandas', 'numpy'], // Standard libraries used
[], // No custom libraries needed.
'integer', // Return type integer
'main', // Standard main handler
// Python implementation as UDF
$$
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)
$$
);
Aqui está a resposta à chamada anterior. Insira seu JinjaSQL conforme indicado no espaço reservado e passe-o para consumer.create_template_request
.
BEGIN
-- First define the Python UDF
CREATE OR REPLACE FUNCTION CLEANROOM.my_func(data variant, index integer)
RETURNS integer
LANGUAGE PYTHON
RUNTIME_VERSION = 3.10
PACKAGES = ('pandas', 'numpy')
HANDLER = 'main'
AS '
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)
';
-- Then define and execute the SQL query
LET SQL_TEXT varchar := '<INSERT SQL TEMPLATE HERE>';
-- Execute the query and return the result
LET RES resultset := (EXECUTE IMMEDIATE :SQL_TEXT);
RETURN TABLE(RES);
END;
consumer.list_template_requests¶
Descrição: lista as solicitações que o consumidor fez para adicionar um modelo a uma clean room.
Argumentos: cleanroom_name (string)
Retorna: request_id(cadeia de caracteres), provider_identifier(cadeia de caracteres), template_name(cadeia de caracteres), template_definition(cadeia de caracteres), request_status(cadeia de caracteres), reason(cadeia de caracteres)
Exemplo:
CALL samooha_by_snowflake_local_db.consumer.list_template_requests('dcr_cleanroom');
Métodos de obtenção de metadados de sala limpa¶
Os métodos a seguir mostram as propriedades relevantes da sala limpa:
consumer.describe_cleanroom¶
Descrição: cria um resumo de texto contendo todas as informações sobre o que foi adicionado à clean room, incluindo modelos, conjuntos de dados, políticas e assim por diante. Se um modelo foi ocultado aplicando o argumento is_obfuscated
, você deve usar o Snowflake Enterprise Edition ou superior para poder ver o nome do modelo.
Argumentos: cleanroom_name(cadeia de caracteres)
Retorna: cadeia de caracteres de descrição extensa da sala limpa (tabela)
Exemplo:
call samooha_by_snowflake_local_db.consumer.describe_cleanroom($cleanroom_name);
consumer.view_provider_datasets¶
Descrição: Exibe todos os conjuntos de dados adicionados à sala limpa pelo provedor.
Argumentos: cleanroom_name(cadeia de caracteres)
Retorna: todos os nomes de conjuntos de dados do provedor na sala limpa (tabela)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_provider_datasets($cleanroom_name);
consumer.view_join_policy¶
Descrição: Descreve quais colunas os usuários podem unir com segurança em uma sala limpa, definidas pelo consumidor nos conjuntos de dados do consumidor.
Argumentos: cleanroom_name (string)
Retorna: política de junção (tabela)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_join_policy($cleanroom_name);
consumer.view_provider_join_policy¶
Descrição: Descreve quais colunas os usuários podem unir com segurança em uma sala limpa, definidas pelo provedor nos conjuntos de dados do provedor.
Argumentos: cleanroom_name (string)
Retorna: política de junção (tabela)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
consumer.view_added_templates¶
Descrição: visualiza todos os modelos ativos na clean room. Se um modelo foi ocultado aplicando o argumento is_obfuscated
, você deve usar o Snowflake Enterprise Edition ou superior para poder visualizar o modelo.
Argumentos: cleanroom_name (string)
Retorna: modelos adicionados (tabela)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_added_templates($cleanroom_name);
biblioteca.is_consumer_run_enabled¶
Descrição: verifica se essa clean room tem a análise de execução do consumidor ativada. Esse sinalizador determina se o consumidor da clean room (instalador) pode executar uma análise nessa clean room.
Argumentos: cleanroom_name (string)
Retorna: mensagem ativada (string)
Exemplo:
CALL samooha_by_snowflake_local_db.library.is_consumer_run_enabled($cleanroom_name);
consumer.view_cleanrooms¶
Descrição: mostra todas as salas limpas associadas (instaladas) ou que podem ser associadas por essa conta. Para ver apenas as clean rooms instaladas, execute consumer.view_installed_cleanrooms
.
Argumentos: nenhum
Retorna: (tabela) Todas as clean rooms instaladas ou convidadas para essa conta.
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_cleanrooms();
consumer.view_installed_cleanrooms¶
Descrição: lista todas as clean rooms instaladas (unidas) nessa conta. Para ver as clean rooms unidas e não unidas, chame consumer.view_cleanrooms
. Para ver todas as clean rooms criadas nessa conta, acesse provider.view_cleanrooms
.
Argumentos: nenhum
Retorna: (tabela) as clean rooms instaladas nessa conta.
Exemplo:
CALL samooha_by_snowflake_local_db.consumer.view_installed_cleanrooms();
Privacidade diferencial¶
Esses comandos controlam a privacidade diferencial na sala limpa. Você também pode especificar a privacidade diferencial no nível do modelo ao chamar consumer.enable_templates_for_provider_run
.
Saiba mais sobre como gerenciar a privacidade diferencial.
consumer.is_dp_enabled¶
Descrição: Verifica se a privacidade diferencial foi habilitada na sala limpa.
Argumentos: cleanroom_name(cadeia de caracteres)
Retorna: se a sala limpa tem DP ativado (boolean)
Exemplo:
call samooha_by_snowflake_local_db.consumer.is_dp_enabled($cleanroom_name);
consumer.view_remaining_privacy_budget¶
Descrição: Exibe o orçamento de privacidade restante que pode ser usado para fazer consultas na sala limpa. Uma vez esgotadas, outras chamadas para run_analysis não serão permitidas até que o orçamento seja redefinido. O orçamento é redefinido diariamente.
SELECT cleanroom_name FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE is_already_installed = TRUE;
Argumentos: cleanroom_name (string)
Retorna: orçamento de privacidade restante (float)
Exemplo:
call samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
consumer.set_privacy_settings¶
Descrição: define as configurações de privacidade para análises executadas pelo provedor (incluindo ativação) que usam modelos personalizados. Apaga todos os valores definidos anteriormente. Cada vez que você chama esse método, ele apaga todas as definições de configuração anteriores.
Argumentos:
cleanroom_name (string) – Nome da clean room onde essas configurações devem ser aplicadas.
privacy_settings (string) – Um objeto do tipo cadeia de caracteres JSON que especifica as configurações de privacidade quando os modelos personalizados são executados por um provedor. Aqui está a sintaxe do objeto:
'{ "null" : <template_config> }'
template_config
é um objeto com configurações diferenciadas de privacidade e agregação. Consulte Configurações de privacidade disponíveis para ver quais campos você pode fornecer nesse objeto.
Exemplo:
-- Apply differential privacy for provider-run analysis using all custom templates.
CALL samooha_by_snowflake_local_db.consumer.set_privacy_settings(
$cleanroom_name,
PARSE_JSON('{
"null":{ "differential": 1, "epsilon": 0.1, "privacy_budget": 3 }
}')
);
Retorna: uma mensagem de sucesso em forma de cadeia de caracteres.
Comandos do Snowpark Container Services¶
Leia mais sobre o uso do Snowpark Container Services em suas clean rooms.
consumer.start_or_update_service¶
Descrição: cria e inicia a versão mais recente do SPCS definida pelo provedor nesta clean room. Sempre que o provedor chamar provider.load_service_into_cleanroom
para criar ou atualizar um contêiner, o consumidor deverá chamar consumer.start_or_update_service
para atualizar o serviço.
O consumidor deve definir e iniciar o pool antes de chamar esse procedimento.
Argumentos:
cleanroom_name (string) – Nome da clean room onde o contêiner deve ser carregado.
compute_pool_name (string) – O nome de um pool de computação definido pelo consumidor nessa clean room. O pool já deve ter sido criado e a clean room deve ter privilégios para acessar o pool.
service_options (objeto, opcional) – Um objeto que especifica parâmetros para esse serviço. As seguintes propriedades são compatíveis:
query_warehouse
– (cadeia de caracteres, opcional) Nome do warehouse a ser usado para esse serviço. Não precisa ser o mesmo warehouse que administra a clean room.min_instances
– (Inteiro, opcional) número mínimo de instâncias a serem usadas para esse serviço.max_instances
– (Inteiro, opcional) número mínimo de instâncias a serem usadas para esse serviço.
Retorna: (tabela) resultados do carregamento, se bem-sucedido. Gera um erro se não for bem-sucedido.
Exemplo:
CALL samooha_by_snowflake_local_db.consumer.start_or_update_service(
$cleanroom_name,
'dcr_lal_pool',
object_construct(
'query_warehouse', 'app_wh',
'min_instances', '1',
'max_instances', '1'
));
Métodos auxiliares gerais¶
Use os métodos a seguir para ajudar na funcionalidade geral da sala limpa.
consumer.set_cleanroom_ui_accessibility¶
Descrição: mostra ou oculta salas limpas no aplicativo da Web para consumidores na conta corrente.
Argumentos:
cleanroom_name(cadeia de caracteres) – O nome da sala limpa.
visibility_status(cadeia de caracteres) – Um dos seguintes valores que diferenciam maiúsculas de minúsculas:
HIDDEN – Oculta a sala limpa especificada no aplicativo da Web de todos os usuários da conta de consumidor atual. A sala limpa ainda estará acessível por meio de chamadas de API.
EDITABLE – Torna a sala limpa visível no aplicativo da Web.
Retorna: mensagem de sucesso (string)
Exemplo:
CALL samooha_by_snowflake_local_db.consumer.set_cleanroom_ui_accessibility($cleanroom_name, 'HIDDEN');
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.
Argumentos: nenhum
Retorna: mensagem de sucesso (string)
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.
Argumentos: nenhum
Retorna: mensagem de sucesso (string)
Exemplo:
CALL samooha_by_snowflake_local_db.library.disable_local_db_auto_upgrades();