Trabaja con transferencias

Después de crear una transferencia con el Servicio de transferencia de datos de BigQuery, puedes hacer lo siguiente:

  • Obtener información sobre una configuración de transferencia
  • Enumerar configuraciones de transferencia
  • Ver el historial de ejecución de una transferencia
  • Ver detalles de la ejecución de transferencia, como los mensajes de registro
  • Actualizar una transferencia
  • Configurar un reabastecimiento
  • Actualizar credenciales
  • Inhabilitar una transferencia
  • Borrar una transferencia

Obtén información sobre las transferencias

Después de crear una transferencia, puedes obtener información sobre la configuración de la transferencia. La configuración incluye los valores que proporcionaste cuando creaste la transferencia.

Permisos necesarios

Para obtener información sobre una transferencia, se necesitan permisos bigquery.transfers.get. Las siguientes funciones de IAM predefinidas incluyen los permisos bigquery.transfers.get:

  • bigquery.admin
  • bigquery.user

Un usuario al que se le otorgó el permiso bigquery.transfers.get puede ver información sobre todas las transferencias de un proyecto.

Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

Obtén información sobre una transferencia

Para obtener información sobre una configuración de la transferencia, sigue estos pasos:

Consola

  1. Ve a la página Transferencia de datos.

    Ir a Transferencia de datos

  2. Selecciona la transferencia cuyos detalles deseas obtener.

  3. Para ver la configuración de la transferencia y los detalles de la fuente de datos, haz clic en Configuración en la página Detalles de la transferencia. En el siguiente ejemplo, se muestran las propiedades de configuración para una transferencia de Google Ads:

    Configuración de transferencia en la consola

bq

Ingresa el comando bq show y proporciona el nombre del recurso de la configuración de la transferencia. La marca --format se puede usar para controlar el formato de salida.

bq show \
--format=prettyjson \
--transfer_config resource_name

Aquí:

  • resource_name es el nombre del recurso de la transferencia (también conocido como la configuración de transferencia). Si no conoces el nombre del recurso de la transferencia, busca el nombre del recurso con bq ls --transfer_config --transfer_location=location.

Por ejemplo, ingresa el siguiente comando para mostrar la configuración de la transferencia de projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq show \
--format=prettyjson \
--transfer_config projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Usa el método projects.locations.transferConfigs.get y proporciona la configuración de la transferencia con el parámetro name.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import java.io.IOException;

// Sample to get config info.
public class GetTransferConfigInfo {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    getTransferConfigInfo(configId);
  }

  public static void getTransferConfigInfo(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferConfigRequest request =
          GetTransferConfigRequest.newBuilder().setName(configId).build();
      TransferConfig info = dataTransferServiceClient.getTransferConfig(request);
      System.out.print("Config info retrieved successfully." + info.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("config not found." + ex.toString());
    }
  }
}

Enumerar configuraciones de transferencia

Permisos necesarios

Generar una lista de todas las transferencias, o configuraciones de transferencia, en un proyecto requiere el permiso bigquery.transfers.get. Las siguientes funciones de IAM predefinidas incluyen los permisos bigquery.transfers.get:

  • bigquery.admin
  • bigquery.user

Un usuario al que se le otorgó el permiso bigquery.transfers.get puede enumerar todas las transferencias de un proyecto.

Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

Enumera las transferencias

Sigue los pasos a continuación para hacer una lista de las opciones de configuración de la transferencia en un proyecto:

Consola

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

  3. Si hay configuraciones de transferencia en el proyecto, aparecerá una lista de las opciones de configuración de transferencia en la página Transferencias (Transfers).

bq

Para enumerar todas las opciones de la configuración de la transferencia de un proyecto por ubicación, ingresa el comando bq ls y proporciona las marcas --transfer_location y --transfer_config. También puedes proporcionar la marca --project_id para especificar un proyecto en particular. Si no se especifica --project_id, se usa el proyecto predeterminado. La marca --format se puede usar para controlar el formato de salida.

A fin de hacer una lista de opciones de configuración de la transferencia para fuentes de datos particulares, proporciona la marca --filter.

