Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Trabaja con transferencias

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

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

Obtén información sobre las transferencias

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

Permisos necesarios

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

  • bigquery.admin
  • bigquery.user

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

Para obtener más información sobre las funciones de IAM en el Servicio de transferencia de datos de BigQuery, consulta la referencia del control de acceso.

Obtén información sobre una transferencia

Para obtener información sobre una configuración de transferencia

Console

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

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

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

  4. Haz clic en CONFIGURACIÓN para la transferencia seleccionada.

  5. Aparecerán la configuración de la transferencia y los detalles de la fuente de datos. En el siguiente ejemplo, se muestran las propiedades de configuración de una migración de Teradata.

    Configuración de transferencia en la consola

bq

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

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

Aquí:

  • resource_name es el nombre del recurso de la transferencia (también conocido como la configuración de transferencia). Si no conoces el nombre del recurso de la transferencia, 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 mostrar la configuración de la transferencia 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

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

Lista de opciones de configuración de transferencias

Permisos necesarios

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

  • bigquery.admin
  • bigquery.user

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

Para obtener más información sobre las funciones de IAM en el Servicio de transferencia de datos de BigQuery, consulta la referencia del control de acceso.

Haz una lista de las transferencias

Sigue los pasos a continuación para listar las configuraciones de transferencia en un proyecto:

Console

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

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

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

bq

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

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

Para ver una cantidad específica de opciones de configuración de la transferencia en un formato de páginas, proporciona la marca --max_results a fin de especificar la cantidad de transferencias. El comando muestra un token de página que proporcionas con la marca --page_token para ver las siguientes n configuraciones.

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

Aquí:

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

API

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

Java

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

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

Ve el historial de ejecuciones

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

Permisos necesarios

La visualización del historial de ejecución de una configuración de la transferencia requiere permisos bigquery.transfers.get. La función bigquery.user predefinida de IAM incluye los permisos bigquery.transfers.get.

Para obtener más información sobre las funciones de IAM en el Servicio de transferencia de datos de BigQuery, consulta la referencia del control de acceso.

Visualiza el historial de ejecución

Para ver el historial de ejecución de una configuración de transferencia:

Console

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

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

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

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

bq

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

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

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

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

Aquí:

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

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

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

Ve detalles de ejecución de transferencia y mensajes de registro

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

Permisos necesarios

La visualización de los detalles de la ejecución de la transferencia requiere permisos bigquery.transfers.get. La función bigquery.user predefinida de IAM incluye los permisos bigquery.transfers.get.

Para obtener más información sobre las funciones de IAM en el Servicio de transferencia de datos de BigQuery, consulta la referencia del control de acceso.

Visualiza detalles de una ejecución de la transferencia

Para ver los detalles de la ejecución de la transferencia:

Console

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

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

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

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

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

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

    Ejecuta detalles en Console

bq

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

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

Aquí:

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

Ejemplo:

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

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

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

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

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

Aquí:

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

Ejemplos:

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

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

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

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

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

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

API

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

Java

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

Actualiza una transferencia

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

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

Permisos necesarios

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

Para obtener más información sobre las funciones de IAM en el Servicio de transferencia de datos de BigQuery, consulta la referencia del control de acceso.

Actualiza una transferencia

Para actualizar una transferencia:

Console

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

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

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

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

bq

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

bq update \
--display_name='name' \
--target_dataset=dataset \
--params='parameters' \
--refresh_window_days=integer \
--transfer_config \
resource_name

Aquí:

  • name es el nombre visible de la configuración de transferencia.
  • dataset es el conjunto de datos de destino para la configuración de la transferencia.
  • parameters contiene los parámetros para la configuración de la transferencia en formato JSON. Por ejemplo: --params='{"param":"param_value"}' Los siguientes parámetros son modificables:
    • Google Ads: customer_id
    • Campaign Manager: bucket y network_id
    • Google Ad Manager: bucket y network_code
    • Google Merchant Center: merchant_id
    • Google Play: bucket y table_suffix
    • Search Ads 360: agency_id, advertiser_id, include_removed_entities, table_filter y custom_floodlight_variables
    • 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.
  • 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, ejecuta el comando bq ls --transfer_config --transfer_location=location para ver una lista de todas las transferencias.

