Usa plantillas de consultas

Las plantillas de consultas de salas limpias de datos de BigQuery permiten que los propietarios y colaboradores de datos publiquen consultas aprobadas para los suscriptores. La predefinición de estas consultas minimiza los riesgos de robo de datos, garantiza resultados analíticos coherentes y simplifica la incorporación de analistas que no están familiarizados con SQL centrado en la privacidad.

Las plantillas de consulta usan funciones con valor de tabla (TVF) para aceptar tablas o campos específicos como parámetros y mostrar resultados sin exponer datos sin procesar.

Limitaciones

Las plantillas de consulta tienen las siguientes limitaciones:

  • Las plantillas de consulta admiten un máximo de dos referencias de datos, es decir, los datos que se usan para definir la consulta de la TVF y la entrada de parámetros de datos que acepta la TVF. Puedes hacer referencia a varias tablas o vistas dentro de la definición de la consulta de la TVF, pero todas deben pertenecer al mismo propietario o parte de los datos.
  • Las TVF de plantilla 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 TVF.

Funciones

Existen tres roles principales para usar las plantillas de consultas de salas limpias de datos. Cada rol tiene flujos de trabajo específicos, que se describen en este documento:

Antes de comenzar

Para habilitar la API de Analytics Hub para tu proyecto Google Cloud , selecciona una de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página API de Analytics Hub.

    Ir a la API de Analytics Hub

  2. En la barra de herramientas de la consola de Google Cloud , elige el 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 realizar las tareas de este documento, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para hacer las tareas de este documento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para hacer las tareas de este documento:

  • Crea o borra una TVF en una sala limpia 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
  • Aprueba 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
  • Actualiza una plantilla de consulta existente: analyticshub.queryTemplates.update en la plantilla de consulta
  • Recupera los detalles de una plantilla de consulta: analyticshub.queryTemplates.get en la plantilla de consulta
  • Enumera todas las plantillas de consulta en un intercambio de datos: analyticshub.queryTemplates.list en el intercambio de datos
  • Borra una plantilla de consulta: analyticshub.queryTemplates.delete en la plantilla de consulta

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

Flujos de trabajo de creadores de plantillas

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

Agrega una ficha a una sala limpia de datos

Antes de crear una plantilla de consulta, debes agregar datos a una sala limpia de datos. Para crear una ficha en la sala limpia de datos, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).

    Ir a Uso compartido (Analytics Hub)

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

  3. Haz clic en Agregar datos y sigue los pasos para crear una vista con reglas de análisis configuradas. Para obtener instrucciones detalladas, consulta Crea una ficha (agrega datos).

    Para agregar datos de otras partes, comparte la sala limpia con otro colaborador de confianza. Este colaborador de datos también debe agregar datos a la sala limpia para que se pueda usar en una plantilla de consulta.

  4. Configura los controles de salida de datos para la ficha.

  5. Establece los controles de metadatos para la ficha. Si solo quieres compartir los esquemas y las descripciones de los datos agregados en el paso anterior (y no los datos compartidos en sí), selecciona Excluir el acceso a la ficha del conjunto de datos vinculado.

  6. Revisa los detalles de la ficha.

  7. Haz clic en Add Data: La sala limpia ahora incluye los metadatos de la vista que creaste para tus datos.

Agrega un TVF existente a una sala limpia de datos

Puedes agregar una TVF existente a una sala limpia de datos con la API de 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 con 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"}'

Reemplaza lo siguiente:

  • DCR_PROJECT_ID: Es el ID del proyecto en el que se creó la sala limpia de datos.
  • LOCATION: Es la ubicación de la sala limpia de datos.
  • CLEAN_ROOM_ID: Es el ID de la sala limpia de datos.
  • LISTING_ID: el ID de la ficha.
  • PROJECT_ID: Es el ID del proyecto que contiene el conjunto de datos de origen.
  • DATASET_ID: Es el ID del conjunto de datos de origen.
  • ROUTINE_ID: Es el ID de la rutina.
  • LISTING_NAME: Es el nombre visible de la ficha.

