Vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE

La vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE contiene los metadatos casi en tiempo real sobre el consumo de las tablas de tu conjunto de datos compartido. Para empezar a compartir datos entre organizaciones, consulte Compartir datos de BigQuery (antes Analytics Hub).

Roles obligatorios

Para obtener el permiso que necesitas para consultar la vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE, pide a tu administrador que te asigne el rol de gestión de identidades y accesos Propietario de datos de BigQuery (roles/bigquery.dataOwner) en tu proyecto de origen. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso bigquery.datasets.listSharedDatasetUsage INFORMATION_SCHEMA.SHARED_DATASET_USAGE, que es necesario para consultar la vista bigquery.datasets.listSharedDatasetUsage INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

También puedes obtener este permiso con roles personalizados u otros roles predefinidos.

Esquema

Los datos subyacentes se particionan por la columna job_start_time y se agrupan en clústeres por project_id y dataset_id.

INFORMATION_SCHEMA.SHARED_DATASET_USAGE tiene el siguiente esquema:

Nombre de la columna Data type (Dato) Valor
project_id STRING (Columna de clustering) ID del proyecto que contiene el conjunto de datos compartido.
dataset_id STRING (Columna de clustering): ID del conjunto de datos compartido.
table_id STRING ID de la tabla a la que se ha accedido.
data_exchange_id STRING Ruta del recurso del intercambio de datos.
listing_id STRING Ruta de recurso de la ficha.
job_start_time TIMESTAMP (Columna de partición) Hora de inicio de este trabajo.
job_end_time TIMESTAMP Hora de finalización de este trabajo.
job_id STRING El ID del trabajo. Por ejemplo, bquxjob_1234.
job_project_number INTEGER Número del proyecto al que pertenece este trabajo.
job_location STRING La ubicación del trabajo.
linked_project_number INTEGER El número de proyecto del proyecto del suscriptor.
linked_dataset_id STRING ID del conjunto de datos vinculado del conjunto de datos del suscriptor.
subscriber_org_number INTEGER El número de organización en el que se ha ejecutado el trabajo. Es el número de organización del suscriptor. Este campo está vacío en los proyectos que no tienen una organización.
subscriber_org_display_name STRING Cadena legible por humanos que hace referencia a la organización en la que se ha ejecutado el trabajo. Es el número de organización del suscriptor. Este campo está vacío en los proyectos que no tienen una organización.
job_principal_subject STRING El identificador principal (ID de correo de usuario, cuenta de servicio, ID de correo de grupo o dominio) de los usuarios que ejecutan trabajos y consultas en conjuntos de datos vinculados.
num_rows_processed INTEGER Número de filas procesadas de esta tabla por el trabajo.
total_bytes_processed INTEGER El total de bytes procesados de esta tabla por la tarea.

Conservación de datos

La vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE contiene los trabajos en curso y el historial de trabajos de los últimos 180 días.

Ámbito y sintaxis

Las consultas en esta vista deben incluir un calificador de región. Si no especifica un calificador regional, los metadatos se obtienen de la región de EE. UU. En la siguiente tabla se explica el ámbito de la región de esta vista:

Nombre de la vista Ámbito de los recursos Ámbito de la región
[PROJECT_ID.]INFORMATION_SCHEMA.SHARED_DATASET_USAGE Nivel de proyecto Región de EE. UU.
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE Nivel de proyecto REGION
Sustituye lo siguiente:
  • Opcional: PROJECT_ID: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado.
  • REGION: cualquier nombre de región del conjunto de datos. Por ejemplo, `region-us`.

Ejemplos

Para ejecutar la consulta en un proyecto que no sea el predeterminado, añade el ID del proyecto con el siguiente formato:

PROJECT_ID.region-REGION_NAME.INFORMATION_SCHEMA.SHARED_DATASET_USAGE

Por ejemplo, myproject.region-us.INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

Obtener el número total de trabajos ejecutados en todas las tablas compartidas

En el siguiente ejemplo se calcula el número total de trabajos ejecutados por los suscriptores de un proyecto:

SELECT
  COUNT(DISTINCT job_id) AS num_jobs
FROM
  `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE

El resultado es similar al siguiente:

+------------+
| num_jobs   |
+------------+
| 1000       |
+------------+

Para comprobar el número total de trabajos ejecutados por los suscriptores, usa la cláusula WHERE:

  • En el caso de los conjuntos de datos, usa WHERE dataset_id = "...".
  • En el caso de las tablas, usa WHERE dataset_id = "..." AND table_id = "...".

Obtener la tabla más usada en función del número de filas procesadas

La siguiente consulta calcula la tabla más usada en función del número de filas procesadas por los suscriptores.

SELECT
  dataset_id,
  table_id,
  SUM(num_rows_processed) AS usage_rows
FROM
  `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
GROUP BY
  1,
  2
ORDER BY
  3 DESC
LIMIT
  1

El resultado debería ser similar al siguiente:

+---------------+-------------+----------------+
| dataset_id    | table_id      | usage_rows     |
+---------------+-------------+----------------+
| mydataset     | mytable     | 15             |
+---------------+-------------+----------------+

Buscar las organizaciones principales que consumen tus tablas

La siguiente consulta calcula los suscriptores principales en función del número de bytes procesados de tus tablas. También puede usar la columna num_rows_processed como métrica.

SELECT
  subscriber_org_number,
  ANY_VALUE(subscriber_org_display_name) AS subscriber_org_display_name,
  SUM(total_bytes_processed) AS usage_bytes
FROM
  `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
GROUP BY
  1

El resultado debería ser similar al siguiente:

+--------------------------+--------------------------------+----------------+
|subscriber_org_number     | subscriber_org_display_name    | usage_bytes    |
+-----------------------------------------------------------+----------------+
| 12345                    | myorganization                 | 15             |
+--------------------------+--------------------------------+----------------+

Si no tienes una organización, puedes usar job_project_number en lugar de subscriber_org_number.

Obtener métricas de uso de tu intercambio de datos

Si su intercambio de datos y su conjunto de datos de origen están en proyectos diferentes, siga estos pasos para ver las métricas de uso de su intercambio de datos:

  1. Busca todas las fichas que pertenezcan a tu intercambio de datos.
  2. Recupera el conjunto de datos de origen adjunto a la ficha.
  3. Para ver las métricas de uso de tu intercambio de datos, usa la siguiente consulta:
SELECT
  *
FROM
  source_project_1.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
WHERE
  dataset_id='source_dataset_id'
AND data_exchange_id="projects/4/locations/us/dataExchanges/x1"
UNION ALL
SELECT
  *
FROM
  source_project_2.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
WHERE
  dataset_id='source_dataset_id'
AND data_exchange_id="projects/4/locations/us/dataExchanges/x1"