Usar plantillas de consultas

Las plantillas de consulta de las salas blancas de datos de BigQuery aceleran el tiempo de obtención de información valiosa y proporcionan capas adicionales de seguridad y control para minimizar los problemas de exfiltración de datos. Al predefinir y limitar las consultas que se pueden ejecutar en las salas blancas de datos, puedes hacer lo siguiente:

  • Ayuda a evitar la filtración de datos sensibles. Cuando los suscriptores que ejecutan consultas en una sala limpia tienen más flexibilidad para explorar, los propietarios de los datos consideran que hay un mayor riesgo de que se exponga información sensible de forma accidental o intencionada.

  • Simplificar la incorporación y la adopción para los usuarios menos técnicos. Muchos proveedores de datos esperan que los suscriptores de las salas blancas tengan menos conocimientos técnicos, sobre todo a la hora de escribir consultas de SQL centradas en la privacidad y de entender cómo asignar presupuestos de privacidad de forma adecuada.

  • Garantizar resultados analíticos coherentes para los suscriptores de datos. Resulta más difícil aplicar reglas de análisis de datos específicas y verificar el cumplimiento de las normativas de privacidad cuando no hay forma de controlar las consultas que se ejecutan en una sala blanca de datos.

Las plantillas de consulta permiten a los propietarios y colaboradores de datos crear consultas predefinidas y aprobadas que se adapten específicamente a los casos prácticos de la clean room de datos, así como publicar estas consultas para que los suscriptores puedan usarlas. Las consultas predefinidas usan funciones con valor de tabla (TVFs) en BigQuery para permitir que se transfiera una tabla completa o campos específicos como parámetros de entrada y se devuelva una tabla como salida.

Limitaciones

  • Las plantillas de consulta solo admiten un máximo de dos referencias de datos: los datos usados para definir la consulta de la función con valores de tabla y el parámetro de datos que acepta la función con valores de tabla.
    • Se pueden hacer referencias a varias tablas o vistas en la definición de consulta de la función con valores de tabla, pero todas deben pertenecer al mismo propietario de los datos o a la misma parte.
  • Las funciones de valor de tabla de plantillas de consulta solo admiten los tipos fijos TABLE y VIEW.
  • Las definiciones de plantillas de consulta están sujetas a las mismas limitaciones que las funciones con valores de tabla.

Antes de empezar

Habilita la API Analytics Hub en tu Google Cloud proyecto siguiendo estos pasos:

Consola

  1. Vaya a la página de la API Analytics Hub.

    Ir a la API Analytics Hub

  2. En la barra de herramientas de la Google Cloud consola, selecciona tu proyecto.

  3. Si la API aún no está habilitada, haz clic en Habilitar.

bq

Ejecuta el comando gcloud services enable:

gcloud services enable analyticshub.googleapis.com

Roles obligatorios

Para obtener los permisos que necesitas para llevar a cabo las tareas de este documento, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para realizar las tareas de este documento. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para realizar las tareas de este documento, se necesitan los siguientes permisos:

  • Crear o eliminar una TVF en una sala blanca de datos:
    • bigquery.routines.create en el proyecto
    • bigquery.routines.update en el proyecto
    • bigquery.routines.delete en el proyecto
  • Autoriza una TVF: bigquery.datasets.update en los conjuntos de datos a los que accede la rutina.
  • Crea una plantilla de consulta:
    • analyticshub.listings.subscribe en el proyecto
    • analyticshub.queryTemplates.create en el proyecto
  • Aprobar una plantilla de consulta:
    • bigquery.routines.create en el proyecto
    • bigquery.datasets.update en los conjuntos de datos a los que accede la rutina
    • analyticshub.listings.create en el proyecto
    • analyticshub.queryTemplates.approve en el proyecto

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Añadir un TVF a una sala limpia de datos

Puede añadir una TVF a una sala limpia de datos mediante la API Analytics Hub.

Usa el método projects.locations.dataExchanges.listings.create.

En el siguiente ejemplo se muestra cómo llamar al método projects.locations.dataExchanges.listings.create mediante el 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"}'

