Gestionar transferencias

En este documento se explica cómo gestionar las configuraciones de transferencia de datos.

También puedes iniciar manualmente una transferencia, lo que se conoce como ejecución de relleno.

Ver tus transferencias

Para ver las configuraciones de transferencia que ya tienes, consulta la información de cada transferencia, la lista de todas las transferencias y el historial de ejecuciones o los mensajes de registro de las transferencias.

Roles obligatorios

Para obtener los permisos que necesitas para ver los detalles de la transferencia, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Usuario de BigQuery (roles/bigquery.user) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

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

Para obtener más información sobre los roles de gestión de identidades y accesos en BigQuery Data Transfer Service, consulta el artículo sobre el control de acceso.

Obtener los detalles de la transferencia

Una vez que hayas creado una transferencia, podrás obtener información sobre su configuración. La configuración incluye los valores que proporcionó al crear la transferencia, así como otra información importante, como los nombres de los recursos.

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

Consola

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

    Ir a Transferencias de datos

  2. Selecciona la transferencia de la que quieras obtener los detalles.

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

    Configurar la transferencia en la consola

bq

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

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

Sustituye resource_name por el nombre del recurso de la transferencia (también denominado "configuración de la transferencia"). Si no conoces el nombre del recurso de la transferencia, puedes encontrarlo con el siguiente comando: bq ls --transfer_config --transfer_location=location.

Por ejemplo, introduce 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 Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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());
    }
  }
}

Mostrar configuraciones de transferencia

Para ver todas las configuraciones de transferencia de un proyecto, sigue estos pasos:

Consola

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

    Ir a Transferencias de datos

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

bq

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

Para enumerar las configuraciones de transferencia de fuentes de datos concretas, proporciona la marca --filter.

Para ver un número concreto de configuraciones de transferencia en formato paginado, proporciona la marca --max_results para especificar el número de transferencias. El comando devuelve un token de página que se proporciona mediante la marca --page_token para ver las siguientes n configuraciones. Si se omite --max_results, se devolverán 1000 configuraciones como máximo. Además, --max_results no aceptará valores superiores a 1000. Si tu proyecto tiene más de 1000 configuraciones, usa --max_results y --page_token para recorrerlas todas.

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

Haz los cambios siguientes:

Ejemplos:

Introduce el siguiente comando para mostrar todas las configuraciones de transferencia de EE. UU. de tu proyecto predeterminado. La salida se controla mediante la marca --format.

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

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

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

Introduce el siguiente comando para enumerar las tres configuraciones de transferencia más recientes.

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

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

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

Introduce el siguiente comando para enumerar las configuraciones de transferencia de Google Ads y Campaign Manager del proyecto con el ID 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 Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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}")

Ver el historial de ejecuciones de transferencias

A medida que se ejecutan las transferencias programadas, se mantiene un historial de ejecuciones de cada configuración de transferencia, que incluye las ejecuciones de transferencia correctas y las que fallan. Las transferencias que tengan más de 90 días se eliminan automáticamente del historial de transferencias.

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

Consola

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

    Ir a Transferencias de datos

  2. En la lista de transferencias de datos, haz clic en la transferencia que quieras.

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

bq

Para enumerar las ejecuciones de transferencia de una configuración de transferencia concreta, introduce el comando bq ls y proporciona la marca --transfer_run. También puedes usar la marca --project_id para especificar un proyecto concreto. 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 de salida.

Para ver un número concreto de transferencias, utiliza la marca --max_results. El comando devuelve un token de página que se proporciona mediante la marca --page_token para ver las siguientes n configuraciones.

Para enumerar las transferencias en función del estado de la transferencia, proporciona la marca --filter.

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

Haz los cambios siguientes:

  • integer es el número de resultados que se devolverán.
  • location es la ubicación de las configuraciones de transferencia. La ubicación se especifica al crear una transferencia.
  • project_id es el ID del proyecto.
  • state, ... es uno de los siguientes elementos o una lista separada por comas:
    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED
  • resource_name es el nombre de recurso de la transferencia (también conocido como configuración de transferencia). Si no sabes el nombre del recurso de la transferencia, puedes encontrarlo con: bq ls --transfer_config --transfer_location=location.

Ejemplos:

Introduce el siguiente comando para mostrar las tres últimas ejecuciones de la configuración de transferencia projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. La salida se controla mediante 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 devuelve un token de la página siguiente. Copia el token de página y proporciónalo en el comando bq ls para ver los tres 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

