Introducción a la supervisión de BigQuery
La supervisión de BigQuery te permite hacer un seguimiento del uso de recursos, la ejecución de trabajos y el estado operativo en tus cargas de trabajo para identificar cuellos de botella y mantener la confiabilidad.
La supervisión y el registro son fundamentales para ejecutar aplicaciones confiables en la nube. Las cargas de trabajo de BigQuery no son la excepción, en especial si la tuya tiene volúmenes altos o es crítica.
Las fuentes de supervisión varían según la frecuencia de muestreo y el nivel de agregación. Por ejemplo, las vistas de esquemas de información suelen proporcionar un nivel de detalle más alto que las métricas de Cloud Monitoring. Como resultado, los gráficos de métricas pueden diferir temporalmente de los datos del esquema de información hasta que la agregación suavice las diferencias. Cuando diseñes una estrategia de supervisión, evalúa la latencia, la precisión y la exactitud en función de tus requisitos.
Métricas
Las métricas son valores numéricos que se recopilan a intervalos periódicos y están disponibles para el análisis. Puedes usar métricas para lo siguiente:
- Crear gráficos y paneles.
- Activar alertas para condiciones o situaciones que necesiten intervenciones humanas.
- Analizar el historial de rendimiento.
En el caso de BigQuery, las métricas disponibles incluyen la cantidad de trabajos que se ejecutan, cuántos bytes se analizaron durante una consulta y la distribución de los tiempos de consulta. Las métricas de una consulta solo estarán disponibles después de que se completen de forma correcta y podrían tardar hasta siete minutos en informarse. Las métricas de las consultas que fallan no se informan. Para obtener una lista completa de
las métricas disponibles, incluidas sus tasas de muestreo, visibilidad y limitaciones, consulta
bigquery en
Métricas deGoogle Cloud .
Usa Cloud Monitoring para ver las métricas de BigQuery y crear gráficos y alertas. Cada métrica tiene un tipo de recurso, ya sea bigquery_dataset, bigquery_project o global, y un conjunto de etiquetas. Puedes
agrupar o filtrar cada métrica con las etiquetas.
Por ejemplo, para graficar la cantidad de consultas interactivas en tránsito, usa la
siguiente sentencia de PromQL, que filtra por priority igual a interactive:
{"bigquery.googleapis.com/query/count", monitored_resource="global", priority="interactive"}
En el siguiente ejemplo, se obtiene la cantidad de trabajos de carga en tránsito, agrupados en intervalos de 10 minutos:
avg_over_time({"bigquery.googleapis.com/job/num_in_flight",
monitored_resource="bigquery_project",
job_type="load"
}[10m])
A fin de obtener más información, consulta la sección sobre cómo crear gráficos y alertas para BigQuery.
Registros
Los registros son registros de texto que se generan en respuesta a eventos o acciones particulares. BigQuery crea entradas de registro para acciones como crear o borrar una tabla, comprar ranuras o ejecutar un trabajo de carga. Para obtener más información sobre el registro en Google Cloud, consulta Cloud Logging.
Un registro es una colección de solo entrada de entradas de registro. Por ejemplo, puedes escribir tus propias entradas de registro en un registro llamado projects/PROJECT_ID/logs/my-test-log. Muchos
servicios deGoogle Cloud , incluido BigQuery, crean un tipo de
registro llamado registros de auditoría. Esto es lo que registran:
- La actividad administrativa, como crear o modificar recursos
- El acceso a datos, como la lectura de datos proporcionados por el usuario de un recurso
- Los eventos del sistema que generan los sistemas de Google, en lugar de las acciones del usuario
Los registros de auditoría se escriben en formato JSON estructurado. El tipo de datos base para
las entradas de registro deGoogle Cloud es la
estructura LogEntry. Esta estructura contiene el nombre del registro, el recurso que generó la entrada de registro, la marca de tiempo (UTC) y otro tipo de información básica.
Los detalles del evento registrado se incluyen en un subcampo llamado carga útil. Para los registros de auditoría, el campo de carga útil se llama protoPayload. El valor de este campo es una estructura AuditLog, indicada por el valor del campo protoPayload.@type, que se configura como type.googleapis.com/google.cloud.audit.AuditLog.
Para las operaciones en conjuntos de datos, tablas y trabajos, BigQuery escribe
registros de auditoría en dos formatos diferentes, aunque ambos comparten el tipo de base
AuditLog.
En el formato anterior:
- El campo
resource.typeesbigquery_resource. - Los detalles de la operación se escriben en el campo
protoPayload.serviceData. El valor de este campo es una estructuraAuditData.
En el formato más reciente:
- El campo
resource.typeesbigquery_projectobigquery_dataset. El recursobigquery_projecttiene entradas de registro sobre los trabajos, mientras que el recursobigquery_datasettiene entradas de registro sobre el almacenamiento. - Los detalles de la operación se escriben en el campo
protoPayload.metadata. El valor de este campo es una estructuraBigQueryAuditMetadata.
Recomendamos consumir registros en el formato más reciente. Para obtener más información, consulta la guía de migración de registros de auditoría.
A continuación, se muestra un ejemplo abreviado de una entrada de registro que muestra una operación con errores:
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 5,
"message": "Not found: Dataset my-project:my-dataset was not found in location US"
},
"authenticationInfo": { ... },
"requestMetadata": { ... },
"serviceName": "bigquery.googleapis.com",
"methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
"metadata": {
},
"resource": {
"type": "bigquery_project",
"labels": { .. },
},
"severity": "ERROR",
"logName": "projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access",
...
}
Para las operaciones en BigQuery Reservations, protoPayload es una estructura AuditLog y los campos protoPayload.request y protoPayload.response contienen más información para crear el adjunto de VLAN de supervisión. Puedes encontrar las definiciones de campo en la API de BigQuery Reservation. Para obtener más información, consulta Supervisa BigQuery Reservations.
Vistas de esquemas de información de BigQuery
Las vistas de esquema de información son otra fuente de estadísticas en BigQuery, que puedes usar junto con las métricas y los registros.
Estas vistas contienen metadatos sobre trabajos, conjuntos de datos, tablas y otras entidades de BigQuery. Por ejemplo, puedes obtener metadatos en tiempo real sobre qué trabajos de BigQuery se ejecutaron durante un período específico y, luego, agrupar o filtrar los resultados por proyecto, usuario, tablas a las que se hace referencia y otras dimensiones.
Puedes usar esta información para realizar un análisis más detallado sobre tus cargas de trabajo de BigQuery y responder preguntas como las siguientes:
- ¿Cuál es el uso promedio de las ranuras de todas las búsquedas de los últimos 7 días de un proyecto determinado?
- ¿Qué usuarios enviaron un trabajo de carga por lotes para un proyecto determinado?
- ¿Qué errores de transmisión ocurrieron en los últimos 30 minutos, agrupados por código de error?
En particular, consulta los metadatos de trabajos, los metadatos de transmisión y los metadatos de reservas para obtener estadísticas sobre el rendimiento de tus cargas de trabajo de BigQuery.
Puedes encontrar ejemplos de consultas de esquema de información en
GitHub
que muestran el uso de ranuras y reservas de una organización, así como la ejecución de los trabajos
y los errores de estos. Por ejemplo, con la siguiente consulta, se proporciona una lista de
consultas que están pendientes o en ejecución. Estas consultas se ordenan
por la cantidad de tiempo desde que se crearon en la región us:
SELECT
creation_time,
project_id,
user_email,
job_id,
job_type,
priority,
state,
TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), start_time,second) as running_time_sec
FROM
`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP()
AND state != "DONE"
ORDER BY
running_time_sec DESC
Para obtener más información, consulta Soluciona problemas de rendimiento de BigQuery con estos paneles.
Además de escribir tus propias consultas, puedes usar las herramientas de supervisión de BigQuery en la consola de Google Cloud :
- Supervisa el estado, el uso de recursos y los trabajos. Visualiza los paneles de estado operativo y los gráficos de recursos de administrador de BigQuery que hacen un seguimiento del uso de ranuras, la simultaneidad de los trabajos y el tiempo de ejecución de los trabajos en toda tu organización y tus reservas.
- Supervisa los trabajos. Busca, filtra y agrupa ejecuciones de consultas individuales en toda tu organización para inspeccionar gráficos de ejecución de consultas, identificar a los principales consumidores de ranuras y solucionar problemas de trabajos problemáticos.
Mapa de telemetría
En la siguiente tabla, se asignan las funciones y los recursos de BigQuery a su telemetría de supervisión operativa, los servicios y recursos de la API auditados, y la documentación de referencia de los registros de auditoría. Puedes usarla para encontrar la telemetría que necesitas para solucionar problemas, optimizar el rendimiento, controlar los costos, auditar el uso y mantener el cumplimiento.
A diferencia de muchos servicios de Google Cloud que escriben registros de trabajos operativos en
Cloud Logging, BigQuery escribe la telemetría de los trabajos operativos en
vistas de esquemas de información, como
INFORMATION_SCHEMA.JOBS. Estas
vistas capturan las etapas de ejecución de las consultas, el uso de ranuras, los bytes facturados y todos
los trabajos enviados, incluidos los trabajos en curso y los que fallaron.
BigQuery usa Logging principalmente para emitir Registros de auditoría de Cloud, que registran la actividad administrativa y de acceso a los datos. Cuando auditas esta actividad, puedes determinar quién accedió a los recursos o datos, dónde y cuándo.
No se emiten registros de auditoría para cada interrupción o falla del trabajo. Por ejemplo,
los trabajos con errores no generan eventos TableDataRead ni TableDataChange, y
jobCompletedEvent solo registra las finalizaciones de trabajos correctas. Para obtener detalles sobre
situaciones en las que no se emiten registros de auditoría, consulta
Acceso a los datos en la
descripción general de los registros de auditoría de BigQuery.
En la siguiente tabla, un asterisco (*) en un nombre de vista INFORMATION_SCHEMA
indica variantes de vista específicas del alcance, como _BY_PROJECT, _BY_USER,
_BY_FOLDER y _BY_ORGANIZATION.
| Función o recurso | Supervisión operativa | Registros de auditoría de Cloud |
|---|---|---|
| Consultas y trabajos |
Vistas del esquema de información:
Consola:
Métricas: Métricas de Cloud Monitoring, como |
Servicio de la API:
Recursos auditados: trabajos en Registros de auditoría: Registros de acceso a los datos con |
| Tablas y vistas |
Vistas del esquema de información:
Métricas: Métricas de Monitoring, como |
Servicios de API:
Recursos auditados: tablas, vistas y vistas materializadas
en Registros de auditoría: Registros de acceso a los datos con
|
| Conjuntos de datos |
Vistas del esquema de información:
|
Servicio de la API:
Recursos auditados: conjuntos de datos, políticas de IAM de conjuntos de datos y LCA de conjuntos de datos en Registros de auditoría: Registros de actividad del administrador y de acceso a los datos
con |
| Ranuras y reservas |
Vistas del esquema de información:
Consola:
Métricas: Métricas de Monitoring, como |
Servicio de la API:
Recursos auditados: reservas, compromisos de capacidad
y asignaciones de reservas en
Registros de auditoría: Registros de actividad del administrador y de acceso a los datos para crear, modificar, borrar y enumerar reservas, compromisos de capacidad y asignaciones de proyectos o carpetas. Consulta Registro de auditoría de la API de BigQuery Reservation. |
| Seguridad a nivel de la columna y enmascaramiento de datos |
Vistas del esquema de información:
|
Servicios de API:
Recursos auditados: taxonomías y etiquetas de política en
Registros de auditoría: Registros de actividad del administrador y de acceso a los datos para
la administración de taxonomías y etiqueta de política, y los cambios en la política de IAM (Audita las etiquetas de política);
administración de políticas de datos y actualizaciones de beneficiarios (Registro de auditoría de políticas de datos de BigQuery);
y registros de |
| Rutinas, incluidas las UDF y los procedimientos almacenados |
Vistas del esquema de información:
|
Servicio de la API:
Recursos auditados: funciones definidas por el usuario (UDF),
funciones de tabla y procedimientos almacenados en Registros de auditoría: Registros de actividad del administrador y de acceso a los datos
con |
| Conexiones externas |
Vistas del esquema de información:
|
Servicio de API:
Recursos auditados: conexiones y políticas de IAM de conexión en Registros de auditoría: Registros de actividad del administrador y de acceso a los datos para la creación de conexiones, las actualizaciones de credenciales, la eliminación, la creación de listas y los cambios en las políticas de IAM. Consulta Registro de auditoría de la API de BigQuery Connection. |
| BigQuery sharing |
Vistas del esquema de información:
|
Servicio de la API:
Recursos auditados: Intercambios de datos, fichas,
suscripciones y políticas de IAM de intercambio o fichas en
Registros de auditoría: Registros de actividad del administrador y de acceso a los datos para el intercambio de datos y la creación, actualización y eliminación de fichas, los cambios en las políticas de IAM y las operaciones de los suscriptores. Consulta Registro de auditoría de uso compartido. |
| Servicio de transferencia de datos de BigQuery |
Métricas y registros:
|
Servicio de API:
Recursos auditados: configuraciones de transferencia, ejecuciones de transferencia y fuentes de datos en Registros de auditoría: Registros de actividad del administrador y de acceso a los datos para crear, actualizar, borrar, enumerar e iniciar ejecuciones y parámetros de configuración de transferencia. Consulta los registros de auditoría del Servicio de transferencia de datos de BigQuery. |
| Catálogos y tablas de BigLake |
Vistas del esquema de información: |
Servicios de API:
Recursos auditados: Catálogos, bases de datos,
tablas y particiones de almacén de metadatos en Registros de auditoría: Registros de actividad del administrador y de acceso a los datos para las operaciones de políticas de IAM de catálogo, base de datos, espacio de nombres, tabla, partición y catálogo. Consulta Registros de auditoría de BigLake. |
| Servicio de migración de BigQuery |
Estado e informes:
|
Servicio de API:
Recursos auditados: flujos de trabajo de migración, subtareas de migración y solicitudes de traducción de SQL en Registros de auditoría: Registros de acceso a los datos para crear, iniciar, enumerar, ver y borrar flujos de trabajo y subtareas de migración, y traducir consultas en SQL. Consulta los registros de auditoría del Servicio de migración de BigQuery. |
¿Qué sigue?
- Obtén más información para supervisar y filtrar trabajos con el explorador de trabajos.
- Obtén más información para supervisar el estado y el uso de recursos.
- Aprende a crear gráficos y alertas para BigQuery.