Configurar exportaciones

En esta página, se explica cómo exportar seguimientos mediante la API de Cloud Trace y la herramienta de línea de comandos de gcloud. Debes usar la versión 274.0.0 o posterior del SDK de Cloud. Para obtener información sobre cómo actualizar el SDK de Cloud, consulta gcloud components update .

Algunas muestras de esta página se generaron con curl. Para obtener información sobre la configuración de esta herramienta, consulta Uso de curl.

Terminología

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

Los ejemplos de la herramienta de línea de comandos de gcloud usan las siguientes variables de entorno:

  • SINK_ID: el nombre o el identificador del receptor. Por ejemplo, my-sink No es necesario que proporciones el comando completamente calificado a la herramienta de línea de comandos de gcloud, ya que puede determinar tu proyecto de Google Cloud.
  • DESTINATION: Almacena el nombre completamente calificado del destino. 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 Cómo usar curl.
  • PROJECT_ID: Almacena el identificador o el número de proyecto del proyecto de Google Cloud.
  • PROJECT_NUMBER: Almacena el número del proyecto de Google Cloud.
  • SINK_ID: 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. 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. Crear el receptor con la API de Cloud Trace o la herramienta de línea de comandos de gcloud Para obtener más información, consulta Crea un receptor.

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

    1. Obtén la identificación del escritor del receptor. Para obtener información sobre la identidad del escritor, consulta Propiedades y terminología del receptor.

      La identidad de escritor para un receptor se incluye en los datos de respuesta del 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 Google Cloud Console, consulta Controla el acceso a un conjunto de datos.

      • Para agregar los permisos con la herramienta de línea de comandos de gcloud, usa el comando add-iam-policy-binding y proporciona tu identificador del 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 del escritor del receptor y DESTINATION_PROJECT_ID es el identificador del proyecto de Google Cloud del conjunto de datos de BigQuery.

Enumera receptores

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

Protocolo

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

https://staging-cloudtrace.sandbox.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://staging-cloudtrace.sandbox.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Comando de gcloud

Para enumerar los receptores definidos con el proyecto predeterminado mediante la herramienta de línea de comandos de gcloud, ejecuta el siguiente comando:

gcloud alpha trace sinks list

Mostrar detalles de un receptor específico

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

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://staging-cloudtrace.sandbox.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://staging-cloudtrace.sandbox.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Comando de gcloud

Para mostrar los detalles del receptor cuyo identificador se almacena en SINK_ID mediante la herramienta de línea de comandos de gcloud, ejecuta el siguiente comando:

gcloud alpha trace sinks describe ${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 cómo crear conjuntos de datos de BigQuery.

Protocolo

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

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

Por ejemplo, para crear un receptor llamado test_sink y 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 cliente, ejecuta el siguiente comando:

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

Comando de gcloud

Para crear un receptor con la herramienta de línea de comandos de gcloud, ejecuta el siguiente comando:

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

Después de crear un receptor, es posible que pasen varios minutos hasta que los intervalos de seguimiento se exporten al destino.

Borra un receptor

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

Protocolo

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

https://staging-cloudtrace.sandbox.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://staging-cloudtrace.sandbox.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Comando de gcloud

Para borrar el receptor cuyo identificador se almacena en SINK_ID mediante la herramienta de línea de comandos de gcloud, ejecuta el siguiente comando:

gcloud alpha trace sinks delete ${SINK_ID}

Actualiza un receptor

Para actualizar un receptor que se encuentra 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.

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://staging-cloudtrace.sandbox.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://staging-cloudtrace.sandbox.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}?update_mask=output_config.destination

A fin de ver un ejemplo de un SINK_BODY, consulta el ejemplo para crear un receptor.

Comando de gcloud

Para actualizar el receptor cuyo identificador se almacena en SINK_ID mediante la herramienta de línea de comandos de gcloud, ejecuta el siguiente comando:

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

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

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

Usa curl

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

Autenticación

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

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

    PROJECT_NUMBER=12345
    
  3. Autentica el SDK de Cloud:

    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 de 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 los datos adicionales necesarios para satisfacer la solicitud.
  • [API_VERSION]: Especifica la versión de la API.
  • [RESOURCE]: Especifica el nombre de recurso de la API de Cloud Trace.

Por ejemplo, para enumerar los 1,000 seguimientos más recientes de tu proyecto, ejecuta lo siguiente:

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

Ejemplo

En esta sección, se ilustra el uso de los comandos de la herramienta de línea de comandos de gcloud 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 está preconfigurado para que contenga 2 conjuntos de datos de BigQuery. Por último, en estos ejemplos, el receptor y el destino están en el mismo proyecto. Esto 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 predeterminada del proyecto:

    $ 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 la herramienta de línea de comandos de gcloud 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 la herramienta de línea de comandos gcloud:

    $ 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. Esto 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 de PROJECT_NUMBER. El valor 3434 es aleatorio.

    Antes de ejecutar la herramienta de línea de comandos de gcloud en la respuesta anterior, debes reemplazar bigquery-project con tu identificador de proyecto.

  2. Verifica que se haya creado 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 de receptor muestra un comando de herramienta de línea de comandos de gcloud 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 el identificador de tu 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 del 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@gcp-sa-computescanning.iam.gserviceaccount.com
      role: roles/computescanning.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:123456789000-compute@developer.gserviceaccount.com
      - serviceAccount:123456789000@cloudservices.gserviceaccount.com
      - serviceAccount:service-123456789000@containerregistry.iam.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 necesitas 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].