Para ver una cantidad específica de opciones de configuración de la transferencia en un formato de páginas, proporciona la marca --max_results a fin de especificar la cantidad de transferencias. El comando muestra un token de página que proporcionas con la marca --page_token para ver las siguientes n configuraciones. Existe un límite de 1,000 parámetros de configuración que se mostrarán si se omite --max_results, y --max_results no aceptará valores mayores que 1,000. Si tu proyecto tiene más de 1,000 parámetros de configuración, usa --max_results y --page_token para iterar por todos ellos.

bq ls \
--transfer_config \
--transfer_location=location \
--project_id=project_id \
--max_results=integer \
--filter=dataSourceIds:data_sources

Aquí:

Ejemplos comparativos entre

Ingresa el siguiente comando a fin de mostrar todas las opciones de configuración de la transferencia en EE.UU. de tu proyecto predeterminado. El resultado se controla con la marca --format.

bq ls \
--format=prettyjson \
--transfer_config \
--transfer_location=us

Ingresa el siguiente comando para mostrar todas las configuraciones de transferencia en EE.UU. para el ID del proyecto myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject

Ingresa el siguiente comando para enumerar las 3 configuraciones de transferencia más recientes.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3

El comando muestra un token de la página siguiente. Copia el token de página y proporciónalo en el comando bq ls para ver los 3 resultados siguientes.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL

Ingresa el siguiente comando a fin de hacer una lista de las opciones de configuración de la transferencia de Ads y Campaign Manager para el ID del proyecto myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--filter=dataSourceIds:dcm_dt,adwords

API

Usa el método projects.locations.transferConfigs.list y proporciona el ID del proyecto con el parámetro parent.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferConfigsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import java.io.IOException;

// Sample to get list of transfer config
public class ListTransferConfigs {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    listTransferConfigs(projectId);
  }

  public static void listTransferConfigs(String projectId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      ListTransferConfigsRequest request =
          ListTransferConfigsRequest.newBuilder().setParent(parent.toString()).build();
      dataTransferServiceClient
          .listTransferConfigs(request)
          .iterateAll()
          .forEach(config -> System.out.print("Success! Config ID :" + config.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Config list not found due to error." + ex.toString());
    }
  }
}

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

project_id = "my-project"
parent = transfer_client.common_project_path(project_id)

configs = transfer_client.list_transfer_configs(parent=parent)
print("Got the following configs:")
for config in configs:
    print(f"\tID: {config.name}, Schedule: {config.schedule}")

Visualiza el historial de ejecución

A medida que se ejecutan las transferencias programadas, se mantiene un historial de ejecución para cada configuración de transferencia que incluye ejecuciones de transferencia correctas y las ejecuciones de transferencia fallidas Las ejecuciones de transferencia con más de 90 días de antigüedad se borran de forma automática del historial de ejecución.

Permisos necesarios

La visualización del historial de ejecución de una configuración de la transferencia requiere permisos bigquery.transfers.get. Las funciones de IAM predefinidas bigquery.user y bigquery.admin incluyen los permisos bigquery.transfers.get.

Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

Visualiza un historial de ejecución

Para ver el historial de ejecución de una configuración de la transferencia, sigue estos pasos:

Consola

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

  3. En la página Transferencias, haz clic en la transferencia apropiada en la lista.

  4. Esto te llevará a la página HISTORIAL DE EJECUCIÓN de la transferencia seleccionada.

bq

Para enumerar las ejecuciones de transferencia de una configuración de la transferencia en particular, ingresa el comando bq ls y proporciona la marca --transfer_run. También puedes proporcionar la marca --project_id para especificar un proyecto en particular. Si resource_name no contiene información del proyecto, se usa el valor --project_id. Si no se especifica --project_id, se usa el proyecto predeterminado. La marca --format se puede usar para controlar el formato del resultado.

Para ver una cantidad específica de ejecuciones de transferencia, proporciona la marca --max_results. El comando muestra un token de página que proporcionas con la marca --page_token para ver las siguientes n configuraciones.

Para enumerar las ejecuciones de transferencias según el estado de ejecución, ingresa la marca --filter.

bq ls \
--transfer_run \
--max_results=integer \
--transfer_location=location \
--project_id=project_id \
--filter=states:state, ... \
resource_name

