Configurar exportaciones

En esta página, se explica cómo exportar seguimientos con la API de Cloud Trace y Google Cloud CLI. Debes usar la versión 274.0.0 o una posterior de Google Cloud CLI. Consulta gcloud components update para obtener información sobre cómo actualizar Google Cloud CLI.

Algunas muestras en esta página se generaron mediante curl. Para obtener información sobre cómo configurar esta herramienta, consulta Usa curl.

Si deseas ver un ejemplo en el que se ilustra el uso de los comandos de Google Cloud CLI para enumerar, crear, describir, actualizar y borrar un receptor, consulta Ejemplo de extremo a extremo.

Terminología

Para simplificar los ejemplos en esta página, se usaron variables de entorno.

Los ejemplos de Google Cloud CLI usan las siguientes variables de entorno:

  • SINK_ID: Es el nombre o el identificador, del receptor. Por ejemplo, my-sink No necesitas proporcionar el comando completamente calificado a Google Cloud CLI, ya que puede determinar tu proyecto de Google Cloud.
  • DESTINATION: Almacena el nombre completamente calificado del destino. Este debe ser un conjunto de datos de BigQuery. Por ejemplo, el siguiente es un destino válido:

    bigquery.googleapis.com/projects/DESTINATION_PROJECT_NUMBER/datasets/DATASET_ID
    

    En el ejemplo anterior, DESTINATION_PROJECT_NUMBER es el número del proyecto de Google Cloud del destino y DATASET_ID es el identificador del conjunto de datos de BigQuery.

En los ejemplos de curl, se usan las siguientes variables de entorno:

  • ACCESS_TOKEN: Almacena el token de autorización. Para obtener más información, consulta Usa curl.
  • PROJECT_ID: Almacena el identificador o el número de proyecto del proyecto de Google Cloud.
  • PROJECT_NUMBER: Almacena el número de proyecto de Google Cloud.
  • SINK_ID: Es el nombre o el identificador, del receptor. Por ejemplo, my-sink
  • SINK_BODY: Almacena la descripción de un recurso TraceSink. El recurso TraceSink incluye un nombre y el destino del receptor. El nombre debe especificar el número del proyecto de Google Cloud.
  • DESTINATION: Almacena el nombre completamente calificado del destino. Este debe ser un conjunto de datos de BigQuery.

Configura el destino

Para exportar seguimientos a BigQuery, haz lo siguiente:

  1. Crea el conjunto de datos de destino.

  2. Crea el receptor con la API de Cloud Trace o Google Cloud CLI. Para obtener más detalles, consulta Crea un receptor.

  3. Otorga al receptor la función dataEditor en tu conjunto de datos de BigQuery:

    1. Obtén la identidad de escritor del receptor. Para obtener información sobre la identidad de escritor, consulta Terminología y propiedades del receptor.

      La identidad de escritor de un receptor se incluye en los datos de respuesta al comando create. También se incluye en los datos de respuesta del comando list.

    2. Agrega la identidad de escritor del receptor como una cuenta de servicio a tu conjunto de datos de BigQuery y asígnale la función de Editor de datos de BigQuery.

      • Para agregar los permisos con la consola de Google Cloud, consulta Controla el acceso a un conjunto de datos.

      • Para agregar los permisos con Google Cloud CLI, usa el comando add-iam-policy-binding y proporciona tu identificador de proyecto de Google Cloud y la identidad del escritor del receptor:

        gcloud projects add-iam-policy-binding ${DESTINATION_PROJECT_ID} \
          --member serviceAccount:${WRITER_IDENTITY} \
          --role roles/bigquery.dataEditor
        

        En el comando anterior, WRITER_IDENTITY es una variable de entorno que almacena la identidad de escritor del receptor y DESTINATION_PROJECT_ID es el identificador del proyecto de Google Cloud del conjunto de datos de BigQuery.

Enumera receptores

Para mostrar una lista de todos los receptores de tu proyecto de Google Cloud, incluidas sus identidades de escritor, invoca el método traceSinks.list.

gcloud

Para enumerar los receptores definidos con el proyecto predeterminado mediante Google Cloud CLI, ejecuta el siguiente comando:

gcloud alpha trace sinks list

Protocolo

Para enumerar receptores mediante curl, envía una solicitud GET al siguiente enlace:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Por ejemplo, la siguiente solicitud recupera todos los receptores:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Muestra detalles de un receptor específico

Para mostrar los detalles de un receptor específico que esté en tu proyecto de Google Cloud, invoca el método traceSinks.get.

