Vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE

La vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE contiene los metadatos casi en tiempo real sobre el consumo de tus tablas de conjunto de datos compartidos. Para comenzar a compartir los datos entre las organizaciones, consulta Analytics Hub.

Roles obligatorios

Para obtener el permiso que necesitas para consultar la vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE, pídele a tu administrador que te otorgue el rol de IAM de propietario de datos de BigQuery (roles/bigquery.dataOwner) en tu proyecto de origen. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

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

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

Esquema

La columna job_start_time particiona los datos subyacentes y project_id y dataset_id los agrupan.

INFORMATION_SCHEMA.SHARED_DATASET_USAGE tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
project_id STRING (Columna de agrupamiento en clústeres) El ID del proyecto que contiene el conjunto de datos compartido.
dataset_id STRING (Columna de agrupamiento en clústeres) El ID del conjunto de datos compartidos.
table_id STRING El ID de la tabla a la que se accede.
data_exchange_id STRING La ruta del recurso del intercambio de datos.
listing_id STRING La ruta del recurso de la ficha.
job_start_time TIMESTAMP (Columna de partición) La hora de inicio de este trabajo.
job_end_time TIMESTAMP La hora de finalización de este trabajo.
job_id STRING El ID del trabajo. Por ejemplo, bquxjob_1234.
job_project_number INTEGER El 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 El 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 ejecutó el trabajo. Este es el número de organización del suscriptor. Este campo está vacío para los proyectos que no tienen una organización.
subscriber_org_display_name STRING Una string legible que hace referencia a la organización en la que se ejecutó el trabajo. Este es el número de organización del suscriptor. Este campo está vacío para los proyectos que no tienen una organización.
num_rows_processed INTEGER La cantidad de filas procesadas en esta tabla por el trabajo.
total_bytes_processed INTEGER El total de bytes procesados en esta tabla por el trabajo.

Retención de datos

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

Permiso y sintaxis

Las consultas realizadas a esta vista deben incluir un calificador de región. Si no especificas un calificador regional, los metadatos se recuperan de la región de EE.UU. En la siguiente tabla, se explica el permiso de la región para esta vista:

Nombre de la vista Permiso del recurso Permiso 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
Reemplaza lo siguiente:

  • Opcional: PROJECT_ID: el ID del proyecto de Google Cloud. 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, agrega 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.

Obtén la cantidad total de trabajos ejecutados en todas las tablas compartidas

En el siguiente ejemplo, se calcula el total de trabajos que ejecutan los suscriptores para 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 verificar el total de trabajos que ejecutan los suscriptores, usa la cláusula WHERE:

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

Obtén la tabla más usada según la cantidad de filas procesadas

La siguiente consulta calcula la tabla más usada según la cantidad 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 es similar a este:

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

Busca las organizaciones principales que consumen tus tablas

En la siguiente consulta, se calculan los suscriptores principales según la cantidad de bytes procesados de tus tablas. También puedes usar la columna num_rows_processed como una 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 es similar a este:

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

Para los suscriptores sin una organización, puedes usar job_project_number en lugar de subscriber_org_number.

Obtén métricas de uso para tu intercambio de datos

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

  1. Busca todas las fichas que pertenecen 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"