Usa plantillas de consultas

Las plantillas de consultas de las salas limpias de datos de BigQuery aceleran el tiempo de obtención de estadísticas y proporcionan capas adicionales de seguridad y control para minimizar las preocupaciones sobre la filtración de datos. Si predefines y limitas las consultas que se pueden ejecutar en las salas limpias 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 mayor flexibilidad para explorar, los propietarios de los datos sienten que existe un mayor riesgo de exposición accidental o intencional de información sensible.

  • Simplifica la integración y la adopción para los usuarios menos técnicos. Muchos proveedores de datos esperan que los suscriptores de las salas limpias tengan menos conocimientos técnicos, en especial en la escritura de consultas SQL centradas en la privacidad y la comprensión de cómo asignar de forma adecuada los presupuestos de privacidad.

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

Las plantillas de consultas permiten que los propietarios y colaboradores de datos creen consultas predefinidas y aprobadas que se adapten específicamente a los casos de uso de la sala limpia de datos, y que publiquen estas consultas para que los suscriptores las consuman. Las consultas predefinidas usan funciones con valores de tabla (TVF) en BigQuery para permitir que se pasen como parámetros de entrada una tabla completa o campos específicos, y que se muestre una tabla como resultado.

Limitaciones

  • Las plantillas de consultas solo 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 del parámetro de datos que acepta la TVF.
    • Se puede 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 plantillas de consultas solo admiten los tipos fijos TABLE y VIEW.
  • Las definiciones de plantillas de consultas están sujetas a las mismas limitaciones que las TVF.

Antes de comenzar

Sigue estos pasos para habilitar la API de Analytics Hub para tu Google Cloud proyecto:

Console

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

    Ir a la API de Analytics Hub

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

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

bq

Ejecuta el comando gcloud services enable:

gcloud services enable analyticshub.googleapis.com

Roles requeridos

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
  • Sigue estos pasos para 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 o con otros roles predefinidos.

Agrega un TVF existente a una sala limpia de datos

Puedes agregar un 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: ID del proyecto en el que se creó la sala limpia de datos.
  • PROJECT_ID: Es el ID del proyecto en el que se encontraba el conjunto de datos de origen.
  • DATASET_ID: Es el ID del conjunto de datos de origen.
  • LOCATION: 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.
  • LISTING_NAME: Es el nombre de la ficha.
  • ROUTINE_ID: Es el ID de la rutina.

Roles de plantillas de consulta

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 más adelante en este documento.

Flujos de trabajo del creador 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. 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).

    1. 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 poder usarlos 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: Los metadatos de la vista que se creó para tus datos ahora se agregan a la sala limpia.

Crea una plantilla de consulta

Selecciona una de las siguientes opciones:

Console

  1. 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. En la sala limpia, ve a la pestaña Plantillas.

  4. Haz clic en Crear plantilla.

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

  6. Haz clic en Siguiente.

  7. Puedes ver los esquemas de las vistas agregadas a la sala limpia y proponer una definición de consulta.

    1. Asegúrate de definir la consulta con la sintaxis CREATE TABLE FUNCTION admitida.
    2. Pasa toda tu tabla o vista con definiciones fijas. 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. Por ejemplo:

      query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
      
    3. Si aplicaste reglas de análisis de privacidad a los datos, asegúrate de que esta TVF incluya sintaxis de SQL específica para la privacidad, por ejemplo, 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 DRAFT.

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

Reemplaza lo siguiente:

  • DCR_PROJECT_ID: ID del proyecto en el que se creó la sala limpia de datos.
  • LOCATION: 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 búsqueda.
  • TVF_DEFINITION: Es la definición de la TVF.

En el siguiente muestra de código, se muestra 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 objeto 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. Si la plantilla de búsqueda ya se envió para su revisión, no podrás modificarla.

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

Console

  1. 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 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 para su 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"
  }'

Reemplaza lo siguiente:

  • DCR_PROJECT_ID: ID del proyecto en el que se creó la sala limpia de datos.
  • LOCATION: 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 búsqueda.

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

Selecciona una de las siguientes opciones:

Console

  1. 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 revisión. Ahora la plantilla tiene el estado Requiere revisión.

API