gcloud

Para mostrar los detalles del receptor cuyo identificador se almacena en SINK_ID mediante Google Cloud CLI, ejecuta el siguiente comando:

gcloud alpha trace sinks describe ${SINK_ID}

Protocolo

Para mostrar los detalles del receptor cuyo identificador se almacena en SINK_ID mediante curl, envía una solicitud GET al siguiente enlace:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/%{SINK_ID}

Por ejemplo, la siguiente solicitud recupera los detalles del receptor especificado:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Crea un receptor

Para crear un receptor en tu proyecto de Google Cloud, invoca el método traceSinks.create. El destino de un receptor debe ser un conjunto de datos de BigQuery.

Este conjunto de datos debe existir antes de crear el receptor. Trace no verifica la existencia del destino. Consulta Crea conjuntos de datos para obtener información sobre la creación de conjuntos de datos de BigQuery.

gcloud

Para crear un receptor con Google Cloud CLI, ejecuta el siguiente comando:

gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}

Protocolo

Para crear un receptor mediante curl, envía una solicitud POST al siguiente enlace:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Por ejemplo, a fin de crear un receptor llamado test_sink para exportar intervalos de seguimiento a test_dataset en el proyecto con ${PROJECT_NUMBER}, define la variable de entorno SINK_BODY como se muestra a continuación:

SINK_BODY='{"name":"projects/12345/traceSinks/test_sink","output_config":{"destination":"bigquery.googleapis.com/projects/12345/datasets/test_dataset"}}'

Para crear el receptor, ejecuta el siguiente comando:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"  -X POST -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Después de que se crea un receptor, pueden pasar varios minutos hasta que se exporten los intervalos de seguimiento.

Borra un receptor

Para borrar un receptor que está en tu proyecto de Google Cloud, invoca el comando traceSinks.delete.

gcloud

Para borrar el receptor cuyo identificador se almacena en SINK_ID mediante Google Cloud CLI, ejecuta el siguiente comando:

gcloud alpha trace sinks delete ${SINK_ID}

Protocolo

Para borrar el receptor cuyo identificador se almacena en SINK_ID mediante curl, envía una solicitud DELETE al siguiente enlace:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Por ejemplo, la siguiente solicitud borra un receptor:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  -X DELETE https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Actualiza un receptor

Para actualizar un receptor que está en tu proyecto de Google Cloud, invoca el comando traceSinks.patch.

Este conjunto de datos debe existir antes de crear el receptor. Trace no verifica la existencia del destino.

gcloud

Para actualizar el receptor cuyo identificador se almacena en SINK_ID mediante Google Cloud CLI, ejecuta el siguiente comando:

gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}

La variable de entorno DESTINATION almacena el destino nuevo del receptor.

Protocolo

Para actualizar el destino del receptor cuyo identificador se almacena en SINK_ID mediante curl, envía una solicitud PATCH al siguiente enlace:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Por ejemplo, la siguiente solicitud actualiza el destino de un receptor:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"  -X PATCH -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}?update_mask=output_config.destination

Si deseas ver un ejemplo de un SINK_BODY, consulta el ejemplo para crear un receptor.

Después de actualizar un receptor, pueden pasar varios minutos hasta que los intervalos de seguimiento se exporten al destino nuevo.

Ejemplo de extremo a extremo

En esta sección, se ilustra el uso de los comandos de Google Cloud CLI para enumerar, crear, describir, actualizar y borrar un receptor. Los comandos se ejecutaron para un proyecto con el identificador de proyecto a-sample-project. Este proyecto ya está configurado para contener 2 conjuntos de datos de BigQuery. Por último, en estos ejemplos, el receptor y el destino están en el mismo proyecto. Este no es un requisito. El receptor y el destino pueden estar en diferentes proyectos de Google Cloud.

Pasos de configuración

  1. Verifica la configuración del proyecto predeterminado:

    $ gcloud config list
    

    Respuesta de muestra:

    [compute]
    zone = us-east1-b
    [core]
    account = user@example.com
    disable_usage_reporting = True
    project = a-sample-project
    
    Your active configuration is: [default]
    
  2. Verifica que Google Cloud CLI sea al menos 274.0.0:

    $ gcloud --version
    

    Respuesta de muestra:

    Google Cloud SDK 275.0.0
    alpha 2020.01.03
    beta 2020.01.03
    bq 2.0.51
    core 2020.01.03
    gsutil 4.46
    kubectl 2020.01.03
    
  3. Identifica los conjuntos de datos disponibles en el proyecto predeterminado:

    $ bq ls
    

    Respuesta de muestra:

        datasetId
     ---------------
      dataset_1
      dataset_other
    

    Ten en cuenta que la primera vez que uses los comandos de bq, es posible que debas seleccionar el proyecto.