Aquí:

  • integer es el número de resultados a mostrar.
  • location es la ubicación de las configuraciones de transferencia. La ubicación se especifica cuando creas una transferencia.
  • project_id es el ID del proyecto.
  • state, ... es una de las siguientes o una lista separada por comas:
    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED
  • resource_name es el nombre del recurso de la transferencia (también conocido como la configuración de transferencia). Si no conoces el nombre del recurso de la transferencia, busca el nombre del recurso con bq ls --transfer_config --transfer_location=location.

Ejemplos comparativos entre

Ingresa el siguiente comando para mostrar las 3 ejecuciones más recientes de la configuración de la transferencia projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. El resultado se controla con la marca --format.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

El comando muestra un token de la página siguiente. Copia el token de página y proporciónalo en el comando bq ls para ver los 3 resultados siguientes.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Ingresa el siguiente comando para mostrar todas las ejecuciones fallidas de la configuración de la transferencia projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq ls \
--format=prettyjson \
--transfer_run \
--filter=states:FAILED \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Usa el método projects.locations.transferConfigs.runs.list y especifica el ID del proyecto con el parámetro parent.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferRunsRequest;
import java.io.IOException;

// Sample to get run history from transfer config.
public class RunHistory {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    runHistory(configId);
  }

  public static void runHistory(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ListTransferRunsRequest request =
          ListTransferRunsRequest.newBuilder().setParent(configId).build();
      dataTransferServiceClient
          .listTransferRuns(request)
          .iterateAll()
          .forEach(run -> System.out.print("Success! Run ID :" + run.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Run history not found due to error." + ex.toString());
    }
  }
}

Visualiza detalles de la ejecución de la transferencia y mensajes de registro

Cuando aparece una ejecución de la transferencia en el historial de ejecuciones, puedes ver los detalles de la ejecución, incluidos los mensajes de registro, las advertencias y los errores, el nombre de la ejecución, y la hora de inicio y finalización.

Permisos necesarios

La visualización de los detalles de la ejecución de la transferencia requiere permisos bigquery.transfers.get. Las funciones predefinidas de IAM bigquery.user y bigquery.admin incluyen los permisos bigquery.transfers.get.

Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

Además, para ver los mensajes de registro a través de la consola de Google Cloud, se requieren permisos a fin de ver los datos de Cloud Logging. El rol Visor de registros (roles/logging.viewer) te brinda acceso de solo lectura a todas las funciones de Logging. Para obtener más información sobre los permisos y las funciones de IAM que se aplican a los datos de los registros de la nube, consulta la Guía de control de acceso de Cloud Logging.

Visualiza detalles de una ejecución de transferencia

Para ver los detalles de la ejecución de la transferencia, sigue estos pasos:

Consola

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

  3. En la página Transferencias, haz clic en la transferencia apropiada en la lista.

  4. Esto te llevará a la página HISTORIAL DE EJECUCIÓN de la transferencia seleccionada.

  5. Haz clic en una ejecución individual de la transferencia y se abrirá el panel Detalles de ejecución para esa ejecución de la transferencia.

  6. En Run details, escribe los mensajes de error. Esta información es necesaria si te comunicas con Atención al cliente de Cloud. Los detalles de ejecución también incluyen mensajes de registro y advertencias.

    Ejecuta detalles en Console

bq

Para ver los detalles de la ejecución de la transferencia, ingresa el comando bq show y proporciona el nombre de ejecución de la transferencia con la marca --transfer_run. La marca --format se puede usar para controlar el formato del resultado.

bq show \
--format=prettyjson \
--transfer_run run_name

Aquí:

  • run_name es el nombre de ejecución de la ejecución de transferencia. Puedes recuperar el nombre de la ejecución con el comando bq ls.

Ejemplo:

Ingresa el siguiente comando para mostrar los detalles de la ejecución de la transferencia projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq show \
--format=prettyjson \
--transfer_run \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Para ver los mensajes del registro de transferencias de una ejecución de la transferencia, ingresa el comando bq ls con la marca --transfer_log. Puedes filtrar los mensajes de registro por tipo con la marca --message_type.