Haz los cambios siguientes:

  • DCR_PROJECT_ID: el ID del proyecto en el que se creó la data clean room.
  • PROJECT_ID: el ID del proyecto en el que se encontraba el conjunto de datos de origen.
  • DATASET_ID: el ID del conjunto de datos de origen.
  • LOCATION: la ubicación de la sala blanca de datos.
  • CLEAN_ROOM_ID: el ID de la sala blanca de datos.
  • LISTING_ID: el ID de la ficha.
  • LISTING_NAME: el nombre de la ficha.
  • ROUTINE_ID: el ID de la rutina.

Roles de plantilla de consulta

Hay tres roles principales para usar las plantillas de consulta de salas blancas de datos. Cada rol tiene flujos de trabajo específicos, que se describen más adelante en este documento.

Flujos de trabajo de creadores de plantillas

Como creador de plantillas de consulta, puedes hacer lo siguiente:

Añadir una ficha a una sala limpia de datos

Antes de crear una plantilla de consulta, debe añadir datos a una sala limpia de datos. Para crear una ficha en la sala blanca de datos, sigue estos pasos:

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre visible de la sala limpia de datos en la que quiera crear la plantilla de consulta.

  3. Haga clic en Añadir datos y siga los pasos para crear una vista con reglas de análisis configuradas. Para obtener instrucciones detalladas, consulta el artículo Crear una ficha (añadir datos).

    1. Para añadir datos de otros terceros, comparte la sala blanca con otro colaborador de confianza. Este colaborador de datos también debe añadir datos a la sala limpia para poder usarlos en una plantilla de consulta.
  4. Defina los controles de salida de datos de la ficha.

  5. Define los controles de metadatos de la ficha. Si solo quiere compartir los esquemas y las descripciones de los datos añadidos en el paso anterior (y no los datos compartidos en sí), seleccione Excluir acceso a la ficha del conjunto de datos vinculado.

  6. Revisa los detalles de la ficha.

  7. Haz clic en Añadir datos. Los metadatos de la vista que se crea para tus datos se añaden a la sala limpia.

Crear una plantilla de consulta

Selecciona una de las opciones siguientes:

Consola

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre visible de la sala blanca de datos en la que quiera crear la plantilla de consulta.

  3. En la clean room, ve a la pestaña Plantillas.

  4. Haz clic en Crear plantilla.

  5. Escribe un nombre y una descripción para la plantilla.

  6. Haz clic en Siguiente.

  7. Puede ver los esquemas de las vistas añadidas a la sala blanca y proponer una definición de consulta.

    1. Asegúrate de definir la consulta con la sintaxisCREATE TABLE FUNCTION admitida.
    2. Transfiere toda la tabla o vista con definiciones fijas. Debes definir la referencia de la ruta completa de la tabla, incluidos el ID del proyecto y el ID del conjunto de datos, a partir de los datos añadidos a la sala blanca. Por ejemplo:

      query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
      
    3. Si has aplicado reglas de análisis de privacidad a los datos, asegúrate de que esta función con valores de tabla incluya sintaxis SQL específica de la privacidad, como SELECT WITH AGGREGATION_THRESHOLD.

  8. Revisa los detalles de la plantilla.

  9. Para guardar la plantilla sin enviarla a revisión, haga clic en Guardar. La plantilla de consulta ahora tiene el estado BORRADOR.

Puede actualizar la plantilla de consulta o enviarla para que se revise.

API

En el siguiente ejemplo se muestra cómo crear una plantilla de consulta con un 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)"
  }
}'

Haz los cambios siguientes:

  • DCR_PROJECT_ID: el ID del proyecto en el que se creó la data clean room.
  • LOCATION: la ubicación de la sala blanca de datos.
  • CLEAN_ROOM_ID: el ID de la sala blanca de datos.
  • QUERY_TEMPLATE_ID: el ID de la plantilla de consulta.
  • TVF_DEFINITION: la definición de TVF.

En el siguiente código de ejemplo se muestra un ejemplo de definition_body para la llamada a la API. Debe definir la referencia de la ruta completa de la tabla, incluido el ID de proyecto y el ID de conjunto de datos, a partir de los datos añadidos a la clean room.

  query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)

