Administra transferencias

En este documento, se muestra cómo administrar las configuraciones de transferencia de datos existentes.

También puedes activar una transferencia existente de forma manual, también conocida como iniciar una ejecución de reabastecimiento.

Visualiza tus transferencias

Para ver tus opciones de configuración de transferencia existentes, visualiza la información sobre cada transferencia, enumera todas las transferencias existentes y visualiza el historial de ejecución de transferencia o los mensajes de registro.

Roles obligatorios

Para obtener los permisos que necesitas para ver los detalles de la transferencia, pídele a tu administrador que te otorgue el rol de IAM de usuario de BigQuery (roles/bigquery.user) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Además, si deseas ver los mensajes de registro a través de la consola de Google Cloud, debes tener permisos para ver los datos de Cloud Logging. El rol de visualizador de registros (roles/logging.viewer) te otorga acceso de solo lectura a todas las funciones de Logging. Para obtener más información sobre los permisos y los roles de Identity and Access Management (IAM) que se aplican a los datos de registros en la nube, consulta la Guía de control de acceso de Cloud Logging.

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

Obtén detalles de la transferencia

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 y otra información importante, como los nombres de recursos.

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

Console

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

    Ir a Transferencias 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

Reemplaza resource_name por 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 bibliotecas cliente.

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

Para hacer una lista de todas las opciones de configuración de la transferencia existentes en un proyecto, sigue estos pasos:

Console

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

    Ir a Transferencias de datos

  2. Si hay configuraciones de transferencia en el proyecto, aparecerá una lista de las opciones de configuración de transferencia en la lista de transferencia de datos.

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

Reemplaza lo siguiente:

Ejemplos:

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,google_ads

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 bibliotecas cliente.

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 bibliotecas cliente.

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 de una transferencia

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.

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

Console

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

    Ir a Transferencias de datos

  2. Haz clic en la transferencia en la lista de transferencias de datos.

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

Reemplaza lo siguiente:

  • 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:

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 bibliotecas cliente.

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.

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

Console

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

    Ir a Transferencias de datos

  2. Haz clic en la transferencia en la lista de transferencias de datos.

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

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

  5. 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 de salida.

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

Reemplaza run_name por 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

Reemplaza lo siguiente:

  • 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 bibliotecas cliente.

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());
    }
  }
}

Modifica tus transferencias

Puedes modificar las transferencias existentes si editas la información de la configuración de la transferencia, actualizas las credenciales de un usuario adjuntada a una configuración de la transferencia e inhabilitas o borras una transferencia.

Roles obligatorios

Para obtener los permisos que necesitas para modificar las transferencias, pídele a tu administrador que te otorgue el rol de IAM de Administrador de BigQuery (roles/bigquery.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Actualizar una transferencia

Después de crear una configuración de transferencia, puedes editar los siguientes campos:

  • 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
  • Cuenta de servicio

No puedes editar el origen de una transferencia una vez que se crea una.

Para actualizar una transferencia, sigue estos pasos:

Console

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

    Ir a Transferencias de datos

  2. Haz clic en la transferencia en la lista de transferencias de datos.

  3. 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: De manera opcional, puedes proporcionar una marca --destination_kms_key para las transferencias de consultas programadas o Cloud Storage.

bq update \
--display_name='NAME' \
--params='PARAMETERS' \
--refresh_window_days=INTEGER \
--schedule='SCHEDULE'
--target_dataset=DATASET_ID \
--destination_kms_key="DESTINATION_KEY" \
--transfer_config \
--service_account_name=SERVICE_ACCOUNT \
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.
  • DESTINATION_KEY: el ID de recurso de la clave de Cloud KMS, por ejemplo, projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name. CMEK solo está disponible para transferencias de consultas programadas o Cloud Storage.
  • SERVICE_ACCOUNT: Especifica una cuenta de servicio para usar con esta 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:

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 bibliotecas cliente.

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 bibliotecas cliente.

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}'")

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.

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

Console

  1. En la consola de Google Cloud, accede como el usuario al que deseas transferir la propiedad.

  2. Navega a la página Transferencia de datos.

    Ir a Transferencias de datos

  3. Haz clic en la transferencia en la lista de transferencias de datos.

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

  5. Haz clic en Permitir para 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