Para ver una cantidad específica de mensajes de registro, proporciona la marca --max_results. El comando muestra un token de página que proporcionas con la marca --page_token para ver los próximos n mensajes.

bq ls \
--transfer_log \
--max_results=integer \
--message_type=messageTypes:message_type \
run_name

Aquí:

  • integer es el número de mensajes de registro que se mostrarán.
  • message_type es el tipo de mensaje de registro para vistas (un solo valor o una lista separada por comas):
    • INFO
    • WARNING
    • ERROR
  • run_name es el nombre de ejecución de la ejecución de transferencia. Puedes recuperar el nombre de la ejecución con el comando bq ls.

Ejemplos:

Ingresa el siguiente comando para ver los primeros 2 mensajes de registro para la ejecución de la transferencia projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--max_results=2 \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

El comando muestra un token de la página siguiente. Copia el token de la página y proporciónalo en el comando bq ls para ver los 2 resultados siguientes.

bq ls \
--transfer_log \
--max_results=2 \
--page_token=AB1CdEfg_hIJKL \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Ingresa el siguiente comando para ver solo los mensajes de error de la ejecución de la transferencia projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--message_type=messageTypes:ERROR \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

API

Usa el método projects.transferConfigs.runs.transferLogs.list y proporciona el nombre de ejecución de la transferencia con el parámetro parent.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferRunRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferRun;
import java.io.IOException;

// Sample to get run details from transfer config.
public class RunDetails {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // runId examples:
    // `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`
    String runId = "MY_RUN_ID";
    runDetails(runId);
  }

  public static void runDetails(String runId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferRunRequest request = GetTransferRunRequest.newBuilder().setName(runId).build();
      TransferRun run = dataTransferServiceClient.getTransferRun(request);
      System.out.print("Run details retrieved successfully :" + run.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("Run details not found." + ex.toString());
    }
  }
}

Actualizar una transferencia

Una vez que agregas la transferencia, es posible editarla. Puedes editar cualquiera de los campos propagados durante la creación de la transferencia, excepto la Fuente:

  • Conjunto de datos de destino
  • Nombre visible
  • Cualquiera de los parámetros especificados para el tipo de transferencia específico.
  • Configuración de notificaciones de la ejecución

Permisos necesarios

La actualización de una transferencia requiere permisos bigquery.transfers.update. La función predefinida de IAM bigquery.admin incluye los permisos bigquery.transfers.update.

Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

Actualizar una transferencia

Para actualizar una transferencia, sigue estos pasos:

Consola

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

  3. En la página Transferencias, haz clic en la transferencia apropiada en la lista.

  4. Haz clic en Editar para actualizar la configuración de transferencia.

bq

Ingresa el comando bq update, proporciona el nombre del recurso de la configuración de la transferencia con la marca --transfer_config y proporciona las marcas --display_name, --params, --refresh_window_days, --schedule o --target_dataset:

bq update \
--display_name='NAME' \
--params='PARAMETERS' \
--refresh_window_days=INTEGER \
--schedule='SCHEDULE'
--target_dataset=DATASET_ID \
--transfer_config \
RESOURCE_NAME

Reemplaza lo siguiente:

  • NAME es el nombre visible de la configuración de transferencia.
  • PARAMETERS son los parámetros de la configuración de la transferencia en formato JSON. Por ejemplo: --params='{"param1":"param_value1"}'. Los siguientes parámetros son modificables:
    • Campaign Manager: bucket y network_id
    • Google Ad Manager: bucket y network_code
    • Google Ads: customer_id
    • Google Merchant Center: merchant_id
    • Google Play: bucket y table_suffix
    • Consulta programada: destination_table_kms_key, destination_table_name_template, partitioning_field, partitioning_type, query y write_disposition
    • Search Ads 360: advertiser_id, agency_id, custom_floodlight_variables, include_removed_entities y table_filter
    • Canal de YouTube: table_suffix
    • Propietario del contenido de YouTube: content_owner_id y table_suffix
  • INTEGER: Es un valor de 0 a 30. Para obtener información sobre cómo configurar la ventana de actualización, consulta la documentación de tu tipo de transferencia.
  • SCHEDULE: Es una programación recurrente, como --schedule="every 3 hours". Para obtener una descripción de la sintaxis schedule, consulta Define el formato de schedule.
  • DATASET_ID es el conjunto de datos de destino para la configuración de transferencia.
  • RESOURCE_NAME es el nombre del recurso de la transferencia (también conocido como la configuración de transferencia). Si no conoces el nombre del recurso de la transferencia, busca el nombre del recurso con bq ls --transfer_config --transfer_location=location.