Crea una plantilla de consulta

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

Console

  1. En la consola de Google Cloud , ve a la página Compartir (Analytics Hub).

    Ir a Uso compartido (Analytics Hub)

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

  3. En la sala limpia, ve a la pestaña Plantillas.

  4. Haz clic en Crear plantilla.

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

  6. Haz clic en Siguiente.

  7. Propón una definición de consulta con los esquemas de las vistas agregadas a la sala limpia:

    • Define la consulta con la sintaxis CREATE TABLE FUNCTION admitida.
    • Pasa toda tu tabla o vista con definiciones fijas. Debes definir la referencia de la ruta de acceso completa de la tabla, incluidos el ID del proyecto y el ID del conjunto de datos, a partir de los datos agregados a la sala limpia. Por ejemplo:

          query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
      
    • Si aplicaste reglas de análisis de privacidad a los datos, asegúrate de que esta TVF incluya una sintaxis de 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, haz clic en Guardar. La plantilla de consulta ahora tiene el estado BORRADOR.

Puedes actualizar la plantilla de consulta o enviarla para su revisión.

API

En el siguiente ejemplo, se muestra cómo crear una plantilla de consulta con 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/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID -d
  'query_template {
  display_name: "DISPLAY_NAME",
  routine {
    definition_body: "QUERY_TEMPLATE_ID(TVF arguments) AS (TVF_DEFINITION)"
  }
}'

Reemplaza lo siguiente:

  • DCR_PROJECT_ID: Es el ID del proyecto en el que se creó la sala limpia de datos.
  • LOCATION: Es la ubicación de la sala limpia de datos.
  • CLEAN_ROOM_ID: Es el ID de la sala limpia de datos.
  • QUERY_TEMPLATE_ID: Es el ID de la plantilla de consulta.
  • DISPLAY_NAME: Es el nombre visible de la plantilla de consulta. No puedes actualizar el nombre visible de la plantilla de consulta después de crearla.
  • TVF_DEFINITION: Es la definición de la TVF.

En la siguiente muestra de código, se incluye un ejemplo de definition_body para la llamada a la API. Debes definir la referencia completa a la ruta de la tabla, incluidos el ID del proyecto y el ID del conjunto de datos, a partir de los datos agregados a la sala limpia:

  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)

Puedes actualizar la plantilla de consulta o enviarla para su revisión.

Actualiza una plantilla de consulta

Solo puedes actualizar una plantilla de búsqueda si se encuentra en el estado BORRADOR. Después de enviar una plantilla de consulta para su revisión, no podrás modificarla.

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

Console

  1. En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).

    Ir a Uso compartido (Analytics Hub)

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

  3. En la sala limpia, ve a la pestaña Plantillas.

  4. En la fila de la plantilla que deseas actualizar, haz clic en Acciones > Editar plantilla.

  5. Actualiza la descripción y el contacto principal según sea necesario.

  6. Haz clic en Siguiente.

  7. Revisa los detalles de la plantilla.

  8. Para guardar la plantilla sin enviarla a revisión, haz clic en Guardar.

API

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

Reemplaza lo siguiente:

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

Envía una plantilla de consulta para su revisión

Para enviar una plantilla de consulta para su revisión, selecciona una de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).

    Ir a Uso compartido (Analytics Hub)

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

  3. En la sala limpia, ve a la pestaña Plantillas.

  4. En la fila de la plantilla que deseas enviar para su revisión, haz clic en Acciones > Enviar para su 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 su revisión con 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/queryTemplates/QUERY_TEMPLATE_ID:submit

Reemplaza lo siguiente:

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

Borra una plantilla de búsqueda

Solo puedes borrar una plantilla de búsqueda si está en estado BORRADOR. Después de enviar una plantilla de consulta para su revisión, ya no podrás borrarla.

