Crea un conjunto de datos vinculado de BigQuery en un bucket de registros

En este documento, se describe cómo crear un conjunto de datos de BigQuery vinculado en un bucket de registros. Luego, puedes usar los servicios de BigQuery, como BigQuery Studio, Data Studio y la API de BigQuery, para consultar el conjunto de datos vinculado. Un conjunto de datos vinculado de BigQuery es un conjunto de datos de solo lectura en BigQuery que funciona como un puntero a tu bucket de registros. Te permite usar los servicios de BigQuery para consultar tus datos de registro sin duplicarlos ni pagar por almacenamiento independiente en BigQuery.

No puedes crear un conjunto de datos vinculado a BigQuery para una vista de Analytics.

Si no conoces Observability Analytics, consulta la descripción general de Observability Analytics.

Cuándo necesitas un conjunto de datos vinculado

No necesitas un conjunto de datos de BigQuery vinculado cuando deseas consultar tus datos de registros o tus datos de registros y de seguimiento. Para esos casos, puedes usar la página Observability Analytics. También puedes guardar y compartir tus consultas, y guardarlas en un panel personalizado. Para obtener información sobre cómo consultar tus datos de seguimiento, consulta Cómo consultar y analizar seguimientos.

Necesitas un conjunto de datos de BigQuery vinculado cuando quieras hacer cualquiera de las siguientes acciones:

Un conjunto de datos de BigQuery vinculado a un bucket de registros permite que BigQuery lea los datos en el bucket de registros.

Cómo se asignan los buckets y las vistas de registros a los objetos de BigQuery

Cuando creas un conjunto de datos de BigQuery vinculado para un bucket de registros, BigQuery dispone de un nuevo conjunto de datos. Especificas el nombre del conjunto de datos vinculado durante el proceso de vinculación. Todas las vistas de registros dentro del bucket de registros se asignan automáticamente a vistas virtuales en el conjunto de datos. El nombre de una vista virtual es el mismo que el de la vista de registros correspondiente.

Por ejemplo, supongamos que el proyecto my_project tiene un bucket de registros llamado example y que este bucket de registros tiene una vista de registros llamada _AllLogs. Si creas un conjunto de datos vinculado para ese bucket de registros con el nombre my_dataset, la página Explorador de BigQuery mostrará una entrada my_project. Un elemento secundario de la entrada my_project es un conjunto de datos con el nombre my_dataset, y ese conjunto de datos enumera una vista virtual llamada _AllLogs.

Implicaciones del control de acceso cuando se usan conjuntos de datos vinculados

Cuando una principal consulta una vista en un conjunto de datos de BigQuery vinculado, esa consulta se ejecuta a través de la capa de permisos de BigQuery, no de la capa de permisos de Cloud Logging. Por lo tanto, los roles y permisos de BigQuery otorgados a la principal en el conjunto de datos vinculado determinan si puede consultar el conjunto de datos.

No puedes restringir un principal a una vista virtual específica dentro de un conjunto de datos vinculado. Cuando se otorga acceso a un principal al conjunto de datos vinculado, este puede consultar todas las vistas de ese conjunto de datos.

Acciones del sistema que ocurren cuando creas un conjunto de datos vinculado

Cuando creas un conjunto de datos vinculado, inicias una operación de larga duración. Como parte de esa operación, se realizan varias acciones:

  • Los registros de auditoría registran la solicitud para crear un vínculo y la finalización de la operación.
  • Cuando no existe la cuenta de servicio de Monitoring, Google Cloud Observability la crea.

    La API de Cloud Monitoring debe estar habilitada para que se cree esta cuenta de servicio.

  • Google Cloud Observability requiere una cuenta de servicio antes de poder crear un conjunto de datos vinculado. Cuando es necesario, se crea una cuenta de servicio:

  • Un registro de auditoría registra la solicitud del administrador del agente de servicio para otorgar a la cuenta de servicio de Monitoring el rol de IAM de Agente de servicio de Monitoring.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Para obtener los permisos que necesitas para crear un conjunto de datos vinculado, pídele a tu administrador que te otorgue el rol de IAM Escritor de configuración de registros (roles/logging.configWriter) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

  7. Asegúrate de que tu bucket de registros se haya actualizado para usar Análisis de observabilidad:

    1. En la consola de Google Cloud , ve a la página Explorador de registros:

      Ir al Almacenamiento de registros

      Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

    2. Si el bucket de registros muestra Actualizar, haz clic en Actualizar y completa el diálogo.

