Usar modelos de consulta
Os modelos de consulta de data clean room do BigQuery aceleram o tempo até a geração de insights e oferecem camadas extras de segurança e controle para minimizar problemas de exfiltração de dados. Ao pré-definir e limitar as consultas que podem ser executadas em data clean rooms, você pode fazer o seguinte:
Ajude a evitar o vazamento de dados sensíveis. Quando os assinantes que executam consultas em uma clean room têm mais flexibilidade para explorar, os proprietários de dados sentem que há um risco maior de exposição acidental ou intencional de informações sensíveis.
Simplifique a integração e a adoção para usuários com menos experiência técnica. Muitos provedores de dados esperam que os assinantes das clean rooms tenham menos proficiência técnica, principalmente na escrita de consultas SQL com foco na privacidade e na compreensão de como alocar orçamentos de privacidade de maneira adequada.
Garantir resultados analíticos consistentes para assinantes de dados. Fica mais difícil aplicar regras específicas de análise de dados e verificar a conformidade com os regulamentos de privacidade quando não há como controlar as consultas executadas em uma data clean room.
Com os modelos de consulta, os proprietários e colaboradores de dados podem criar consultas predefinidas e aprovadas, especificamente adaptadas aos casos de uso da data clean room, e publicar essas consultas para consumo pelos assinantes. As consultas predefinidas usam funções com valor de tabela (TVFs) no BigQuery para permitir que uma tabela inteira ou campos específicos sejam transmitidos como parâmetros de entrada e retornem uma tabela como saída.
Limitações
- Os modelos de consulta só aceitam um máximo de duas referências de dados: os dados usados para definir a consulta da TVF e a entrada de parâmetro de dados aceita pela TVF.
- Várias tabelas ou visualizações podem ser referenciadas na definição de consulta da TVF, mas todas precisam pertencer ao mesmo proprietário ou parte de dados.
- As TVFs de modelo de consulta só são compatíveis com os tipos fixos
TABLE
eVIEW
. - As definições de modelo de consulta estão sujeitas às mesmas limitações das TVFs.
Antes de começar
Ative a API Analytics Hub no seu projeto Google Cloud seguindo estas etapas:
Console
Acesse a página da API Analytics Hub.
Na barra de ferramentas do console Google Cloud , selecione seu projeto.
Se a API ainda não estiver ativada, clique em Ativar.
bq
Execute o comando gcloud services enable
:
gcloud services enable analyticshub.googleapis.com
Funções exigidas
Para receber as permissões necessárias para realizar as tarefas neste documento, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Criar ou excluir uma TVF em uma data clean room:
-
Editor do Analytics Hub (
roles/analyticshub.publisher
) no projeto -
Assinante do Analytics Hub (
roles/analyticshub.subscriber
) no projeto
-
Editor do Analytics Hub (
-
Autorizar uma TVF:
Proprietário de dados do BigQuery (
roles/bigquery.dataOwner
) no projeto -
Adicionar, atualizar ou excluir uma ficha de TVF em uma data clean room:
-
Editor do Analytics Hub (
roles/analyticshub.publisher
) no projeto -
Assinante do Analytics Hub (
roles/analyticshub.subscriber
) no projeto
-
Editor do Analytics Hub (
-
Crie um modelo de consulta:
-
Editor do Analytics Hub (
roles/analyticshub.publisher
) no projeto -
Assinante do Analytics Hub (
roles/analyticshub.subscriber
) no projeto
-
Editor do Analytics Hub (
-
Aprovar um modelo de consulta:
-
Editor do Analytics Hub (
roles/analyticshub.publisher
) no projeto -
Proprietário de dados do BigQuery (
roles/bigquery.dataOwner
) no projeto
-
Editor do Analytics Hub (
-
Inscrever-se em uma data clean room com modelos de consulta:
-
Assinante do Analytics Hub (
roles/analyticshub.subscriber
) no projeto -
Proprietário da assinatura do Analytics Hub (
roles/analyticshub.subscriptionOwner
) no projeto em que você quer se inscrever na data clean room
-
Assinante do Analytics Hub (
-
Execute as consultas definidas nos modelos de consulta:
-
Leitor de dados do BigQuery (
roles/bigquery.dataViewer
) no projeto -
Usuário do BigQuery (
roles/bigquery.user
) no projeto
-
Leitor de dados do BigQuery (
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para executar as tarefas neste documento. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para executar as tarefas neste documento:
-
Criar ou excluir uma TVF em uma data clean room:
-
bigquery.routines.create
no projeto -
bigquery.routines.update
no projeto -
bigquery.routines.delete
no projeto
-
-
Autorize uma TVF:
bigquery.datasets.update
nos conjuntos de dados que a rotina acessa -
Crie um modelo de consulta:
-
analyticshub.listings.subscribe
no projeto -
analyticshub.queryTemplates.create
no projeto
-
-
Aprovar um modelo de consulta:
-
bigquery.routines.create
no projeto -
bigquery.datasets.update
nos conjuntos de dados acessados pela rotina -
analyticshub.listings.create
no projeto -
analyticshub.queryTemplates.approve
no projeto
-
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Adicionar uma TVF a uma data clean room
É possível adicionar uma TVF a uma data clean room usando a API Analytics Hub.
Use o
método projects.locations.dataExchanges.listings.create
.
O exemplo a seguir mostra como chamar o
método projects.locations.dataExchanges.listings.create
usando o comando curl
:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/listings?listingId=LISTING_ID -d '{"bigqueryDataset":{"dataset":"projects/PROJECT_ID/datasets/DATASET_ID","selectedResources":[{"routine":"projects/PROJECT_ID/datasets/DATASET_ID/tables/ROUTINE_ID"}],},"displayName":LISTING_NAME"}'
Substitua:
DCR_PROJECT_ID
: o ID do projeto em que a data clean room foi criada.PROJECT_ID
: o ID do projeto que continha o conjunto de dados de origem.DATASET_ID
: o ID do conjunto de dados de origem.LOCATION
: o local da data clean room.CLEAN_ROOM_ID
: o ID da data clean room.LISTING_ID
: o ID da ficha da empresa.LISTING_NAME
: o nome da ficha da empresa.ROUTINE_ID
: o ID da rotina.
Funções de modelo de consulta
Há três papéis principais para usar modelos de consulta de data clean room. Cada função tem fluxos de trabalho específicos, que são descritos mais adiante neste documento.
Criador de modelos: um usuário que define as consultas a serem executadas na data clean room. Essa função é análoga a qualquer uma das seguintes funções: Administrador do Analytics Hub, Editor do Analytics Hub ou Administrador de fichas do Analytics Hub. Para mais informações, consulte Fluxos de trabalho do criador de modelos.
Aprovador de modelo: o proprietário dos dados que precisa aprovar as referências do modelo de consulta antes que ele fique disponível para uso. Essa função é análoga a qualquer uma das seguintes funções: Administrador do Analytics Hub, Editor do Analytics Hub ou Administrador de fichas do Analytics Hub. Para mais informações, consulte Fluxos de trabalho de aprovação de modelos.
Assinante do modelo: um usuário que assina a data clean room e só pode executar as consultas aprovadas no modelo. Esse papel é análogo ao papel de Assinante do Analytics Hub. Para mais informações, consulte Fluxos de trabalho de assinante de modelo.
Fluxos de trabalho do criador de modelos
Como criador de modelos de consulta, você pode fazer o seguinte:
- Crie um modelo de consulta.
- Atualizar um modelo de consulta.
- Envie um modelo de consulta para análise.
- Exclua um modelo de consulta.
Adicionar uma ficha da empresa a uma data clean room
Antes de criar um modelo de consulta, é necessário adicionar dados a uma data clean room. Para criar uma listagem na data clean room, siga estas etapas:
Acesse a página Compartilhamento (Analytics Hub).
Clique no nome de exibição da data clean room em que você quer criar o modelo de consulta.
Clique em Adicionar dados e siga as etapas para criar uma visualização com regras de análise configuradas. Para instruções detalhadas, consulte Criar uma ficha (adicionar dados).
- Para adicionar dados de terceiros, compartilhe a clean room com outro colaborador de confiança. Esse colaborador também precisa adicionar dados à clean room para se qualificar para uso em um modelo de consulta.
Defina os controles de saída de dados para a listagem.
Defina os controles de metadados para a página de detalhes. Se você quiser compartilhar apenas os esquemas e as descrições dos dados adicionados na etapa anterior (e não os dados compartilhados em si), selecione Excluir acesso às informações do conjunto de dados vinculado.
Revise os detalhes da página.
Clique em Adicionar dados. Os metadados da visualização criada para seus dados agora são adicionados à clean room.
Criar um modelo de consulta
Selecione uma das seguintes opções:
Console
Acesse a página Compartilhamento (Analytics Hub).
Clique no nome de exibição da data clean room em que você quer criar o modelo de consulta.
Na data clean room, acesse a guia Modelos.
Clique em Criar modelo.
Insira um nome e uma descrição para o modelo.
Clique em Próxima.
É possível conferir os esquemas das visualizações adicionadas à clean room e propor uma definição de consulta.
- Defina a consulta usando a sintaxe
CREATE TABLE FUNCTION
compatível. Transmita toda a tabela ou visualização com definições fixas. Você precisa definir o caminho completo da tabela, incluindo o ID do projeto e do conjunto de dados, com base nos dados adicionados à data clean room. Exemplo:
query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
Se você aplicou regras de análise de privacidade aos dados, verifique se essa TVF inclui sintaxe SQL específica da privacidade, por exemplo,
SELECT WITH AGGREGATION_THRESHOLD
.
- Defina a consulta usando a sintaxe
Revise os detalhes do modelo.
Para salvar o modelo sem enviar para revisão, clique em Salvar. O modelo de consulta agora tem o status RASCUNHO.
Você pode atualizar o modelo de consulta ou enviar o modelo para análise.
API
O exemplo a seguir mostra como criar um modelo de consulta com um comando CURL
:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID -d 'query_template { name: "query_template1", display_name: "query_template1", routine { definition_body: "QUERY_TEMPLATE_ID(TVF arguments) AS (TVF_DEFINITION)" } }'
Substitua:
DCR_PROJECT_ID
: o ID do projeto em que a data clean room foi criada.LOCATION
: o local da data clean room.CLEAN_ROOM_ID
: o ID da data clean room.QUERY_TEMPLATE_ID
: o ID do modelo de consulta.TVF_DEFINITION
: a definição da TVF.
O exemplo de código a seguir mostra um exemplo de definition_body
para a chamada de API.
Você precisa definir o caminho completo da tabela, incluindo o ID do projeto e do conjunto de dados, com base nos dados adicionados à data clean room.
query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
O definition_body
é análogo à definição de uma rotina. O definition_body
anterior é traduzido para a seguinte rotina:
CREATE OR REPLACE TABLE FUNCTION <approvers_dataset>.query_template1(t1 TABLE, y INT64)
AS (SELECT * FROM t1 WHERE year > y)
Você pode atualizar o modelo de consulta ou enviar o modelo para análise.
Atualizar um modelo de consulta
Só é possível atualizar um modelo de consulta se ele estiver no status RASCUNHO. Se o modelo de consulta já foi enviado para revisão, não é mais possível modificá-lo.
Para atualizar um modelo de consulta, selecione uma das seguintes opções:
Console
Acesse a página Compartilhamento (Analytics Hub).
Clique no nome de exibição da data clean room que contém o modelo de consulta.
Na data clean room, acesse a guia Modelos.
Na linha do modelo que você quer atualizar, clique em Ações > Editar modelo.
Atualize os detalhes do modelo e a definição da consulta conforme necessário.
Clique em Próxima.
Revise o modelo de consulta e clique em Salvar para salvar as mudanças sem enviar o modelo para revisão.
API
O exemplo a seguir mostra como atualizar um modelo de consulta com um comando CURL
:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X PATCH https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID?updateMask=display_name -d 'query_template { display_name: "query_template1" }'
Substitua:
DCR_PROJECT_ID
: o ID do projeto em que a data clean room foi criada.LOCATION
: o local da data clean room.CLEAN_ROOM_ID
: o ID da data clean room.QUERY_TEMPLATE_ID
: o ID do modelo de consulta.
Enviar um modelo de consulta para análise
Selecione uma das seguintes opções:
Console
Acesse a página Compartilhamento (Analytics Hub).
Clique no nome de exibição da data clean room que contém o modelo de consulta.
Na data clean room, acesse a guia Modelos.
Na linha do modelo que você quer enviar para análise, clique em Ações > Enviar para análise. O modelo agora tem o status Precisa de revisão.
API
O exemplo a seguir mostra como enviar um modelo de consulta para revisão com um comando
CURL
:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID:submit
Substitua:
DCR_PROJECT_ID
: o ID do projeto em que a data clean room foi criada.LOCATION
: o local da data clean room.CLEAN_ROOM_ID
: o ID da data clean room.QUERY_TEMPLATE_ID
: o ID do modelo de consulta.
Excluir um modelo de consulta
Só é possível excluir um modelo de consulta se ele estiver no status RASCUNHO. Se o modelo de consulta já tiver sido enviado para revisão, não será mais possível excluí-lo.
Selecione uma das seguintes opções:
Console
Acesse a página Compartilhamento (Analytics Hub).
Clique no nome de exibição da data clean room que contém o modelo de consulta.
Na data clean room, acesse a guia Modelos.
Na linha do modelo que você quer excluir, clique em Ações > Excluir modelo.
API
O exemplo a seguir mostra como excluir um modelo de consulta com um comando CURL
:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X DELETE https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID
Substitua:
DCR_PROJECT_ID
: o ID do projeto em que a data clean room foi criada.LOCATION
: o local da data clean room.CLEAN_ROOM_ID
: o ID da data clean room.QUERY_TEMPLATE_ID
: o ID do modelo de consulta.
Fluxos de trabalho de aprovação de modelo
Como aprovador de modelos de consulta, você pode aprovar um modelo de consulta.
Quando uma TVF faz referência a dados que não são seus (por exemplo, os dados de outro colaborador), o modelo de consulta só pode ser aprovado pelo proprietário desses dados. Se você estiver criando uma TVF que faz referência apenas aos seus dados (para compartilhamento em uma direção), poderá aprovar o modelo de consulta por conta própria.
Aprovar um modelo de consulta
Selecione uma das seguintes opções:
Console
Acesse a página Compartilhamento (Analytics Hub).
Clique no nome de exibição da data clean room que contém o modelo de consulta.
Na data clean room, acesse a guia Modelos.
Na linha do modelo que precisa da sua revisão, clique em Status de aprovação > Precisa de revisão.
Clique em Aprovar.
Selecione o local do modelo. É aqui que a TVF é criada para compartilhamento.
Revise o modelo de consulta proposto.
Clique em Aprovar se o modelo de consulta for aprovado para uso na data clean room.
API
Crie a rotina com base no modelo de consulta usando uma chamada
jobserver.query
:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://bigquery.googleapis.com/bigquery/v2/projects/ROUTINE_PROJECT_ID/queries --data '{"query":"ROUTINE_CREATION_QUERY","useLegacySql":false}'
Substitua:
ROUTINE_PROJECT_ID
: o ID do projeto em que a rotina foi criada.ROUTINE_CREATION_QUERY
: a consulta para criar a rotina.
Adicione a rotina criada à data clean room:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/listings?listingId=LISTING_ID -d '{"bigqueryDataset":{"dataset":"projects/PROJECT_ID/datasets/DATASET_ID","selectedResources":[{"routine":"projects/PROJECT_ID/datasets/DATASET_ID/tables/ROUTINE_ID"}],},"displayName":"LISTING_NAME"}'
Substitua:
DCR_PROJECT_ID
: o ID do projeto em que a data clean room foi criada.LOCATION
: o local da data clean room.CLEAN_ROOM_ID
: o ID da data clean room.LISTING_ID
: o ID da ficha da empresa.PROJECT_ID
: o ID do projeto que continha o conjunto de dados de origem.DATASET_ID
: o ID do conjunto de dados de origem.ROUTINE_ID
: o ID da rotina.LISTING_NAME
: o nome da ficha da empresa.
Atualize o status do modelo de consulta para
APPROVED
:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID:approve --data '{}'
Substitua:
DCR_PROJECT_ID
: o ID do projeto em que a data clean room foi criada.LOCATION
: o local da data clean room.CLEAN_ROOM_ID
: o ID da data clean room.QUERY_TEMPLATE_ID
: o ID do modelo de consulta.
Rejeitar um modelo de consulta
No console Google Cloud , é possível rejeitar um modelo de consulta das seguintes maneiras:
- Não aprove a revisão do modelo de consulta enviado.
- Exclua o modelo de consulta para removê-lo da sala limpa.
Modelos de fluxos de trabalho de inscritos
Um assinante de modelo de consulta pode ver e se inscrever em uma data clean room. Se apenas o modelo de consulta for adicionado à clean room, a assinatura dela só vai conceder acesso à TVF correspondente, não aos dados compartilhados subjacentes.
Inscrever-se em um modelo de consulta
Selecione uma das seguintes opções:
Console
Para se inscrever em um modelo de consulta, inscreva-se na data clean room. O acesso é concedido a todas as listagens que têm a configuração Excluir acesso à listagem do conjunto de dados vinculado desativada.
Para se inscrever em um modelo de consulta, siga estas etapas:
Acessar a página do BigQuery.
Navegue até o conjunto de dados vinculado que você criou ao assinar a clean room.
Abra a rotina ou a TVF compartilhada no conjunto de dados vinculado.
Clique em Invocar função da tabela.
Substitua o parâmetro pela entrada aceita, que é o nome da tabela ou do campo.
Clique em Executar.
Se não for possível ver a TVF aninhada como um elemento filho do conjunto de dados vinculado no painel Explorador, consulte a TVF diretamente no conjunto de dados vinculado:
SELECT * FROM `myproject.dcr_linked_dataset.mytvf`(TABLE myTable);
API
Use o
método projects.locations.dataExchanges.subscribe
.
O exemplo a seguir mostra como chamar o método projects.locations.dataExchanges.subscribe
usando o comando curl
:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID:subscribe --data '{"destination":"projects/SUBSCRIBER_PROJECT_ID/locations/LOCATION","subscription":"SUBSCRIPTION"}'
Substitua:
DCR_PROJECT_ID
: o ID do projeto em que a data clean room foi criada.LOCATION
: o local da data clean room.CLEAN_ROOM_ID
: o ID da data clean room.SUBSCRIBER_PROJECT_ID
: o ID do projeto do assinante.SUBSCRIPTION
: o nome da sua assinatura.
Depois de assinar o modelo de consulta, você pode consultar a TVF diretamente no conjunto de dados vinculado:
SELECT * FROM `myproject.dcr_linked_dataset.mytvf`(TABLE myTable);
Exemplos de cenários
Os modelos de consulta podem ser usados para facilitar diferentes formas de colaboração de dados em uma data clean room. As seções a seguir descrevem exemplos de cenários.
Cenário de compartilhamento unidirecional
Um editor de dados cria um modelo de consulta para verificar se os parceiros assinantes só podem executar as consultas definidas pelo editor. Os criadores de modelos de consulta acabam aprovando os próprios modelos, já que nenhum outro colaborador é adicionado à sala restrita.
Nesse cenário, o usuário A é proprietário de uma data clean room que cria uma chamada campaign_analysis
e adiciona um conjunto de dados chamado my_campaign
com uma tabela campaigns
. O usuário A configura uma política de limite de agregação e controles de metadados para verificar se apenas o esquema de metadados está visível e se os assinantes não podem acessar os dados de origem. Em seguida, o usuário A cria um modelo de consulta
definindo uma função com valor de tabela da tabela campaigns
e restringindo todos
os assinantes do conjunto de dados vinculado para executar apenas a TVF.
Esta é a sintaxe da TVF:
campaigns_template(t1 TABLE campaign_ID <STRING> ) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, sum(impressions) FROM myproject.my_campaign.campaigns
group by company_id, company
);
Como o usuário A tem as permissões adequadas para a tabela de campanhas com a função de proprietário de dados do BigQuery, ele pode aprovar automaticamente o modelo de consulta depois de enviá-lo para revisão.
Compartilhamento de colaboração entre várias partes
O proprietário de uma data clean room convida um colaborador de confiança para propor consultas que serão executadas nos dados de cada um. As duas partes podem propor consultas com segurança ao visualizar apenas os esquemas de metadados, sem acessar os dados compartilhados subjacentes. Quando uma definição de consulta faz referência a dados que não pertencem ao proponente do modelo, ele só pode ser aprovado pelo proprietário desses dados.
Nesse cenário, o usuário A convida o usuário B, que é um colaborador da data clean room,
para a clean room campaign_analysis
. O usuário B quer propor um modelo de consulta para unir os próprios dados à tabela campaigns
ao visualizar o esquema de metadados da tabela.
Esta é a sintaxe da TVF:
campaigns_template(t1 TABLE campaign_ID <STRING> ) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, sum(impressions) FROM my_project.my_campaign.campaigns
group by company_id, company
);
Como o usuário B não adicionou nem é proprietário da tabela campaigns
, depois que o modelo de consulta é enviado para aprovação, apenas o usuário A pode aprovar. Para usar o modelo de consulta, o usuário B precisa se inscrever na data clean room e invocar a TVF. O usuário B
transmite a própria tabela com um campo chamado campaign_ID
como parâmetro de tabela
e pode executar o SQL particular definido no modelo de consulta. É importante observar que o usuário B não precisa adicionar os dados dele à data clean room.
O usuário B também adiciona à clean room um conjunto de dados chamado my_transactions
com uma tabela transactions
e uma tabela products
. O usuário B configura políticas de limite de agregação e controles de metadados para verificar se apenas o esquema de metadados está visível e se os assinantes não podem acessar os dados de origem.
O usuário A agora pode propor vários modelos de consulta para unir os próprios dados à tabela de transações ao visualizar o esquema de metadados da tabela. Confira alguns exemplos de sintaxe de TVF:
transactions_template(t1 TABLE user_ID <STRING> ) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, campaign_id, sku, category, date, sum(amount) FROM my_project.my_transactions.transactions
group by company_id, company, campaign_id, sku, category, date
);
transactions_template_with_join(t1 TABLE user_ID <STRING> ) AS (
SELECT WITH AGGREGATION_THRESHOLD t.company_id, t.company, t.campaign_id, t.sku, t.date, p.product_name, p.product_category, sum(t.amount) FROM myproject.my_transactions.transactions t
left join my_project.my_transactions.products p
on t.product_id = p.product_id
group by t.company_id, t.company, t.campaign_id, t.sku, t.date, p.product_name, p.product_category
);
Como o usuário A não adicionou nem é proprietário das tabelas transactions
e products
, depois que o modelo de consulta é enviado para aprovação, apenas o usuário B pode aprovar. Para usar o modelo de consulta, o usuário A precisa assinar a sala limpa e invocar a TVF. O usuário A transmite a própria tabela com um campo chamado user_ID
como parâmetro de tabela e pode executar o SQL de privacidade definido no modelo de consulta. É importante observar que o usuário A não precisa adicionar os dados dele à data clean room.
Preços
Os colaboradores que usam modelos de consulta são cobrados apenas pelo armazenamento de dados.
Os assinantes que usam modelos de consulta só são cobrados pela computação (análise) quando executam consultas.
A seguir
- Para saber mais sobre data clean rooms, consulte Compartilhar dados sensíveis com data clean rooms.
- Para saber mais sobre assinaturas, consulte Inscrever-se em uma data clean room.
- Para saber mais sobre as TVFs, consulte Funções de tabela.
- Para saber mais sobre a saída de dados, consulte Opções de saída de dados (somente conjuntos de dados compartilhados do BigQuery).