Ejemplos:

Ingresa el siguiente comando para actualizar el nombre comercial, 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' \
--target_dataset=mydataset2 \
--params='{"customer_id":"123-123-5678"}' \
--refresh_window_days=3 \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

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, ejecuta el comando bq ls --transfer_config --transfer_location=location para ver una lista de todas las transferencias o llama al método projects.locations.transferConfigs.list y proporciona el ID del proyecto con el parámetro parent.

Java

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

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

Configuración de reabastecimientos y ejecuciones de actualización

Actualización

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

Reabastecimiento

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

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

  • Campaign Manager
  • Google Ad Manager
  • Google Ads
    • Cuando configuras un reabastecimiento para Google Ads, las instantáneas de las tablas de coincidencia se toman una vez al día y se almacenan en la partición para la última fecha de ejecución. Cuando programas un reabastecimiento, las instantáneas de la tabla de coincidencia para las siguientes tablas NO se actualizan:
      • Ad
      • AdGroup
      • AgeRange
      • Audience
      • BidGoal
      • Budget
      • Campaign
      • Criteria
      • Customer
      • Gender
      • Keyword
      • LocationBasedCampaignCriterion
      • ParentalStatus
      • Placement
      • Video
  • Google Merchant Center (Beta)
  • Google Play
  • Search Ads 360
    • Cuando configuras un reabastecimiento para Search Ads 360, las instantáneas de las tablas de coincidencia se toman una vez al día y se almacenan en la partición para la última fecha de ejecución. Cuando programas un reabastecimiento, las instantáneas de la tabla de coincidencia para las siguientes tablas NO se actualizan:
      • Account
      • Ad
      • Advertiser
      • AdGroup
      • AdGroupTarget
      • BidStrategy
      • Campaign
      • CampaignTarget
      • FeedItem
      • FloodlightActivity
      • Keyword
      • NegativeAdGroupKeyword
      • NegativeAdGroupTarget
      • NegativeCampaignKeyword
      • NegativeCampaignTarget
      • ProductAdvertised
      • ProductGroup
      • ProductLeadAndCrossSellFloodlightStats
      • Video
      • Placement
      • Video
  • YouTube: Informes de canales
  • YouTube: Informes del propietario de contenido

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

Permisos necesarios

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

Para obtener más información sobre las funciones de IAM en el Servicio de transferencia de datos de BigQuery, consulta la referencia del control de acceso.

Programa un reabastecimiento

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

Console

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

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

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

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

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

    Configurar fechas de actualización

bq

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

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

Aquí:

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

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

Ejemplos:

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

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

API

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

Java

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

import datetime

from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

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

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

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

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

Actualiza las credenciales

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

Permisos necesarios

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

Para obtener más información sobre las funciones de IAM en el Servicio de transferencia de datos de BigQuery, consulta la referencia del control de acceso.

Actualiza las credenciales de una transferencia

Para actualizar las credenciales de una transferencia:

Console

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

    Ir a la página de BigQuery

  2. Haz clic en Transfers.

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

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

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

bq

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

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

Aquí:

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

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

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

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))

Inhabilita una transferencia

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

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

Permisos necesarios

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

Para obtener más información sobre las funciones de IAM en el Servicio de transferencia de datos de BigQuery, consulta la referencia del control de acceso.

Inhabilita una transferencia

Para inhabilitar una transferencia:

Console

  1. En Google Cloud Console, 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

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:

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

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

Permisos necesarios

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

Para obtener más información sobre las funciones de IAM en el Servicio de transferencia de datos de BigQuery, consulta la referencia del control de acceso.

Borra una transferencia

Sigue los pasos a continuación para borrar una transferencia:

Console

  1. En Google Cloud Console, 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

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

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

Registro y supervisión

El Servicio de transferencia de datos de BigQuery exporta registros y métricas a Cloud Logging y Cloud Monitoring que proporciona observabilidad en tus transferencias. Para obtener más información sobre el registro y la supervisión del Servicio de transferencia de datos de BigQuery, consulte Registros de auditoría, registro en la nube y supervisión de la nube.