Configura las variables de entorno

  1. Configura las variables de entorno que usa el comando de Google Cloud CLI:

    $ PROJECT_ID=a-sample-project
    $ PROJECT_NUMBER=123456789000
    $ SINK_ID=a-sample-sink
    $ DATA_SET_NAME=dataset_1
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    

    En este ejemplo, el destino y el receptor están en el mismo proyecto. Este no es un requisito. El receptor y el destino pueden estar en diferentes proyectos de Google Cloud.

  2. Verifica la configuración:

    $ echo $SINK_ID
    a-sample-sink
    $ echo $DATA_SET_NAME
    dataset_1
    $ echo $DESTINATION
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    

Mostrar receptores

Para mostrar todos los receptores, ejecuta el siguiente comando:

$ gcloud alpha trace sinks list

Debido a que este proyecto no tiene ningún receptor, la respuesta es la siguiente:

Listed 0 items.

Crea un receptor

  1. Para crear un receptor, ejecuta el siguiente comando:

    $ gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
    

    Respuesta de muestra:

    You can give permission to the service account by running the following command.
    gcloud projects add-iam-policy-binding bigquery-project \
    --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com \
    --role roles/bigquery.dataEditor
    

    Ten en cuenta que el nombre de la cuenta de servicio incluye export-0000001cbe991a08-3434. El número 0000001cbe991a08 es la representación hexadecimal del PROJECT_NUMBER. El valor 3434 es un valor aleatorio.

    Antes de ejecutar Google Cloud CLI en la respuesta anterior, debes reemplazar bigquery-project por el identificador de tu proyecto.

  2. Verifica si se creó el receptor:

    $ gcloud alpha trace sinks list
    

    Respuesta de muestra:

    NAME           DESTINATION                                                       WRITER_IDENTITY
    a-sample-sink  bigquery.googleapis.com/projects/123456789000/datasets/dataset_1  export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  3. Describe el receptor en detalle:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    

    Respuesta de muestra:

    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  4. Otorga el permiso bigquery.dataEditor a la identidad de escritura del receptor. El comando de creación del receptor muestra un comando de Google Cloud CLI que puedes usar para actualizar el permiso.

    Para que este comando se ejecute de forma correcta, haz lo siguiente:

    • Asegúrate de tener permiso para modificar los permisos de destino.
    • Reemplaza bigquery-project con tu identificador de proyecto:
    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com --role roles/bigquery.dataEditor
    

    Ten en cuenta que la primera entrada en esta respuesta de muestra es la identidad de escritor del receptor:

    Updated IAM policy for project [a-sample-project].
    bindings:
    - members:
      - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
      role: roles/bigquery.dataEditor
    - members:
      - user:user@example.com
      role: roles/cloudtrace.admin
    - members:
      - serviceAccount:service-123456789000@compute-system.iam.gserviceaccount.com
      role: roles/compute.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-engine-robot.iam.gserviceaccount.com
      role: roles/container.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-analysis.iam.gserviceaccount.com
      role: roles/containeranalysis.ServiceAgent
    - members:
      - serviceAccount:service-123456789000@containerregistry.iam.gserviceaccount.com
      role: roles/containerregistry.ServiceAgent
    - members:
      - serviceAccount:123456789000-compute@developer.gserviceaccount.com
      - serviceAccount:123456789000@cloudservices.gserviceaccount.com
      role: roles/editor
    - members:
      - user:user@example.com
      role: roles/owner
    etag: BwWbqGVnShQ=
    version: 1

Cambia el destino del receptor