Cuando desees usar las capacidades de BigQuery para analizar tus datos de registros, actualiza un bucket de registros para usar las Estadísticas de observabilidad y, luego, crea un conjunto de datos vinculado. Con esta configuración, Logging almacena tus datos de registro, pero BigQuery puede leerlos.

Consola de Google Cloud

Para crear un vínculo a un conjunto de datos de BigQuery para un bucket de registros existente, haz lo siguiente:

  1. En la consola de Google Cloud , ve a la página Explorador de registros:

    Ir al Almacenamiento de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Ubica el bucket de registros y verifica que la columna Análisis de observabilidad disponibles muestre Abrir.

    Si en esta columna se muestra Actualizar, significa que el bucket de registros no se actualizó para usar Estadísticas de observabilidad. Configura Estadísticas de observabilidad:

    1. Haz clic en Actualizar.
    2. Haz clic en Confirmar en el diálogo.

    Una vez que se complete la actualización, continúa con el siguiente paso.

  3. En el bucket de registros, haz clic en Más y, luego, en Editar bucket.

    Se abrirá el diálogo Editar bucket de registros.

  4. Selecciona Crear un nuevo conjunto de datos de BigQuery que se vincule a este bucket y, luego, ingresa el nombre del nuevo conjunto de datos.

    El nombre del conjunto de datos debe ser único para cada Google Cloud proyecto. Si ingresas el nombre de un conjunto de datos existente, recibirás el siguiente error: Dataset name must be unique in the selected region.

  5. Haz clic en Listo y, luego, en Actualizar bucket.

    Después de que Logging muestre el nombre del conjunto de datos vinculado en la página Almacenamiento de registros, es posible que BigQuery tarde varios minutos en reconocer el conjunto de datos.

gcloud

Para crear un conjunto de datos vinculado para un bucket de registros que se actualizó para usar Análisis de observabilidad, ejecuta el comando gcloud logging links create:

gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION

El LINK_ID que proporcionas se usa como el nombre del conjunto de datos de BigQuery, y el valor de este campo debe ser único para tu proyecto de Google Cloud .

El comando links create es asíncrono. El valor que devuelve un método asíncrono es un objeto Operation, que contiene información sobre el progreso del método. Cuando se completa el método, el objeto Operation contiene el estado. Para obtener más información, consulta Métodos de API asíncronos.

El comando links create tarda varios minutos en completarse.

Por ejemplo, el siguiente comando crea un conjunto de datos vinculado llamado mylink para el bucket de registros llamado my-bucket:

gcloud logging links create mylink --bucket=my-bucket --location=global

El nombre del conjunto de datos debe ser único para cada Google Cloud proyecto. Si intentas crear un conjunto de datos con el mismo nombre que uno existente, recibirás el siguiente error:

BigQuery dataset with name "LINK_ID" already exists.

Si intentas crear un conjunto de datos vinculado para un bucket de registros que no se actualizó para usar Análisis de observabilidad, se informará el siguiente error:

A link can only be created for an analytics-enabled bucket.

REST

Para crear un conjunto de datos vinculado de BigQuery para un bucket de registros existente que se actualizó para usar las Estadísticas de observabilidad, llama al método asíncrono projects.locations.buckets.links.create de la API de Cloud Logging.

Prepara los argumentos del método de la siguiente manera:

  1. Crea el cuerpo de la solicitud para el comando create. El cuerpo de la solicitud tiene el formato de un objeto Link.
  2. Para el parámetro de consulta del comando, usa linkId=LINK_ID. El LINK_ID que proporcionas se usa como el nombre del conjunto de datos de BigQuery, y el valor de este campo debe ser único para tu proyecto de Google Cloud .

La respuesta a los métodos asíncronos es un objeto Operation. Este objeto contiene información sobre el progreso del método. Cuando se completa el método, el objeto Operation contiene el estado. Para obtener más información, consulta Métodos de API asíncronos.

El método links.create tarda varios minutos en completarse.

El nombre del conjunto de datos debe ser único para cada Google Cloud proyecto. Si intentas crear un conjunto de datos con el mismo nombre que uno existente, recibirás el siguiente error:

BigQuery dataset with name "LINK_ID" already exists.

Si intentas crear un conjunto de datos vinculado para un bucket de registros que no se actualizó para usar Análisis de observabilidad, se informará el siguiente error:

A link can only be created for an analytics-enabled bucket.

¿Qué sigue?