Ejemplos comparativos entre

El siguiente comando actualiza el nombre comercial, el conjunto de datos de destino, la ventana de actualización y los parámetros para la transferencia de Google Ads projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7:

bq update \
--display_name='My changed transfer' \
--params='{"customer_id":"123-123-5678"}' \
--refresh_window_days=3 \
--target_dataset=mydataset2 \
--transfer_config \
 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Con el siguiente comando, se actualizan los parámetros y el programa para la transferencia de consulta programada projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9:

bq update \
--params='{"destination_table_name_template":"test", "write_disposition":"APPEND"}' \
--schedule="every 24 hours" \
--transfer_config \
projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9

API

Usa el método projects.transferConfigs.patch y proporciona el nombre del recurso de la transferencia con el parámetro transferConfig.name. Si no conoces el nombre del recurso de la transferencia, busca el nombre del recurso con bq ls --transfer_config --transfer_location=location. También puedes llamar al siguiente método y proporcionar el ID del proyecto con el parámetro parent para enumerar todas las transferencias: projects.locations.transferConfigs.list.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update transfer config.
public class UpdateTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setName(configId)
            .setDisplayName("UPDATED_DISPLAY_NAME")
            .build();
    FieldMask updateMask = FieldMaskUtil.fromString("display_name");
    updateTransferConfig(transferConfig, updateMask);
  }

  public static void updateTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config updated successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not updated." + ex.toString());
    }
  }
}

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
new_display_name = "My Transfer Config"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)
transfer_config.display_name = new_display_name

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["display_name"]),
    }
)

print(f"Updated config: '{transfer_config.name}'")
print(f"New display name: '{transfer_config.display_name}'")

Configura de reabastecimientos y ejecuciones de actualización

Actualizar

Ten en cuenta que los reabastecimientos no están disponibles para estos tipos de transferencias. Sin embargo, puedes configurar una ejecución de actualización.

Reabastecimiento

Puedes iniciar de forma manual un reabastecimiento de datos en cualquier momento. Además de los límites de fuente, el Servicio de transferencia de datos de BigQuery admite un máximo de 180 días por solicitud de reabastecimiento. No se admiten solicitudes de reabastecimiento simultáneas.

Para obtener más información sobre la cantidad de datos disponibles del reabastecimiento, consulta la documentación de tu fuente de datos:

  • Amazon S3
  • Campaign Manager
  • Cloud Storage
  • Copia de conjunto de datos
  • Google Ad Manager
  • Google Ads (antes AdWords)
    • Cuando configuras un reabastecimiento para Google Ads, las instantáneas de las tablas de coincidencia se toman una vez al día y se almacenan en la partición para la última fecha de ejecución. Cuando programas un reabastecimiento, las instantáneas de la tabla de coincidencia para las siguientes tablas NO se actualizan:
      • Ad
      • AdGroup
      • AgeRange
      • Audience
      • BidGoal
      • Budget
      • Campaign
      • Criteria
      • Customer
      • Gender
      • Keyword
      • LocationBasedCampaignCriterion
      • ParentalStatus
      • Placement
      • Video
  • Google Ads (vista previa)
  • Google Merchant Center
  • Google Play
  • Consultas programadas
  • Search Ads 360
    • Cuando configuras un reabastecimiento para Search Ads 360, las instantáneas de las tablas de coincidencia se toman una vez al día y se almacenan en la partición para la última fecha de ejecución. Cuando programas un reabastecimiento, las instantáneas de la tabla de coincidencia para las siguientes tablas NO se actualizan:
      • Account
      • Ad
      • Advertiser
      • AdGroup
      • AdGroupTarget
      • BidStrategy
      • Campaign
      • CampaignTarget
      • FeedItem
      • FloodlightActivity
      • Keyword
      • NegativeAdGroupKeyword
      • NegativeAdGroupTarget
      • NegativeCampaignKeyword
      • NegativeCampaignTarget
      • ProductAdvertised
      • ProductGroup
      • ProductLeadAndCrossSellFloodlightStats
      • Video
      • Placement
      • Video
  • Canal de YouTube
  • Propietario del contenido de YouTube
  • Teradata
  • Amazon Redshift