El definition_body es análogo a la definición de una rutina. El definition_body anterior se traduce en la siguiente rutina:

  CREATE OR REPLACE TABLE FUNCTION <approvers_dataset>.query_template1(t1 TABLE, y INT64)
  AS (SELECT * FROM t1 WHERE year > y)

Puede actualizar la plantilla de consulta o enviarla para que se revise.

Actualizar una plantilla de consulta

Solo puedes actualizar una plantilla de consulta si tiene el estado BORRADOR. Si la plantilla de consulta ya se ha enviado a revisión, no podrás modificarla.

Para actualizar una plantilla de consulta, selecciona una de las siguientes opciones:

Consola

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre visible de la sala limpia de datos que contiene la plantilla de consulta.

  3. En la clean room, ve a la pestaña Plantillas.

  4. En la fila de la plantilla que quiera actualizar, haga clic en Acciones > Editar plantilla.

  5. Actualiza los detalles de la plantilla y la definición de la consulta según sea necesario.

  6. Haz clic en Siguiente.

  7. Revisa la plantilla de consulta y haz clic en Guardar para guardar los cambios sin enviar la plantilla a revisión.

API

En el siguiente ejemplo se muestra cómo actualizar una plantilla de consulta con un 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"
  }'

Haz los cambios siguientes:

  • DCR_PROJECT_ID: el ID del proyecto en el que se creó la data clean room.
  • LOCATION: la ubicación de la sala blanca de datos.
  • CLEAN_ROOM_ID: el ID de la sala blanca de datos.
  • QUERY_TEMPLATE_ID: el ID de la plantilla de consulta.

Enviar una plantilla de consulta para su revisión

Selecciona una de las opciones siguientes:

Consola

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre visible de la sala limpia de datos que contiene la plantilla de consulta.

  3. En la clean room, ve a la pestaña Plantillas.

  4. En la fila de la plantilla que quiera enviar a revisión, haga clic en Acciones > Enviar a revisión. La plantilla ahora tiene el estado Requiere revisión.

API

En el siguiente ejemplo se muestra cómo enviar una plantilla de consulta para que se revise con un 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

Haz los cambios siguientes:

  • DCR_PROJECT_ID: el ID del proyecto en el que se creó la data clean room.
  • LOCATION: la ubicación de la sala blanca de datos.
  • CLEAN_ROOM_ID: el ID de la sala blanca de datos.
  • QUERY_TEMPLATE_ID: el ID de la plantilla de consulta.

Eliminar una plantilla de consulta

Solo puedes eliminar una plantilla de consulta si tiene el estado BORRADOR. Si la plantilla de consulta ya se ha enviado a revisión, no podrás eliminarla.

Selecciona una de las opciones siguientes:

Consola

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre visible de la sala limpia de datos que contiene la plantilla de consulta.

  3. En la clean room, ve a la pestaña Plantillas.

  4. En la fila de la plantilla que quieras eliminar, haz clic en Acciones > Eliminar plantilla.

API

En el siguiente ejemplo se muestra cómo eliminar una plantilla de consulta con un 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

Haz los cambios siguientes:

  • DCR_PROJECT_ID: el ID del proyecto en el que se creó la data clean room.
  • LOCATION: la ubicación de la sala blanca de datos.
  • CLEAN_ROOM_ID: el ID de la sala blanca de datos.
  • QUERY_TEMPLATE_ID: el ID de la plantilla de consulta.

Flujos de trabajo de aprobador de plantillas

Como responsable de aprobar plantillas de consulta, puedes aprobar una plantilla de consulta.

Cuando una función de tabla con valores hace referencia a datos que no son tuyos (por ejemplo, los datos de otro colaborador), solo el propietario de esos datos puede aprobar la plantilla de consulta. Si vas a crear una TVF que solo haga referencia a tus datos (para compartirlos en una dirección), puedes aprobar la plantilla de consulta tú mismo.

Aprobar una plantilla de consulta

Selecciona una de las opciones siguientes:

Consola

  1. Vaya a la página Compartir (Analytics Hub).

    Ir a Compartir (Analytics Hub)

  2. Haga clic en el nombre visible de la sala limpia de datos que contiene la plantilla de consulta.

  3. En la clean room, ve a la pestaña Plantillas.

  4. En la fila de la plantilla que requiera su revisión, haga clic en Estado de aprobación > Requiere revisión.

  5. Haz clic en Aprobar.

  6. Selecciona la ubicación de la plantilla. Esta es la ubicación en la que se crea el archivo TVF para compartirlo.

  7. Revisa la plantilla de consulta propuesta.

  8. Haz clic en Aprobar si la plantilla de consulta se aprueba para usarla en la sala blanca.

API

  1. Crea la rutina a partir de la plantilla de consulta con una jobserver.query llamada:

    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}'

    Haz los cambios siguientes:

    • ROUTINE_PROJECT_ID: el ID del proyecto en el que se creó la rutina.
    • ROUTINE_CREATION_QUERY: la consulta para crear la rutina.
  2. Añade la rutina que has creado a la sala blanca de datos:

    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"}'

    Haz los cambios siguientes:

    • DCR_PROJECT_ID: el ID del proyecto en el que se creó la sala blanca de datos.
    • LOCATION: la ubicación de la sala blanca de datos.
    • CLEAN_ROOM_ID: el ID de la sala blanca de datos.
    • LISTING_ID: el ID de la ficha.
    • PROJECT_ID: el ID del proyecto en el que se encontraba el conjunto de datos de origen.
    • DATASET_ID: el ID del conjunto de datos de origen.
    • ROUTINE_ID: el ID de la rutina.
    • LISTING_NAME: el nombre de la ficha.
  3. Cambia el estado de la plantilla de consulta a 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 '{}'

    Haz los cambios siguientes:

    • DCR_PROJECT_ID: el ID del proyecto en el que se creó la sala blanca de datos.
    • LOCATION: la ubicación de la sala blanca de datos.
    • CLEAN_ROOM_ID: el ID de la sala blanca de datos.
    • QUERY_TEMPLATE_ID: el ID de la plantilla de consulta.

Rechazar una plantilla de consulta

En la consola de Google Cloud , puede rechazar una plantilla de consulta de las siguientes formas:

Plantillas de flujos de trabajo de suscriptor

Un suscriptor de plantillas de consulta puede ver una sala blanca de datos y suscribirse a ella. Si solo se añade la plantilla de consulta a la sala blanca, al suscribirte a la sala blanca solo tendrás acceso a la función de valor tabular correspondiente, no a los datos compartidos subyacentes.

Suscribirse a una plantilla de consulta

Selecciona una de las opciones siguientes:

Consola

Para suscribirte a una plantilla de consulta, debes suscribirte a la sala blanca de datos. Se concede acceso a todas las fichas que tengan la opción Excluir acceso a la ficha del conjunto de datos vinculado inhabilitada.

Para suscribirte a una plantilla de consulta, sigue estos pasos:

  1. Ve a la página BigQuery.

    Ir a BigQuery

  2. Ve al conjunto de datos vinculado que has creado al suscribirte a la sala blanca.

  3. Abre la rutina o la función de verificación de televisión compartida en el conjunto de datos vinculado.

  4. Haz clic en Invocar función de tabla.

  5. Sustituye el parámetro por la entrada aceptada, que es el nombre de la tabla o del campo.

  6. Haz clic en Ejecutar.

Si no puedes ver la función de tabla con valores anidada como elemento secundario del conjunto de datos vinculado en el panel Explorador, puedes consultar la función de tabla con valores directamente en el conjunto de datos vinculado:

SELECT * FROM `myproject.dcr_linked_dataset.mytvf`(TABLE myTable);

API

Usa el método projects.locations.dataExchanges.subscribe.

En el siguiente ejemplo se muestra cómo llamar al método projects.locations.dataExchanges.subscribe mediante el 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"}'

Haz los cambios siguientes:

  • DCR_PROJECT_ID: el ID del proyecto en el que se creó la data clean room.
  • LOCATION: la ubicación de la sala blanca de datos.
  • CLEAN_ROOM_ID: el ID de la sala blanca de datos.
  • SUBSCRIBER_PROJECT_ID: el ID del proyecto de suscriptor.
  • SUBSCRIPTION: el nombre de tu suscripción.