Introduce el siguiente comando para mostrar todas las ejecuciones fallidas de la configuración de 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 Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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());
    }
  }
}

Ver los detalles de la ejecución de la transferencia y los mensajes de registro

Cuando una ejecución de transferencia aparece 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 de finalización.

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

Consola

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

    Ir a Transferencias de datos

  2. En la lista de transferencias de datos, haz clic en la transferencia que quieras.

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

  4. Haz clic en una ejecución concreta de la transferencia y se abrirá el panel Detalles de la ejecución de esa ejecución.

  5. En Detalles de la ejecución, anota los mensajes de error. Esta información es necesaria si te pones en contacto con Cloud Customer Care. Los detalles de la ejecución también incluyen mensajes de registro y advertencias.

    Detalles de la ejecución en la consola

bq

Para ver los detalles de una ejecución de transferencia, introduce el comando bq show y proporciona el nombre de la ejecución de 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

Sustituye run_name por el nombre de la ejecución de la transferencia. Puedes obtener el nombre de la ejecución con el comando bq ls.

Ejemplo:

Introduce el siguiente comando para ver 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 transferencia, introduce el comando bq ls con la marca --transfer_log. Puedes filtrar los mensajes de registro por tipo con la marca --message_type.

Para ver un número concreto de mensajes de registro, proporciona la marca --max_results. El comando devuelve un token de página que proporcionas con la marca --page_token para ver los siguientes n mensajes.

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

Haz los cambios siguientes:

  • integer es el número de mensajes de registro que se van a devolver.
  • message_type es el tipo de mensaje de registro que se va a ver (un solo valor o una lista separada por comas):
    • INFO
    • WARNING
    • ERROR
  • run_name es el nombre de la ejecución de la transferencia. Puedes obtener el nombre de la ejecución con el comando bq ls.

Ejemplos:

Introduce el siguiente comando para ver los dos primeros mensajes de registro de transfer run 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 devuelve un token de la página siguiente. Copia el token de página y proporciónalo en el comando bq ls para ver los dos 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

Introduce 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 la ejecución de la transferencia con el parámetro parent.

Java

Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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());
    }
  }
}

Modificar tus transferencias

Puedes modificar las transferencias que ya tengas editando la información de la configuración de la transferencia, actualizando las credenciales de un usuario asociadas a una configuración de transferencia y habilitando o inhabilitando una transferencia.

Roles obligatorios

Para obtener los permisos que necesitas para modificar transferencias, pide a tu administrador que te asigne el rol de gestión de identidades y accesos Administrador de BigQuery (roles/bigquery.admin) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Actualizar una transferencia

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

  • Conjunto de datos de destino
  • Nombre visible
  • Cualquiera de los parámetros especificados para el tipo de transferencia concreto
  • Ejecutar ajustes de notificaciones
  • Cuenta de servicio

No puedes editar la fuente de una transferencia una vez que se ha creado.

Para actualizar una transferencia, sigue estos pasos:

Consola

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

    Ir a Transferencias de datos

  2. En la lista de transferencias de datos, haz clic en la transferencia que quieras.

  3. Haz clic en EDITAR para actualizar la configuración de la transferencia.

bq

Introduce el comando bq update, proporciona el nombre del recurso de la configuración de la transferencia mediante la marca --transfer_config y las marcas --display_name, --params, --refresh_window_days, --schedule o --target_dataset. También puedes proporcionar la marca --destination_kms_key para consultas programadas o transferencias de 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

Haz los cambios siguientes:

  • NAME: el nombre visible de la configuración de la transferencia.
  • PARAMETERS: los parámetros de la configuración de la transferencia en formato JSON. Por ejemplo: --params='{"param1":"param_value1"}'. Para obtener información sobre los parámetros admitidos, consulta la guía de transferencia de tu fuente de datos.
  • INTEGER: un valor entre 0 y 30. Para obtener información sobre cómo definir el periodo de actualización, consulta la documentación de tu tipo de transferencia.
  • SCHEDULE: una programación periódica, como --schedule="every 3 hours". Para ver una descripción de la sintaxis de schedule, consulta Dar formato a schedule.
  • DATASET_ID: el conjunto de datos de destino de la configuración de la transferencia.
  • DESTINATION_KEY: el ID del recurso de clave de Cloud KMS, por ejemplo, projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name. CMEK solo está disponible para las consultas programadas o las transferencias de Cloud Storage.
  • SERVICE_ACCOUNT: especifica una cuenta de servicio que se va a usar en esta transferencia.
  • RESOURCE_NAME: el nombre del recurso de la transferencia (también denominado "configuración de la transferencia"). Si no sabes el nombre del recurso de la transferencia, puedes encontrarlo con: bq ls --transfer_config --transfer_location=location.

