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

Un conjunto de datos de BigQuery vinculado en un bucket de registros te permite consultar y analizar tus datos de registro con servicios de BigQuery, como BigQuery Studio y Data Studio. Debido a que un conjunto de datos de BigQuery vinculado es un puntero de solo lectura a tu bucket de registros, puedes unir datos de registro con otros conjuntos de datos y crear políticas de alertas basadas en SQL sin duplicar datos ni pagar por un almacenamiento de BigQuery independiente.

No puedes crear un conjunto de datos de BigQuery vinculado para una vista de análisis. Si no conoces las Estadísticas de observabilidad, consulta la descripción general de las Estadísticas de observabilidad.

Cuándo necesitas un conjunto de datos de BigQuery vinculado

No necesitas un conjunto de datos de BigQuery vinculado cuando quieres consultar tus datos de registro o tus datos de registro y seguimiento. Para esas situaciones, puedes usar la página Estadísticas de observabilidad. También puedes guardar y compartir tus consultas, y puedes guardar la consulta en un panel personalizado. Para obtener información sobre cómo consultar tus datos de seguimiento, consulta Consulta y analiza seguimientos.

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

Un conjunto de datos de BigQuery vinculado para un bucket de registros permite que BigQuery lea los datos del bucket de registros.

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

Cuando creas un conjunto de datos de BigQuery vinculado para un bucket de registros, un conjunto de datos nuevo estará disponible para BigQuery. Especificas el nombre del conjunto de datos de BigQuery vinculado durante el proceso de vinculación. Cualquier vista de registro dentro del bucket de registros se asigna automáticamente a las vistas virtuales en el conjunto de datos. El nombre de una vista virtual es el mismo que el de la vista de registro 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 registro llamada _AllLogs. Si creas un conjunto de datos de BigQuery 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 de BigQuery 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 de BigQuery 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 una principal al conjunto de datos de BigQuery vinculado, esta puede consultar todas las vistas de ese conjunto de datos.

Acciones del sistema que se producen cuando creas un conjunto de datos vinculado

Cuando creas un vínculo en un conjunto de datos de observabilidad, sucede lo siguiente:

  • Google Cloud Observability puede crear las siguientes cuentas de servicio o modificar sus otorgamientos de roles de IAM:

  • En los registros de auditoría, se registra la solicitud para crear un vínculo y 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. Estos registros también guardan la finalización de la operación de larga duración.

Antes de comenzar

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

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

  3. 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 de 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.

  4. Asegúrate de que tu bucket de registros se haya actualizado para usar Estadísticas 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 quieras usar las funciones de BigQuery para analizar tus datos de registro, 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 Estadísticas 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 las Estadísticas de observabilidad:

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

    Una vez completada 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 conjunto de datos nuevo.

    El nombre del conjunto de datos debe ser único para cada proyecto de Google Cloud . 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 las Estadísticas de observabilidad, ejecuta el comando gcloud logging links create:

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

El LINK_ID que proporciones se usará 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 resultado de 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, con el siguiente comando, se 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 proyecto de Google Cloud . 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 las Estadísticas 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 de BigQuery vinculado 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 proporciones se usará 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 proyecto de Google Cloud . 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 las Estadísticas de observabilidad, se informará el siguiente error:

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

¿Qué sigue?