Ten en cuenta que los reabastecimientos no están disponibles para transferencias de Cloud Storage. Sin embargo, puedes configurar una ejecución de actualización de una transferencia de Cloud Storage.

Permisos necesarios

Programar un reabastecimiento requiere permisos bigquery.transfers.update. La función predefinida de IAM bigquery.admin incluye los permisos bigquery.transfers.update.

Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

Programa un reabastecimiento

Sigue los pasos a continuación para programar un reabastecimiento:

Consola

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

  3. En la página Transferencias, haz clic en la transferencia apropiada en la lista.

  4. Haz clic en el menú MÁS y, luego, selecciona Programar reabastecimiento.

  5. En el cuadro de diálogo Programar reabastecimiento (Schedule backfill), elige la Fecha de inicio (Start date) y la Fecha de finalización (End date).

    Configurar fechas de actualización

bq

Ingresa el comando bq mk, ingresa la marca --transfer_run y específica los valores --start_time y --end_time.

bq mk \
--transfer_run \
--start_time='start_time' \
--end_time='end_time' \
resource_name

Aquí:

  • El start_time y el end_time son marcas de tiempo que terminan en Z o contienen un desplazamiento de zona horaria válido. Por ejemplo:

    • 2017-08-19T12:11:35.00Z
    • 2017-05-25T00:00:00+00:00
  • resource_name es el nombre del recurso de la transferencia (también conocido como la configuración de transferencia). Si no conoces el nombre del recurso de la transferencia, busca el nombre del recurso con bq ls --transfer_config --transfer_location=location.

Ejemplos comparativos entre

Ingresa el siguiente comando a fin de programar un reabastecimiento para la configuración de la transferencia projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq mk \
--transfer_run \
--start_time 2017-05-25T00:00:00Z \
--end_time 2017-05-25T00:00:00Z \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Usa el método projects.locations.transferConfigs.startManualRuns y proporciona el recurso de configuración de la transferencia mediante el parámetro parent.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsResponse;
import com.google.protobuf.Timestamp;
import java.io.IOException;
import org.threeten.bp.Clock;
import org.threeten.bp.Instant;
import org.threeten.bp.temporal.ChronoUnit;

// Sample to run schedule back fill for transfer config
public class ScheduleBackFill {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    Clock clock = Clock.systemDefaultZone();
    Instant instant = clock.instant();
    Timestamp startTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(5, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(5, ChronoUnit.DAYS).getNano())
            .build();
    Timestamp endTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(2, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(2, ChronoUnit.DAYS).getNano())
            .build();
    scheduleBackFill(configId, startTime, endTime);
  }

  public static void scheduleBackFill(String configId, Timestamp startTime, Timestamp endTime)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ScheduleTransferRunsRequest request =
          ScheduleTransferRunsRequest.newBuilder()
              .setParent(configId)
              .setStartTime(startTime)
              .setEndTime(endTime)
              .build();
      ScheduleTransferRunsResponse response = client.scheduleTransferRuns(request);
      System.out.println("Schedule backfill run successfully :" + response.getRunsCount());
    } catch (ApiException ex) {
      System.out.print("Schedule backfill was not run." + ex.toString());
    }
  }
}

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import datetime

from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
now = datetime.datetime.now(datetime.timezone.utc)
start_time = now - datetime.timedelta(days=5)
end_time = now - datetime.timedelta(days=2)

# Some data sources, such as scheduled_query only support daily run.
# Truncate start_time and end_time to midnight time (00:00AM UTC).
start_time = datetime.datetime(
    start_time.year, start_time.month, start_time.day, tzinfo=datetime.timezone.utc
)
end_time = datetime.datetime(
    end_time.year, end_time.month, end_time.day, tzinfo=datetime.timezone.utc
)

response = transfer_client.schedule_transfer_runs(
    parent=transfer_config_name,
    start_time=start_time,
    end_time=end_time,
)