Ejemplos:

El siguiente comando actualiza el nombre visible, el conjunto de datos de destino, la ventana de actualización y los parámetros de 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

El siguiente comando actualiza los parámetros y la programación de la transferencia de consultas 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 mediante el parámetro transferConfig.name. Si no sabes el nombre del recurso de la transferencia, puedes encontrarlo con: bq ls --transfer_config --transfer_location=location. También puedes llamar al siguiente método y proporcionar el ID del proyecto mediante el parámetro parent para enumerar todas las transferencias: projects.locations.transferConfigs.list.

Java

Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 necesita cambiar el usuario asociado a una configuración de transferencia, puede actualizar las credenciales de la transferencia. Esto es útil si el usuario que creó la transferencia ya no forma parte de tu organización.

Para actualizar las credenciales de una transferencia, sigue estos pasos:

Consola

  1. En la Google Cloud consola, inicia sesión como el usuario al que quieras transferir la propiedad.

  2. Vaya a la página Transferencias de datos.

    Ir a Transferencias de datos

  3. En la lista de transferencias de datos, haga clic en la transferencia que quiera.

  4. Haz clic en el menú MÁS y, a continuación, selecciona Actualizar credenciales.

  5. Haga clic en Permitir para dar permiso a BigQuery Data Transfer Service para ver sus datos registrados y acceder a los datos de BigQuery y gestionarlos.

bq

Introduce el comando bq update, proporciona el nombre del recurso de la configuración de transferencia con la marca --transfer_config y añade la marca --update_credentials.

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

Haz los cambios siguientes:

  • boolean es un valor booleano que indica si las credenciales se deben actualizar para la configuración de transferencia.
  • resource_name es el nombre de recurso de la transferencia (también se conoce como "configuración de transferencia"). Si no sabes el nombre del recurso de la transferencia, puedes encontrarlo con: bq ls --transfer_config --transfer_location=location.

Ejemplos:

Introduce el siguiente comando para actualizar las credenciales de 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 Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 inhabilita una transferencia, se añade disabled al nombre de la transferencia. Cuando la transferencia está inhabilitada, no se programan nuevas transferencias y no se permiten nuevos rellenos. Se completan las ejecuciones de transferencias en curso.

Si inhabilitas una transferencia, no se eliminarán los datos que ya se hayan transferido a BigQuery. Los datos transferidos anteriormente generan costes de almacenamiento estándar de BigQuery hasta que elimines el conjunto de datos o elimines las tablas.

Para inhabilitar una transferencia, sigue estos pasos:

Consola

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

    Ir a BigQuery

  2. Haz clic en Transferencias.

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

  4. Haz clic en INHABILITAR. Para volver a habilitar la transferencia, haz clic en HABILITAR.

bq

La CLI no admite la inhabilitación de una transferencia.

API

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

Java

Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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());
    }
  }
}

Eliminar una transferencia

Cuando se elimina una transferencia, no se programan nuevas ejecuciones de la transferencia. Se detendrán las ejecuciones de transferencias en curso.

Si elimina una transferencia, no se eliminarán los datos que ya se hayan transferido a BigQuery. Los datos transferidos anteriormente generan costes de almacenamiento estándar de BigQuery hasta que elimines el conjunto de datos o elimines las tablas.

Para eliminar una transferencia, sigue estos pasos:

Consola

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

    Ir a BigQuery

  2. Haz clic en Transferencias.

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

  4. Haz clic en ELIMINAR. Como medida de seguridad, tendrás que escribir la palabra "eliminar" en un cuadro para confirmar tu intención.

bq

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

bq rm \
-f \
--transfer_config \
resource_name

Donde:

  • resource_name es el nombre de recurso de la transferencia, que también se conoce como "configuración de transferencia". Si no sabes 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, introduce el siguiente comando para eliminar la configuración de 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 quieres eliminar con el parámetro name.

Java

Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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}")

Activar una transferencia manualmente

