Usar modelos de consulta
Os modelos de consulta de data clean room do BigQuery permitem que os proprietários e colaboradores de dados publiquem consultas aprovadas para os assinantes. A predefinição dessas consultas minimiza os riscos de exfiltração de dados, garante resultados analíticos consistentes e simplifica a integração de analistas que não estão familiarizados com o SQL focado em privacidade.
Os modelos de consulta usam funções com valor de tabela (TVFs, na sigla em inglês) para aceitar tabelas ou campos específicos como parâmetros e retornar resultados sem expor dados brutos.
Limitações
Os modelos de consulta têm as seguintes limitações:
- Os modelos de consulta aceitam no máximo duas referências de dados: os dados usados para definir a consulta da TVF e a entrada de parâmetro de dados que a TVF aceita. É possível referenciar várias tabelas ou visualizações 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ó aceitam tipos fixos
TABLEeVIEW. - As definições de modelo de consulta estão sujeitas às mesmas limitações das TVFs.
Papéis
Há três papéis principais para usar modelos de consulta de data clean room. Cada papel tem fluxos de trabalho específicos, que são descritos neste documento:
Criador de modelos: um usuário que define as consultas a serem executadas na data clean room. Esse papel é análogo a qualquer um dos seguintes papéis do Identity and Access Management (IAM): Administrador do Analytics Hub, Editor do Analytics Hub ou Administrador de listagens 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. Esse papel é análogo a qualquer um dos seguintes papéis do IAM: Administrador do Analytics Hub, Editor do Analytics Hub ou Administrador de listagens 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 pode executar apenas as consultas aprovadas no modelo. Esse papel é análogo ao papel do IAM de assinante do Analytics Hub. Para mais informações, consulte Fluxos de trabalho de assinante de modelo.
Antes de começar
Para ativar a API Analytics Hub no projeto do Google Cloud , selecione uma das seguintes opções:
Console
No console do Google Cloud , 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 gcloud services enablecomando:
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 -
Adicione, atualize ou exclua uma listagem 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:
- Visualizador de dados do BigQuery (
roles/bigquery.dataViewer) no projeto - Usuário do BigQuery (
roles/bigquery.user) no projeto
- Visualizador 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.createno projeto -
bigquery.routines.updateno projeto -
bigquery.routines.deleteno projeto
-
-
Autorizar uma TVF:
bigquery.datasets.updatenos conjuntos de dados que a rotina acessa -
Crie um modelo de consulta:
-
analyticshub.listings.subscribeno projeto -
analyticshub.queryTemplates.createno projeto
-
-
Aprovar um modelo de consulta:
-
bigquery.routines.createno projeto -
bigquery.datasets.updatenos conjuntos de dados que a rotina acessa -
analyticshub.listings.createno projeto -
analyticshub.queryTemplates.approveno projeto
-
-
Atualizar um modelo de consulta:
analyticshub.queryTemplates.updateno modelo de consulta -
Recuperar detalhes de um modelo de consulta:
analyticshub.queryTemplates.getno modelo de consulta -
Listar todos os modelos de consulta em uma troca de dados:
analyticshub.queryTemplates.listna troca de dados -
Excluir um modelo de consulta:
analyticshub.queryTemplates.deleteno modelo de consulta
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Fluxos de trabalho do criador de modelos
Como criador de modelos de consulta, você pode fazer o seguinte:
- Adicionar uma listagem a uma data clean room.
- Adicionar uma TVF atual a uma data clean room
- Crie um modelo de consulta.
- Atualizar um modelo de consulta.
- Envie um modelo de consulta para análise.
- Excluir 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:
No console do Google Cloud , 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 listagem (adicionar dados).
Para adicionar dados de outras partes, compartilhe a data clean room com outro colaborador confiável. Esse colaborador também precisa adicionar dados à data clean room para que eles possam ser usados em um modelo de consulta.
Defina os controles de saída de dados para a listagem.
Defina os controles de metadados para a listagem. 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 o acesso à listagem do conjunto de dados vinculado.
Revise os detalhes da listagem.
Clique em Adicionar dados. A sala limpa agora inclui os metadados da visualização que você criou para seus dados.
Adicionar uma TVF atual 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.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 contém 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 de exibição da ficha.
Criar um modelo de consulta
Para criar um modelo de consulta, selecione uma das seguintes opções:
Console
No console Google Cloud , 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 de exibição e uma descrição para o modelo.
Clique em Próxima.
Proponha uma definição de consulta usando os esquemas das visualizações adicionadas à clean room:
- Defina a consulta usando a
sintaxe
CREATE TABLE FUNCTIONcompatível. Transmita toda a tabela ou visualização com definições fixas. É necessário definir a referência completa do caminho 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 de privacidade, como
SELECT WITH AGGREGATION_THRESHOLD.
- Defina a consulta usando a
sintaxe
Revise os detalhes do modelo.
Para salvar o modelo sem enviá-lo para revisão, clique em Salvar. O modelo de consulta agora tem o status RASCUNHO.
Você pode atualizar o modelo de consulta ou enviá-lo para revisão.
API
O exemplo a seguir mostra como criar um modelo de consulta 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/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID -d 'query_template { display_name: "DISPLAY_NAME", 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.DISPLAY_NAME: o nome de exibição do modelo de consulta. Não é possível atualizar o nome de exibição do modelo de consulta depois de criá-lo.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.
É necessário definir a referência completa do caminho da tabela, incluindo o ID do projeto e o ID 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 se traduz na 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 enviá-lo para análise.
Atualizar um modelo de consulta
Só é possível atualizar um modelo de consulta se ele estiver no status RASCUNHO. Depois de enviar um modelo de consulta para revisão, não será mais possível modificá-lo.
Para atualizar um modelo de consulta, selecione uma das seguintes opções:
Console
No console do Google Cloud , 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 a descrição e o contato principal conforme necessário.
Clique em Próxima.
Revise os detalhes do modelo.
Para salvar o modelo sem enviar para revisão, clique em Salvar.
API
O exemplo a seguir mostra como atualizar um modelo de consulta 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 PATCH "https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID?updateMask=description" \ -d '{ "query_template": { "description": "New query template" } }'
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
Para enviar um modelo de consulta para análise, selecione uma das seguintes opções:
Console
No console do Google Cloud , 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 revisão, clique em Ações > Enviar para revisão. O modelo agora tem o status Requer revisão.
API
O exemplo a seguir mostra como enviar um modelo de consulta para revisão 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/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. Depois de enviar um modelo de consulta para revisão, não é mais possível excluí-lo.
Para excluir um modelo de consulta, selecione uma das seguintes opções:
Console
No console do Google Cloud , 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 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 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 aprovador de modelos
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, dados de outro colaborador, somente o proprietário desses dados pode aprovar o modelo de consulta. 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
Para aprovar um modelo de consulta, selecione uma das seguintes opções:
Console
No console Google Cloud , 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 > Requer revisão.
Clique em Aprovar.
Selecione o local do modelo. Esse local é onde a TVF é criada para compartilhamento.
Revise o modelo de consulta proposto.
Para aprovar o modelo de consulta para uso na data clean room, clique em Aprovar.
API
Crie a rotina usando o modelo de consulta chamando o método
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 que você criou à 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 contém 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 de exibição da ficha.
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 do Google Cloud , é possível rejeitar um modelo de consulta não aprovando o modelo enviado em análise.
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 à data clean room, a assinatura dela concederá acesso apenas à TVF correspondente, não aos dados pessoais compartilhados subjacentes.
Assinar um modelo de consulta
Para assinar 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. A assinatura concede acesso a todas as listagens que têm a configuração Excluir acesso à listagem do conjunto de dados vinculado desativada.
Depois de se inscrever na data clean room, siga estas etapas para executar um modelo de consulta:
No console do Google Cloud , acesse a página BigQuery.
No painel Explorador, acesse o conjunto de dados vinculado que você criou ao assinar a data 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 um campo.
Clique em Executar.
Se não for possível visualizar 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 `my_project.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 do modelo.SUBSCRIPTION: o nome da sua assinatura.
Depois de se inscrever no modelo de consulta, é possível consultar a TVF diretamente no conjunto de dados vinculado:
SELECT * FROM `my_project.dcr_linked_dataset.mytvf`(TABLE myTable);
Exemplos de cenários
É possível usar modelos de consulta 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 que os parceiros assinantes possam executar apenas as consultas definidas pelo editor. Os criadores de modelos de consulta aprovam os próprios modelos porque nenhum outro colaborador é adicionado à data clean room.
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 que apenas o esquema de metadados fique visível e os assinantes do modelo não possam acessar os dados de origem. Em seguida, o usuário A cria um modelo de consulta
definindo uma TVF na tabela campaigns e restringindo 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 my_project.my_campaign.campaigns
group by company_id, company
);
Como o usuário A tem as permissões adequadas para a tabela campaigns com o papel 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 visualizando apenas esquemas de metadados, sem acessar os dados pessoais compartilhados. Quando uma definição de consulta faz referência a dados que não pertencem ao proponente do modelo, somente o proprietário desses dados pode aprovar o modelo de consulta.
Nesse cenário, o usuário A convida o usuário B, que é um colaborador da data clean room,
para a data clean room campaign_analysis. O usuário B quer propor um modelo de consulta
para mesclar os próprios dados à tabela campaigns visualizando 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, apenas o usuário A pode aprovar o modelo de consulta depois que ele é enviado para análise. 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 o parâmetro de tabela
e pode executar o SQL focado em privacidade definido no modelo de consulta. O usuário B não precisa adicionar os dados dele à data clean room.
O usuário B também adiciona um conjunto de dados chamado my_transactions à data clean room, que tem uma tabela transactions e uma tabela products. O usuário B configura uma política de limite de agregação e controles de metadados para que apenas o esquema de metadados fique visível e os assinantes do modelo não possam acessar os dados de origem.
O usuário A pode propor vários modelos de consulta para unir os próprios dados à tabela transactions ao visualizar o esquema de metadados dela. Confira a seguir 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 my_project.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, somente o usuário B pode aprovar o modelo de consulta depois que ele é enviado para análise. Para usar o modelo de consulta, o usuário A precisa se inscrever no data clean room
e invocar a TVF. O usuário A transmite a própria tabela com um campo chamado user_ID
como o parâmetro de tabela e pode executar o SQL focado em privacidade definido no
modelo de consulta. O usuário A não precisa adicionar os dados dele à data clean room.
Preços
A tabela a seguir resume os preços dos modelos de consulta da data clean room do BigQuery:
| Papel | Detalhes do preço |
|---|---|
| Colaborador de dados | Cobrado apenas pelo armazenamento de dados. |
| Assinante do modelo | Cobrança apenas pela computação (análise) ao executar 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 Assinar uma data clean room.
- Para saber mais sobre TVFs, consulte Funções de tabela.
- Para saber mais sobre a saída de dados dos conjuntos de dados compartilhados do BigQuery, consulte Opções de saída de dados.