Puedes verificar el resultado mediante la ejecución del 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 muestra los errores cuando los datos de Trace se exportan a BigQuery. También puedes crear una política de alertas para notificarte si se producen errores de exportación.

Crea un gráfico

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

  1. En Google Cloud Console, ve a Monitoring o usa el siguiente botón:
    Ir a Monitoring
  2. En el panel de navegación de Monitoring, haz clic en  Explorador de métricas.
  3. Asegúrate de que esté seleccionada la pestaña Métrica.
  4. Haz clic en el cuadro que tiene la etiqueta Encontrar tipo de recurso y métrica y, a continuación, selecciona estos elementos en el menú o ingresa sus nombres. Usa la siguiente información para completar los campos de este cuadro de texto:
    1. Ingresa Cloud Trace para el Tipo de recurso.
    2. Selecciona Intervalos exportados a BigQuery para Métrica.
  5. Para modificar la forma en que se muestran los datos, usa los menús Filtro, Agrupar por y Agregación. Para este gráfico, usa la siguiente configuración:
    1. Deja el campo Filtro vacío. Con esta opción, el gráfico muestra todos los datos de estado.
    2. Selecciona status para el campo Agrupar por. Esta selección da 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 estadoEl significado y la acción correctiva
      ok La transferencia de datos se completó correctamente.
      bigquery_permission_denied No se pudo 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 de BigQuery. Consulta Cuota agotada.
      invalid_span
      internal_errors

      invalid_destination
      Error desconocido que impide la exportación de datos a BigQuery. Para resolver esta condición, comunícate con el equipo de asistencia técnica o haz una pregunta en Stack Overflow. Para obtener información, consulta Obtén asistencia.
    3. Deje los campos del Agregador con los valores predeterminados.
    Para obtener más información, consulta Selecciona métricas.

Si tu receptor de Trace exporta datos correctamente, 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, aparecerán series temporales adicionales en el gráfico.

Crea una política de alertas

Para crear una política de alertas que se active cuando haya errores mientras se exportan datos de Cloud Trace a BigQuery, usa la siguiente configuración:

Campo del panel
Objetivo

Valor
Resource type Cloud Trace
Metric Spans Exported to BigQuery
Filter status != ok
Group by status
Aggregator sum
Advanced Aggregation Aligner: rate
Alignment Period: 1 m

Campo del panel Condiciones

Valor
Condition triggers if Any time series violates
Condition is above
Threshold 0
For 1 minute

Soluciona problemas

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

El siguiente mensaje de error 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 varios motivos por los que podrías no recibir 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 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 tu número de proyecto actual, 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 se haya otorgado la función de DataEditor a BigQuery a la cuenta de servicio. Para verificar los permisos, ejecuta el siguiente comando:

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

En la respuesta de este comando, se describen todas las vinculaciones de IAM. En este caso, el resultado es como se muestra. Ten en cuenta que la identidad del escritor del receptor tiene la función de 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 de repente se detiene o si tus datos están incompletos, es posible que tu cuota de transmisión de BigQuery se agote. Para ver tu cuota, ve a la página IAM y administración y selecciona Cuotas. Busca la API de BigQuery. Hay dos entradas relevantes: filas de transmisión por minuto por recurso y bytes de transmisión por minuto por recurso.

Ir a Cuotas

Qué sigue

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