Puedes activar manualmente una transferencia, también llamada ejecución de relleno, para cargar archivos de datos adicionales fuera de las transferencias programadas automáticamente. En las fuentes de datos que admiten parámetros de tiempo de ejecución, también puede activar manualmente una transferencia especificando una fecha o un intervalo de tiempo para cargar datos anteriores.

Puedes iniciar manualmente reposiciones de datos en cualquier momento. Además de los límites de las fuentes, BigQuery Data Transfer Service admite un máximo de 180 días por solicitud de reposición. No se admiten solicitudes de relleno simultáneas.

Para obtener información sobre la cantidad de datos disponibles para el relleno, consulta la guía de transferencia de tu fuente de datos.

Roles obligatorios

Para obtener los permisos que necesitas para modificar transferencias, pide a tu administrador que te asigne el rol de gestión de identidades y accesos Administrador de BigQuery (roles/bigquery.admin) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Activar manualmente una transferencia o un relleno

Puedes activar manualmente una transferencia o un relleno con los siguientes métodos:

  • Selecciona la ejecución de la transferencia mediante la consola Google Cloud y, a continuación, haz clic en Ejecutar transferencia ahora o Programar relleno.
  • Usar el comando bq mk –transfer run con la herramienta de línea de comandos bq
  • Llama al método de API projects.locations.transferConfigs.startManualRuns method

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

Consola

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

    Ir a Transferencias de datos

  2. Selecciona la transferencia de la lista.

  3. Haz clic en Ejecutar transferencia ahora o en Programar relleno. Solo hay una opción disponible en función del tipo de configuración de transferencia.

    • Si has hecho clic en Ejecutar transferencia ahora, selecciona Ejecutar transferencia única o Ejecutar en una fecha concreta, según corresponda. Si has seleccionado Ejecutar en una fecha concreta, elige una fecha y una hora específicas:

      Ejecutar transferencia ahora

    • Si ha hecho clic en Programar reposición, seleccione Ejecutar transferencia única o Ejecutar durante un periodo, según corresponda. Si has seleccionado Ejecutar durante un periodo, elige una fecha y una hora de inicio y de finalización:

      Programar reposición

  4. Haz clic en Aceptar.

bq

Para iniciar manualmente una ejecución de transferencia, introduce el comando bq mk con la marca --transfer_run:

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

Haz los cambios siguientes:

  • RUN_TIME es una marca de tiempo que especifica la fecha de una transferencia anterior. Usa marcas de tiempo que terminen en Z o que contengan un desfase de zona horaria válido, como 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00.
    • Si tu transferencia no tiene un parámetro de tiempo de ejecución o solo quieres activarla ahora sin especificar una transferencia anterior, introduce la 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 manualmente una ejecución de transferencia de un periodo, introduce el comando bq mk con la marca --transfer_run junto con un periodo:

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

Haz los cambios siguientes:

  • START_TIME y END_TIME son marcas de tiempo que terminan en Z o contienen un desfase de zona horaria válido. Estos valores especifican el intervalo de tiempo que contiene las ejecuciones de transferencia anteriores de las que quieres rellenar los datos, 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 tu configuración de transferencia (por ejemplo, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Para iniciar manualmente una ejecución de transferencia, usa el método projects.locations.transferConfigs.startManualRuns y proporciona el nombre del recurso de configuración de transferencia mediante el parámetro parent. Para encontrar el nombre de recurso de una configuración de transferencia, consulta Obtener detalles de la transferencia.

  "requestedRunTime": "RUN_TIME"

Haz los cambios siguientes:

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

Para iniciar manualmente una transferencia de un intervalo de fechas, proporciona un intervalo de fechas:

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

Haz los cambios siguientes:

  • START_TIME y END_TIME son marcas de tiempo que terminan en Z o contienen una diferencia horaria válida. Estos valores especifican el intervalo de tiempo que contiene las ejecuciones de transferencia anteriores de las que quieres rellenar los datos, por ejemplo, 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00.

Java

Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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 Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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}")

Almacenamiento de registros y monitorización

BigQuery Data Transfer Service exporta registros y métricas a Cloud Monitoring y Cloud Logging, que proporcionan información sobre tus transferencias. Puede usar Monitoring para configurar paneles de control con los que monitorizar las transferencias, evaluar el rendimiento de las ejecuciones de transferencias y ver los mensajes de error para solucionar los problemas de las transferencias. 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 disponibles en BigQuery Data Transfer Service para consultar la actividad de transferencia y los registros de acceso a datos.