Una vez que te hayas suscrito a la plantilla de consulta, podrás consultar la función con valores de tabla directamente en el conjunto de datos vinculado:

SELECT * FROM `myproject.dcr_linked_dataset.mytvf`(TABLE myTable);

Casos de ejemplo

Las plantillas de consulta se pueden usar para facilitar diferentes formas de colaboración de datos en una sala blanca de datos. En las siguientes secciones se describen algunos ejemplos.

Situación de uso compartido unidireccional

Un editor de datos crea una plantilla de consulta para verificar que los partners suscriptores solo pueden ejecutar las consultas definidas por el editor. Los creadores de plantillas de consulta son quienes aprueban las plantillas de consulta, ya que no se añade ningún otro colaborador a la sala limpia.

En este caso, el usuario A es el propietario de una sala blanca de datos que crea una sala blanca de datos llamada campaign_analysis y añade un conjunto de datos llamado my_campaign con una tabla campaigns. El usuario A configura una política de umbral de agregación y controles de metadatos para verificar que solo se vea el esquema de metadatos y que los suscriptores no puedan acceder a los datos de origen. A continuación, el usuario A crea una plantilla de consulta definiendo una función con valores de tabla a partir de la tabla campaigns y restringe a todos los suscriptores del conjunto de datos vinculado para que solo puedan ejecutar la función con valores de tabla.

Esta es la sintaxis de 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 el usuario A tiene los permisos adecuados para la tabla de campañas con el rol Propietario de datos de BigQuery, puede aprobar automáticamente la plantilla de consulta inmediatamente después de enviarla para que se revise.

Compartir contenido para colaborar con varias partes

El propietario de una sala blanca invita a un colaborador de confianza a proponer consultas que se ejecuten en los datos de cada uno. Ambas partes pueden proponer consultas de forma segura viendo solo los esquemas de metadatos, sin acceder a los datos compartidos subyacentes. Cuando una definición de consulta hace referencia a datos que no pertenecen al proponente de la plantilla, solo el propietario de esos datos puede aprobar la plantilla.

En este caso, el usuario A invita al usuario B, que es colaborador de la sala blanca de datos, a la sala blanca de datos campaign_analysis. El usuario B quiere proponer una plantilla de consulta para combinar sus propios datos con la tabla campaigns. Para ello, consulta el esquema de metadatos de la tabla.

Esta es la sintaxis de 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 el usuario B no ha añadido la tabla campaigns ni es su propietario, una vez que se envíe la plantilla de consulta para su aprobación, solo el usuario A podrá aprobarla. Para usar la plantilla de consulta, el usuario B debe suscribirse a la sala limpia e invocar la función con valores de tabla. El usuario B envía su propia tabla con un campo llamado campaign_ID como parámetro de tabla y puede ejecutar el SQL privado definido en la plantilla de consulta. Es importante destacar que el usuario B no tiene que añadir sus datos a la sala blanca.

El usuario B también añade a la sala blanca un conjunto de datos llamado my_transactions que tiene una tabla transactions y una tabla products. El usuario B configura políticas de umbral de agregación y controles de metadatos para verificar que solo se vea el esquema de metadatos y que los suscriptores no puedan acceder a los datos de origen.

El usuario A ahora puede proponer varias plantillas de consulta para combinar sus propios datos con la tabla de transacciones consultando el esquema de metadatos de la tabla. A continuación, se muestran ejemplos de sintaxis 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 el usuario A no ha añadido ni es propietario de las tablas transactions y products, una vez que se envíe la plantilla de consulta para su aprobación, solo el usuario B podrá aprobarla. Para usar la plantilla de consulta, el usuario A debe suscribirse a la clean room e invocar la función con valores de tabla. El usuario A envía su propia tabla con un campo llamado user_ID como parámetro de tabla y puede ejecutar el SQL de privacidad definido en la plantilla de consulta. Es importante destacar que el usuario A no tiene que añadir sus datos a la sala limpia.

Precios

A los colaboradores de datos que usan plantillas de consulta solo se les cobra por el almacenamiento de datos.

A los suscriptores que usan plantillas de consultas solo se les cobra por la computación (análisis) cuando ejecutan consultas.

Siguientes pasos