En este ejemplo, el destino cambia de dataset_1 a dataset_other:

  1. Actualiza las variables de entorno DATA_SET_NAME y DESTINATION:

    $ DATA_SET_NAME=dataset_other
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Asegúrate de actualizar el valor de DESTINATION después de modificar DATA_SET_NAME o PROJECT_NUMBER.

  2. Cambia el destino del receptor:

    $ gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}
    

    El siguiente es un resultado de muestra:

    Updated [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Ejecuta el comando describe para ver los detalles del receptor:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Cuando actualizas el destino de un receptor, no cambias la identidad de escritor del receptor y, por lo tanto, no es necesario actualizar los permisos para el receptor.

Borra un receptor

Para borrar un receptor, ejecuta el siguiente comando:

$ gcloud alpha trace sinks delete ${SINK_ID}

El resultado de la muestra es el siguiente:

Really delete sink [a-sample-sink]?

Do you want to continue (y/N)? y

Deleted [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].

Para verificar el resultado, ejecuta el comando list:

$ gcloud alpha trace sinks list
Listed 0 items.

Validación

Puedes usar la métrica exported_span_count de Cloud Monitoring como base para un gráfico que muestre los errores cuando los datos de Trace se exportan a BigQuery. También puedes crear una política de alertas que te notifique si se producen errores de exportación.

Crea un gráfico

Para consultar las métricas de un recurso supervisado usando el Explorador de métricas, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Explorador de métricas:

    Ir al Explorador de métricas

  2. En el elemento Métrica, expande el menú Seleccionar una métrica, ingresa Spans Exported to BigQuery en la barra de filtros y, luego, usa los submenús para seleccionar un métrica y tipo de recurso específicos:
    1. En el menú Recursos activos, selecciona Cloud Trace.
    2. En el menú Categorías de métricas activas, selecciona Bigquery_explort.
    3. En el menú Métricas activas, selecciona Intervalos exportados a BigQuery.
    4. Haz clic en Aplicar.
  3. Configura cómo se ven los datos.
    1. Deja el elemento Filtro vacío. Con esta opción, el gráfico muestra todos los datos de estado.
    2. En el elemento Agregación, establece el primer menú como Mean y el segundo, en status.

      Estas selecciones dan como resultado una sola serie temporal para cada valor de estado único. En la siguiente tabla, se muestran los valores de estado posibles:

      Valor de estadoSignificado y acción correctiva
      ok La transferencia de datos se completó correctamente.
      bigquery_permission_denied No se pudieron exportar los datos al destino. La exportación puede fallar por cualquiera de los siguientes motivos:
      • La cuenta de servicio en el receptor de seguimiento no tiene permiso para escribir en el conjunto de datos de destino. Consulta Permiso denegado.
      • El destino del conjunto de datos en el receptor no existe. Consulta Destino no válido.
      • Errores internos de BigQuery. Este es un error inesperado y transitorio.
      bigquery_quota_exceeded El proyecto de BigQuery superó su cuota de transmisión. Consulta Cuota agotada.
      invalid_span
      internal_errors

      invalid_destination
      Error desconocido que impide la exportación de datos a BigQuery. A fin de resolver este estado, comunícate con la asistencia técnica o haz una pregunta en Stack Overflow. Si deseas obtener más información, consulta esta página para obtener asistencia.

    Para obtener más información sobre la configuración de un gráfico, consulta elige métricas cuando uses el Explorador de métricas.

Si tu receptor de Trace exporta datos de forma correcta, el gráfico creado con la configuración anterior muestra una sola serie temporal con el valor de estado ok. Si se producen errores durante la exportación, las series temporales adicionales aparecen en el gráfico.

Cree una política de alertas

Para crear una política de alertas que se active si hay errores en la exportación de datos de Cloud Trace a BigQuery, usa la siguiente configuración.

Nueva condición
Campo

Valor
Recurso y métrica En el menú Recursos, selecciona Cloud Trace.
En el menú Categorías de métricas, selecciona Bigquery_export.
En el menú Métricas, selecciona Intervalos exportados a BigQuert.
Filtro status != ok
Series temporales
Grupo de series temporales por
status
Series temporales
Agregación de series temporales
sum
Ventana progresiva 1 m
Función analítica progresiva rate
Configura el activador de alertas
Campo

Valor
Tipo de condición Threshold
Activador de alertas Any time series violates
Posición del umbral Above threshold
Valor del umbral 0
Período para volver a probar 1 minute

Usa curl

En esta sección, se describen las convenciones y la configuración que se usan para invocar a la API de Cloud Trace con la herramienta curl:

Proporción de eficiencia energética (EER)

  1. Crea una variable de entorno para conservar el identificador de tu proyecto de Google Cloud:

    PROJECT_ID=my-project
    
  2. Crea una variable de entorno para conservar el número de tu proyecto de Google Cloud:

    PROJECT_NUMBER=12345
    
  3. Autentica Google Cloud CLI:

    gcloud auth login
    
  4. Establece el identificador predeterminado del proyecto de Google Cloud:

    gcloud config set project ${PROJECT_ID}
    
  5. Crea un token de autorización y guárdalo en una variable de entorno:

    ACCESS_TOKEN=`gcloud auth print-access-token`
    
  6. Verifica el token de acceso:

    echo ${ACCESS_TOKEN}
    

    La respuesta al comando debe ser una string larga de caracteres. Por ejemplo, en un sistema, la respuesta comienza de la siguiente manera:

    y29.GluiBjo....
    

Invoca curl

Cada comando curl incluye un conjunto de argumentos, seguido de la URL de un recurso de la API de Cloud Trace. Los argumentos comunes incluyen valores especificados por las variables de entorno PROJECT_ID y ACCESS_TOKEN.

Cada invocación curl tiene el siguiente formato general:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" [OTHER_ARGS]
https://cloudtrace.googleapis.com/[API_VERSION]/projects/${PROJECT_ID}/[RESOURCE]

Donde:

  • [OTHER_ARGS] (opcional): Omite este campo si emites una solicitud GET. Para otros tipos de solicitudes HTTP, reemplaza este marcador de posición con el tipo de solicitud y cualquier dato adicional necesario para satisfacer la solicitud.
  • [API_VERSION]: Especifica la versión de la API.
  • [RESOURCE]: Especifica el nombre de recursos de la API de Cloud Trace.

Por ejemplo, para mostrar una lista de los 1,000 seguimientos más recientes en tu proyecto, ejecuta el siguiente comando:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v1/projects/${PROJECT_ID}/traces

Soluciona problemas

En esta sección, se incluye información sobre la solución de problemas que puede ayudarte a resolver los errores cuando configuras una exportación.

Error de argumento no válido para el conjunto de datos

En el siguiente mensaje de error, se indica que el nombre del conjunto de datos no es válido:

ERROR: (gcloud.alpha.trace.sinks.create) INVALID_ARGUMENT: Request contains an invalid argument.
- '@type': type.googleapis.com/google.rpc.DebugInfo
  detail: '[ORIGINAL ERROR] generic::invalid_argument: sink destination is malformed:
    bigquery.googleapis.com/projects/123456789000/datasets/a-sample-project:dataset_1.

El error se produce debido al destino, incluido el identificador del proyecto de Google Cloud, a-sample-project, como un calificador para el nombre del conjunto de datos.

Para resolver este error, reemplaza a-sample-project:dataset_1 por dataset_1 y, luego, emite el comando create.

Ten en cuenta que puedes enumerar tus conjuntos de datos con el comando bq ls.

No se reciben datos de seguimiento

Existen varias razones por las que es posible que no recibas datos de seguimiento en BigQuery.

Destino no válido

Verifica que el nombre del conjunto de datos y el número del proyecto sean correctos.

  • Para verificar que el nombre del conjunto de datos sea correcto. Para enumerar los conjuntos de datos en tu proyecto actual, ejecuta bq ls.

    Si elegiste usar variables de entorno, verifica que el valor de cada variable sea correcto mediante la emisión de un comando echo. Por ejemplo, verifica que tu destino sea correcto:

    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Debido a que DESTINATION depende del valor de PROJECT_NUMBER y de DATA_SET_NAME, estas dos variables deben configurarse primero. Además, si modificas cualquiera de estas dos variables, debes actualizar el valor almacenado en DESTINATION.

  • Para determinar el número de tus proyectos actuales, ejecuta el siguiente comando:

    gcloud projects list --filter="${PROJECT_ID}"
    

    Puedes configurar PROJECT_NUMBER de manera programática con el siguiente comando:

    $ PROJECT_NUMBER=`gcloud projects list --filter="${PROJECT_ID}" --format="value(PROJECT_NUMBER)"`
    

Los permisos no son válidos

Verifica que la cuenta de servicio tenga la función DataEditor en BigQuery. Para verificar los permisos, ejecuta el siguiente comando:

$ gcloud projects get-iam-policy ${PROJECT_ID}

La respuesta de este comando describe todas las vinculaciones de IAM. En este caso, el resultado es el siguiente. Observa que la identidad de escritor del receptor tiene la función dataEditor:

bindings:
- members:
  - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
  role: roles/bigquery.dataEditor
- members:
  [Note, content truncated]

Cuota agotada

Si recibiste datos y se detiene de repente, o los datos están incompletos, es posible que hayas agotado tu cuota de transmisión de BigQuery. Para ver tu cuota, ve a la página IAM y administración y selecciona Cuotas. Busca la API de BigQuery. Existen dos entradas relevantes: la transmisión de filas por minuto por recurso y la transmisión de bytes por minuto por recurso.

Ir a Cuotas

¿Qué sigue?

Para obtener información sobre el esquema de BigQuery, consulta Exporta a BigQuery.