Para borrar una plantilla de consulta, elige una de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).

    Ir a Uso compartido (Analytics Hub)

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

  3. En la sala limpia, ve a la pestaña Plantillas.

  4. En la fila de la plantilla que deseas borrar, haz clic en Acciones > Borrar plantilla.

API

En el siguiente ejemplo, se muestra cómo borrar una plantilla de consulta con 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 DELETE https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID

Reemplaza lo siguiente:

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

Flujos de trabajo de aprobación de plantillas

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

Cuando una TVF hace referencia a datos que no te pertenecen, por ejemplo, los datos de otro colaborador, solo el propietario de esos datos puede aprobar la plantilla de consulta. Si creas una TVF que solo hace referencia a tus datos para compartirlos en una sola dirección, puedes aprobar la plantilla de consulta por tu cuenta.

Aprueba una plantilla de consulta

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

Console

  1. En la consola de Google Cloud , ve a la página Uso compartido (Analytics Hub).

    Ir a Uso compartido (Analytics Hub)

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

  3. En la sala limpia, ve a la pestaña Plantillas.

  4. En la fila de la plantilla que requiere tu revisión, haz clic en Estado de aprobación > Requiere revisión.

  5. Haz clic en Aprobar.

  6. Selecciona la ubicación de la plantilla. Esta ubicación es donde se crea la TVF para compartirla.

  7. Revisa la plantilla de consulta propuesta.

  8. Para aprobar la plantilla de consulta para su uso en la sala limpia de datos, haz clic en Aprobar.

API

  1. Llama al método jobserver.query para crear la rutina a partir de la plantilla de consulta:

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

    Reemplaza lo siguiente:

    • ROUTINE_PROJECT_ID: Es el ID del proyecto en el que se creó la rutina.
    • ROUTINE_CREATION_QUERY: Es la consulta para crear la rutina.
  2. Agrega la rutina que creaste a la sala limpia 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"}'

    Reemplaza lo siguiente:

    • DCR_PROJECT_ID: Es el ID del proyecto en el que se creó la sala limpia de datos.
    • LOCATION: Es la ubicación de la sala limpia de datos.
    • CLEAN_ROOM_ID: Es el ID de la sala limpia de datos.
    • LISTING_ID: el ID de la ficha.
    • PROJECT_ID: Es el ID del proyecto que contiene el conjunto de datos de origen.
    • DATASET_ID: Es el ID del conjunto de datos de origen.
    • ROUTINE_ID: Es el ID de la rutina.
    • LISTING_NAME: Es el nombre visible de la ficha.
  3. Actualiza 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 '{}'

    Reemplaza lo siguiente:

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

Rechaza una plantilla de búsqueda

En la consola de Google Cloud , puedes rechazar una plantilla de consulta si no apruebas la plantilla de consulta enviada que está en proceso de revisión.

Plantillas de flujos de trabajo de suscriptores

Un suscriptor de plantillas de consulta puede ver una sala limpia de datos y suscribirse a ella. Si solo se agrega la plantilla de consulta a la sala limpia, la suscripción a la sala limpia otorga acceso solo a la TVF correspondiente, no a los datos compartidos subyacentes.

Suscríbete a una plantilla de consulta

Para suscribirte a una plantilla de consulta, selecciona una de las siguientes opciones:

Console

Para suscribirte a una plantilla de consulta, debes suscribirte a la sala limpia de datos. La suscripción otorga acceso a todas las fichas que tienen inhabilitado el parámetro de configuración Excluir el acceso a la ficha del conjunto de datos vinculado.

Después de suscribirte a la sala limpia de datos, sigue estos pasos para ejecutar una plantilla de consulta:

  1. En la consola de Google Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, ve al conjunto de datos vinculado que creaste cuando te suscribiste a la sala limpia.

  3. Abre la rutina o la TVF que se comparte en el conjunto de datos vinculado.

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

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

  6. Haz clic en Ejecutar.

Si no puedes ver la TVF anidada como un elemento secundario del conjunto de datos vinculado en el panel del Explorador, puedes consultar la TVF directamente en el conjunto de datos vinculado:

SELECT * FROM `my_project.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 con 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"}'

Reemplaza lo siguiente:

  • DCR_PROJECT_ID: Es el ID del proyecto en el que se creó la sala limpia de datos.
  • LOCATION: Es la ubicación de la sala limpia de datos.
  • CLEAN_ROOM_ID: Es el ID de la sala limpia de datos.
  • SUBSCRIBER_PROJECT_ID: Es el ID del proyecto del suscriptor de la plantilla.
  • SUBSCRIPTION: Es el nombre de tu suscripción.

Después de suscribirte a la plantilla de consulta, puedes consultar la TVF directamente en el conjunto de datos vinculado:

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

Situaciones de ejemplo

Puedes usar plantillas de consulta para facilitar diferentes formas de colaboración de datos dentro de una sala limpia de datos. En las siguientes secciones, se describen situaciones de ejemplo.

Situación de uso compartido unidireccional

Un publicador de datos crea una plantilla de consulta para que los socios suscritos puedan ejecutar solo las consultas que define el publicador. Los creadores de plantillas de consulta aprueban automáticamente las plantillas de consulta porque no se agrega ningún otro colaborador a la sala limpia.

En esta situación, el usuario A es el propietario de una sala limpia de datos que crea una sala limpia de datos llamada campaign_analysis y agrega 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 que solo se vea el esquema de metadatos y los suscriptores de la plantilla no puedan acceder a los datos de origen. Luego, el usuario A crea una plantilla de consulta definiendo una TVF a partir de la tabla campaigns y restringiendo a los suscriptores del conjunto de datos vinculado para que solo ejecuten la TVF.

Esta es la sintaxis de la 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
);

Debido a que el usuario A tiene los permisos adecuados para la tabla campaigns con el rol de propietario de datos de BigQuery, puede autoaprobar de inmediato la plantilla de consulta después de enviarla para su revisión.

Uso compartido de colaboraciones con varias partes

El propietario de una sala limpia invita a un colaborador de confianza a proponer consultas para ejecutar 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 de consulta.

En esta situación, el usuario A invita al usuario B, que es un colaborador de la sala limpia de datos, a la sala limpia campaign_analysis. El usuario B quiere proponer una plantilla de consulta para unir sus propios datos a la tabla campaigns con la visualización del esquema de metadatos de la tabla.

Esta es la sintaxis de la 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
);

Debido a que el usuario B no agregó la tabla campaigns ni es su propietario, solo el usuario A puede aprobar la plantilla de consulta después de que se envíe para su revisión. Para usar la plantilla de consulta, el usuario B debe suscribirse a la sala limpia y, luego, invocar la TVF. El usuario B pasa su propia tabla con un campo llamado campaign_ID como parámetro de tabla y puede ejecutar el SQL centrado en la privacidad definido en la plantilla de consulta. El usuario B no necesita agregar sus datos a la sala limpia.

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

Ahora, el usuario A puede proponer varias plantillas de consulta para unir sus propios datos a la tabla transactions con la visualización del esquema de metadatos de la tabla. A continuación, se muestran ejemplos de la sintaxis de las 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
);

Debido a que el usuario A no agregó ni es propietario de las tablas transactions y products, solo el usuario B puede aprobar la plantilla de consulta después de que se envíe para su revisión. Para usar la plantilla de consulta, el usuario A debe suscribirse a la sala limpia y llamar a la TVF. El usuario A pasa su propia tabla con un campo llamado user_ID como parámetro de tabla y puede ejecutar el SQL centrado en la privacidad definido en la plantilla de consulta. El usuario A no necesita agregar sus datos a la sala limpia.

Precios

En la siguiente tabla, se resume el precio de las plantillas de consultas de la sala limpia de datos de BigQuery:

Rol Detalles de precios
Colaborador de datos Solo se cobra el almacenamiento de datos.
Suscriptor de la plantilla Se cobra solo por el procesamiento (análisis) cuando se ejecutan consultas.

¿Qué sigue?