print("Started transfer runs:")
for run in response.runs:
    print(f"backfill: {run.run_time} run: {run.name}")

Actualizar credenciales

Una transferencia usa las credenciales del usuario que la creó. Si necesitas cambiar el usuario adjunto a una configuración de transferencia, puedes actualizar las credenciales de la transferencia. Esto es útil si el usuario que creó la transferencia ya no está en tu organización.

Permisos necesarios

La actualización de credenciales requiere los permisos bigquery.transfers.update. La función predefinida de IAM bigquery.admin incluye los permisos bigquery.transfers.update.

Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

Actualiza las credenciales de una transferencia

Para actualizar las credenciales de una transferencia, haz lo siguiente:

Consola

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

  3. En la página Transferencias, haz clic en la transferencia apropiada en la lista.

  4. Haz clic en el menú MORE (Más) y, luego, selecciona Refresh credentials (Actualizar credenciales).

  5. Ingresa a tu Cuenta de Google y haz clic en Permitir a fin de otorgar permiso al Servicio de Transferencia de datos de BigQuery para ver los datos de informes, además de acceder y administrar los datos en BigQuery.

bq

Ingresa el comando bq update, proporciona el nombre del recurso de la configuración de la transferencia con la marca --transfer_config y, también, ingresa la marca --update_credentials.

bq update \
--update_credentials=boolean \
--transfer_config \
resource_name

Aquí:

  • boolean es un valor booleano que indica si las credenciales deben actualizarse para la configuración de la transferencia.
  • resource_name es el nombre del recurso de la transferencia (también conocido como la configuración de transferencia). Si no conoces el nombre del recurso de la transferencia, busca el nombre del recurso con bq ls --transfer_config --transfer_location=location.

Ejemplos comparativos entre

Ingresa el siguiente comando a fin de actualizar las credenciales para la transferencia de Google Ads projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq update \
--update_credentials=true \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Usa el método projects.transferConfigs.patch y proporciona los parámetros authorizationCode y updateMask.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update credentials in transfer config.
public class UpdateCredentials {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    String serviceAccount = "MY_SERVICE_ACCOUNT";
    TransferConfig transferConfig = TransferConfig.newBuilder().setName(configId).build();
    FieldMask updateMask = FieldMaskUtil.fromString("service_account_name");
    updateCredentials(transferConfig, serviceAccount, updateMask);
  }

  public static void updateCredentials(
      TransferConfig transferConfig, String serviceAccount, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .setServiceAccountName(serviceAccount)
              .build();
      dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Credentials updated successfully");
    } catch (ApiException ex) {
      System.out.print("Credentials was not updated." + ex.toString());
    }
  }
}

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

service_account_name = "abcdef-test-sa@abcdef-test.iam.gserviceaccount.com"
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["service_account_name"]),
        "service_account_name": service_account_name,
    }
)

print("Updated config: '{}'".format(transfer_config.name))

Inhabilitar una transferencia

Cuando inhabilitas una transferencia, disabled se agrega al nombre de la transferencia. Cuando la transferencia está inhabilitada, no se programan ejecuciones de transferencia nuevas ni se permiten reabastecimientos nuevos. Se completan todas las transferencias en ejecución.

Inhabilitar una transferencia no quita ningún dato que ya se transfirió a BigQuery. Los datos transferidos con anterioridad generan costos de almacenamiento de BigQuery estándar hasta que borres el conjunto de datos o borres las tablas.

Permisos necesarios

Para inhabilitar una transferencia, se necesitan permisos bigquery.transfers.update. La función predefinida de IAM bigquery.admin incluye los permisos bigquery.transfers.update.

Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

Inhabilita una transferencia

Para inhabilitar una transferencia:

Console

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. Haz clic en Transfers.

  3. En la página Transferencias, haz clic en la transferencia de la lista que deseas inhabilitar.

  4. Haz clic en DISABLE. Para volver a habilitar la transferencia, haz clic en ENABLE.

bq

Inhabilitar una transferencia no es compatible con la CLI.

API

Usa el método projects.locations.transferConfigs.patch y establece disabled en true en el recurso projects.locations.transferConfig.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.