Reemplaza lo siguiente:

  • 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:

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 bibliotecas cliente.

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 bibliotecas cliente.

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.

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 bibliotecas cliente.

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 disable transfer config.
public class DisableTransferConfig {

  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).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(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 disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

Para volver a habilitar la transferencia, sigue estos pasos:

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 bibliotecas cliente.

/*
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.example.bigquerydatatransfer;

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 disable transfer config.
public class DisableTransferConfig {

  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).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(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 disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

Borrar una transferencia

Cuando borras una transferencia, no se programan ejecuciones de transferencia nuevas. Cualquier transferencia en ejecución se detiene.

Borrar una trasferencia no quita ningún dato ya transferido 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.

Sigue los pasos a continuación para borrar 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 borrar.

  4. Haz clic en DELETE. Como medida de seguridad, deberás escribir la palabra “delete” en un cuadro para confirmar tu intención.

bq

Ingresa el comando bq rm y proporciona el nombre del recurso de la configuración de la transferencia. Puedes usar la marca -f para borrar una configuración de la transferencia sin confirmación.

bq rm \
-f \
--transfer_config \
resource_name

Aquí:

  • resource_name es el nombre del recurso de la transferencia (también conocido como la configuración de la transferencia). Si no conoces el nombre del recurso de la transferencia, ejecuta el comando bq ls --transfer_config --transfer_location=location para ver una lista de todas las transferencias.

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

bq rm \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Usa el método projects.locations.transferConfigs.delete y proporciona el recurso que estás borrando 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 bibliotecas cliente.

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

// Sample to delete a transfer config
public class DeleteTransferConfig {

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

  public static void deleteTransferConfig(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      DeleteTransferConfigRequest request =
          DeleteTransferConfigRequest.newBuilder().setName(configId).build();
      dataTransferServiceClient.deleteTransferConfig(request);
      System.out.println("Transfer config deleted successfully");
    } catch (ApiException ex) {
      System.out.println("Transfer config was not deleted." + 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 bibliotecas cliente.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
try:
    transfer_client.delete_transfer_config(name=transfer_config_name)
except google.api_core.exceptions.NotFound:
    print("Transfer config not found.")
else:
    print(f"Deleted transfer config: {transfer_config_name}")

Activa una transferencia de forma manual

Puedes activar una transferencia de forma manual, también llamada ejecución de reabastecimiento, para cargar archivos de datos adicionales fuera de las transferencias programadas de forma automática. Con las fuentes de datos que admiten parámetros de entorno de ejecución, también puedes activar una transferencia de forma manual si especificas una fecha o un intervalo de tiempo para cargar datos pasados.

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 guía de transferencia de tu fuente de datos.

Roles obligatorios

Para obtener los permisos que necesitas para modificar las transferencias, pídele a tu administrador que te otorgue el rol de IAM de Administrador de BigQuery (roles/bigquery.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Activa una transferencia o un reabastecimiento de forma manual

Puedes activar una transferencia o ejecución de reabastecimiento de forma manual con los siguientes métodos:

  • Selecciona la ejecución de la transferencia con la consola de Google Cloud y, luego, haz clic en Ejecutar transferencia ahora o Programar el reabastecimiento.
  • Usa el comando bq mk –transfer run con la herramienta de línea de comandos de bq
  • Realiza una llamada al projects.locations.transferConfigs.startManualRuns method del método de la API.

Para obtener instrucciones detalladas sobre cada método, selecciona la pestaña correspondiente:

Console

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

    Ir a Transferencias de datos

  2. Selecciona tu transferencia en la lista.

  3. Haz clic en Ejecutar transferencia ahora o Programar el reabastecimiento. Solo hay una opción disponible según el tipo de configuración de transferencia.

    • Si hiciste clic en Ejecutar transferencia ahora, selecciona Ejecutar transferencia de un solo uso o Ejecutar en una fecha específica según corresponda. Si seleccionaste Ejecutar en una fecha específica, selecciona una fecha y hora específicas:

      Ejecutar transferencia ahora

    • Si hiciste clic en Programar el reabastecimiento, selecciona Ejecutar transferencia de un solo uso o Ejecutar durante un período según corresponda. Si seleccionaste Ejecutar durante un período, selecciona una fecha y hora de inicio y de finalización:

      Programar el reabastecimiento

  4. Haz clic en Aceptar.

bq

Para iniciar una ejecución de la transferencia de forma manual, ingresa el comando bq mk con la marca --transfer_run:

bq mk \
--transfer_run \
--run_time='RUN_TIME' \
RESOURCE_NAME

Reemplaza lo siguiente:

  • RUN_TIME es una marca de tiempo que especifica la fecha de una transferencia pasada. Usa marcas de tiempo que terminen en Z o contengan un desplazamiento de zona horaria válido, por ejemplo, 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00.
    • Si tu transferencia no tiene un parámetro de entorno de ejecución o solo deseas activar una transferencia ahora sin especificar una transferencia anterior, ingresa tu hora actual en este campo.
  • RESOURCE_NAME es el nombre del recurso que aparece en la configuración de la transferencia, por ejemplo, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

Para iniciar de forma manual una ejecución de transferencia para un período de fechas, ingresa el comando bq mk con la marca --transfer_run junto con un período:

bq mk \
--transfer_run \
--start_time='START_TIME' \
--end_time='END_TIME' \
RESOURCE_NAME

Reemplaza lo siguiente:

  • El START_TIME y el END_TIME son marcas de tiempo que terminan en Z o contienen un desplazamiento de zona horaria válido. Estos valores especifican el intervalo de tiempo que contiene las ejecuciones de transferencia anteriores desde las que deseas reabastecer, por ejemplo, 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00
  • RESOURCE_NAME es el nombre del recurso que aparece en la configuración de la transferencia, por ejemplo, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Para iniciar una ejecución de la transferencia de forma manual, usa el método projects.locations.transferConfigs.startManualRuns y proporciona el nombre del recurso de configuración de la transferencia con el parámetro superior. Para encontrar el nombre del recurso de una configuración de la transferencia, consulta Obtén información sobre las transferencias.

  "requestedRunTime": "RUN_TIME"

Reemplaza lo siguiente:

  • RUN_TIME es una marca de tiempo que especifica la fecha de una transferencia pasada. Usa marcas de tiempo que terminen en Z o contengan un desplazamiento de zona horaria válido, por ejemplo, 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00.
    • Si tu transferencia no tiene un parámetro de entorno de ejecución o solo deseas activar una transferencia ahora sin especificar una transferencia anterior, ingresa tu hora actual en este campo.

Para iniciar manualmente una ejecución de transferencia para un período de fechas, proporciona un período:

"requestedTimeRange": {
  "startTime": "START_TIME",
  "endTime": "END_TIME"
}

Reemplaza lo siguiente:

  • El START_TIME y el END_TIME son marcas de tiempo que terminan en Z o contienen un desplazamiento de zona horaria válido. Estos valores especifican el intervalo de tiempo que contiene las ejecuciones de transferencia anteriores desde las que deseas reabastecer, por ejemplo, 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00

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 bibliotecas cliente.

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 bibliotecas cliente.

import datetime

from google.cloud.bigquery_datatransfer_v1 import (
    DataTransferServiceClient,
    StartManualTransferRunsRequest,
)

# Create a client object
client = DataTransferServiceClient()

# Replace with your transfer configuration name
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
)

requested_time_range = StartManualTransferRunsRequest.TimeRange(
    start_time=start_time,
    end_time=end_time,
)

# Initialize request argument(s)
request = StartManualTransferRunsRequest(
    parent=transfer_config_name,
    requested_time_range=requested_time_range,
)

# Make the request
response = client.start_manual_transfer_runs(request=request)

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

Registro y supervisión

El Servicio de transferencia de datos de BigQuery exporta los registros y las métricas a Cloud Monitoring y Cloud Logging que proporcionan observabilidad en tus transferencias. Puedes usar Monitoring para configurar paneles a fin de supervisar las transferencias, evaluar el rendimiento de la ejecución de la transferencia y ver los mensajes de error a fin de solucionar problemas de transferencia. Puedes usar Logging para ver los registros relacionados con una ejecución de transferencia o una configuración de transferencia.

También puedes ver los registros de auditoría que están disponibles en el Servicio de transferencia de datos de BigQuery para la actividad de transferencia y los registros de acceso a los datos.