En el siguiente ejemplo, se muestra cómo enviar una plantilla de búsqueda para su revisión 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

Reemplaza lo siguiente:

  • DCR_PROJECT_ID: ID del proyecto en el que se creó la sala limpia de datos.
  • LOCATION: 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 búsqueda.

Borra una plantilla de búsqueda

Solo puedes borrar una plantilla de búsqueda si está en estado BORRADOR. Si la plantilla de búsqueda ya se envió para su revisión, no podrás borrarla.

Selecciona una de las siguientes opciones:

Console

  1. 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 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

Reemplaza lo siguiente:

  • DCR_PROJECT_ID: ID del proyecto en el que se creó la sala limpia de datos.
  • LOCATION: 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 búsqueda.

Flujos de trabajo de aprobación de plantillas

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

Cuando una TVF 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 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.

Cómo aprobar una plantilla de consulta

Selecciona una de las siguientes opciones:

Console

  1. 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 el TVF para compartirlo.

  7. Revisa la plantilla de consulta propuesta.

  8. Haz clic en Aprobar si la plantilla de consulta está aprobada para su uso en la sala limpia.

API

  1. Crea la rutina a partir de la plantilla de consulta con una llamada a 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}'

    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: 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 en el que se encontraba 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 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: 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 búsqueda.

Rechaza una plantilla de búsqueda

En la consola de Google Cloud , puedes rechazar una plantilla de consulta de las siguientes maneras:

Plantillas de flujos de trabajo de suscriptores

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

Cómo suscribirse a una plantilla de consulta

Selecciona una de las siguientes opciones:

Console

Para suscribirte a una plantilla de consulta, suscríbete a la sala limpia de datos. Se otorga acceso a todas las fichas que tienen inhabilitado el parámetro de configuración Exclude access to listing from linked dataset.

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

  1. Ve a la página de BigQuery.

    Ir a BigQuery

  2. Navega al conjunto de datos vinculado que creaste cuando te suscribiste a la sala limpia.

  3. Abre la rutina o la TVF que se comparten 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 el 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 Explorador, puedes consultar la TVF 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 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: ID del proyecto en el que se creó la sala limpia de datos.
  • LOCATION: 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.
  • SUBSCRIPTION: 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 `myproject.dcr_linked_dataset.mytvf`(TABLE myTable);

Situaciones de ejemplo

Las plantillas de consultas se pueden usar 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 verificar que los socios suscriptores solo puedan ejecutar las consultas que define el publicador. En última instancia, los creadores de plantillas de consultas se autoaprueban, ya que no se agrega ningún otro colaborador a la sala limpia.

En esta situación, el usuario A es 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 verificar que solo se vea el esquema de metadatos y que los suscriptores no puedan acceder a los datos de origen. Luego, el usuario A crea una plantilla de consulta definiendo una función con valor de tabla a partir de la tabla campaigns, lo que restringe a todos los suscriptores del conjunto de datos vinculado a ejecutar solo 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 myproject.my_campaign.campaigns
group by company_id, company
);

Dado que el usuario A tiene los permisos adecuados para la tabla de campañas 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 colaboración con múltiples 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, ya que solo ven 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 esta situación, el usuario A invita al usuario B, que es colaborador de la sala limpia de datos, a la sala limpia campaign_analysis. El usuario B desea proponer una plantilla de consulta para unir sus propios datos a la tabla campaigns. Para ello, debe ver el 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
);

Dado que el usuario B no agregó ni posee la tabla campaigns, 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 y llamar a 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 privado definido en la plantilla de consulta. Es útil tener en cuenta aquí que 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 de datos que tiene una tabla transactions y una tabla products. El usuario B configura las políticas de umbral de agregación y los 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 consultas para unir sus propios datos a la tabla de transacciones viendo el 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 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
);

Dado que el usuario A no agregó las tablas transactions y products, y no es propietario de ellas, 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 sala limpia y, luego, invocar 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 de privacidad definido en la plantilla de consulta. Es útil tener en cuenta que el usuario A no necesita agregar sus datos a la sala limpia.

Precios

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

A los suscriptores que usan plantillas de consulta solo se les cobra por el procesamiento (análisis) cuando ejecutan consultas.

¿Qué sigue?