Cargar datos de Cloud Storage en BigQuery

Puedes cargar datos de Cloud Storage a BigQuery mediante el conector de BigQuery Data Transfer Service para Cloud Storage. Con BigQuery Data Transfer Service, puedes programar tareas de transferencia periódicas que añadan los datos más recientes de Cloud Storage a BigQuery.

Antes de empezar

Antes de crear una transferencia de datos de Cloud Storage, haz lo siguiente:

Limitaciones

Las transferencias de datos periódicas de Cloud Storage a BigQuery están sujetas a las siguientes limitaciones:

  • Todos los archivos que coincidan con los patrones definidos por un comodín o por parámetros de tiempo de ejecución de su transferencia de datos deben compartir el mismo esquema que haya definido para la tabla de destino. De lo contrario, la transferencia fallará. Si el esquema de la tabla cambia entre ejecuciones, la transferencia también fallará.
  • Como los objetos de Cloud Storage pueden tener versiones, es importante tener en cuenta que los objetos de Cloud Storage archivados no se admiten en las transferencias de datos de BigQuery. Los objetos deben estar activos para poder transferirse.
  • A diferencia de las cargas individuales de datos de Cloud Storage a BigQuery, para las transferencias de datos continuas, debes crear la tabla de destino antes de configurar la transferencia. En el caso de los archivos CSV y JSON, también debes definir el esquema de tabla con antelación. BigQuery no puede crear la tabla como parte del proceso de transferencia de datos periódica.
  • Las transferencias de datos desde Cloud Storage definen el parámetro Preferencia de escritura en APPEND de forma predeterminada. En este modo, un archivo sin modificar solo se puede cargar en BigQuery una vez. Si se actualiza la propiedad last modification time del archivo, se volverá a cargar.
  • BigQuery Data Transfer Service no garantiza que todos los archivos se transfieran o que se transfieran solo una vez si los archivos de Cloud Storage se modifican durante una transferencia de datos. Cuando cargas datos en BigQuery desde un segmento de Cloud Storage, estás sujeto a las siguientes limitaciones:

  • BigQuery no garantiza la coherencia de los datos de las fuentes de datos externas. Si se modifican los datos subyacentes mientras se ejecuta una consulta, se pueden producir comportamientos inesperados.

  • BigQuery no admite la gestión de versiones de objetos de Cloud Storage. Si incluyes un número de generación en el URI de Cloud Storage, el trabajo de carga fallará.

  • En función del formato de los datos de origen de Cloud Storage, puede haber limitaciones adicionales. Para obtener más información, consulta estos artículos:

  • El segmento de Cloud Storage debe estar en una ubicación compatible con la región o multirregión del conjunto de datos de destino en BigQuery. Esto se conoce como colocación. Para obtener más información, consulta la sección Ubicaciones de datos sobre la transferencia de Cloud Storage.

Intervalos mínimos

  • Los archivos de origen se recogen inmediatamente para la transferencia de datos, sin que tengan una antigüedad mínima.
  • El intervalo mínimo entre transferencias de datos periódicas es de 15 minutos. El intervalo predeterminado de una transferencia de datos periódica es de 24 horas.
  • Puede configurar una transferencia basada en eventos para programar automáticamente transferencias de datos a intervalos más cortos.

Permisos obligatorios

Cuando cargas datos en BigQuery, necesitas permisos que te permitan cargar datos en tablas y particiones de BigQuery nuevas o ya creadas. Si vas a cargar datos desde Cloud Storage, también necesitarás acceso al segmento que contenga tus datos. Asegúrate de que tienes los siguientes permisos necesarios:

  • BigQuery asegúrate de que la persona o la cuenta de servicio que cree la transferencia de datos tenga los siguientes permisos en BigQuery:

    • Permisos de bigquery.transfers.update para crear la transferencia de datos
    • Permisos bigquery.datasets.get y bigquery.datasets.update en el conjunto de datos de destino

    El rol predefinido de gestión de identidades y accesos bigquery.admin incluye los permisos bigquery.transfers.update, bigquery.datasets.update y bigquery.datasets.get. Para obtener más información sobre los roles de gestión de identidades y accesos en BigQuery Data Transfer Service, consulta Control de acceso.

  • Cloud Storage: se necesitan permisos storage.objects.get en el segmento o en un nivel superior. Si usas un comodín de URI, también debes tener permisos storage.objects.list. Si quieres eliminar los archivos de origen después de cada transferencia correcta, también necesitas permisos de storage.objects.delete. El rol de gestión de identidades y accesos predefinido storage.objectAdmin incluye todos estos permisos.

Configurar una transferencia de Cloud Storage

Para crear una transferencia de datos de Cloud Storage en BigQuery Data Transfer Service, sigue estos pasos:

Consola

  1. Ve a la página Transferencias de datos de la Google Cloud consola.

    Ir a Transferencias de datos

  2. Haz clic en Crear transferencia.

  3. En la sección Tipo de origen, en Origen, elige Google Cloud Storage.

    Fuente de transferencia

  4. En la sección Nombre de la configuración de transferencia, en Nombre visible, indica un nombre para la transferencia de datos; por ejemplo, My Transfer. El nombre de la transferencia puede ser cualquier valor que te permita identificar la transferencia si necesitas modificarla más adelante.

    Nombre de transferencia

  5. En la sección Opciones de programación, selecciona una Frecuencia de repetición:

    • Si selecciona Horas, Días, Semanas o Meses, también debe especificar una frecuencia. También puedes seleccionar Personalizar para especificar una frecuencia de repetición personalizada. Puedes seleccionar Empezar ahora o Empezar a una hora determinada e indicar una fecha de inicio y un tiempo de ejecución.

    • Si seleccionas Bajo demanda, la transferencia de datos se realizará cuando la actives manualmente.

    • Si seleccionas Basado en eventos, también debes especificar una suscripción de Pub/Sub. Elige el nombre de tu suscripción o haz clic en Crear una suscripción. Esta opción habilita una transferencia basada en eventos que activa las transferencias cuando llegan eventos a la suscripción de Pub/Sub.

  6. En la sección Configuración de destino, en Conjunto de datos de destino, elija el conjunto de datos que haya creado para almacenar sus datos.

    Transferir conjunto de datos

  7. En la sección Detalles de la fuente de datos:

    1. En Tabla de destino, introduce el nombre de la tabla de destino. La tabla de destino debe cumplir las reglas de nomenclatura de tablas. Los nombres de las tablas de destino también admiten parámetros.
    2. En URI de Cloud Storage, introduce el URI de Cloud Storage. Se admiten comodines y parámetros. Si la URI no coincide con ningún archivo, no se sobrescribirán datos en la tabla de destino.
    3. En Preferencia de escritura, elige una de estas opciones:

      • APPEND para añadir datos nuevos de forma incremental a la tabla de destino. APPEND es el valor predeterminado de Preferencia de escritura.
      • MIRROR para sobrescribir los datos de la tabla de destino durante cada ejecución de la transferencia de datos.

      Para obtener más información sobre cómo ingiere datos BigQuery Data Transfer Service mediante APPEND o MIRROR, consulta Ingestión de datos para transferencias de Cloud Storage. Para obtener más información sobre el campo writeDisposition, consulta JobConfigurationLoad.

    4. En Eliminar archivos de origen después de la transferencia, marca la casilla si quieres eliminar los archivos de origen después de cada transferencia de datos correcta. Las eliminaciones de trabajos se realizan de la mejor forma posible. Las tareas de eliminación no se vuelven a intentar si el primer intento de eliminar los archivos de origen falla.

    5. En la sección Opciones de transferencia:

      1. En Todos los formatos:
        1. En Número de errores permitidos, introduzca el número máximo de registros incorrectos que BigQuery puede ignorar al ejecutar la tarea. Si el número de registros incorrectos supera este valor, se devuelve un error invalid en el resultado del trabajo y el trabajo falla. El valor predeterminado es 0.
        2. (Opcional) En Tipos de destino decimales, introduzca una lista separada por comas de los posibles tipos de datos SQL a los que se podrían convertir los valores decimales de origen. El tipo de datos SQL que se selecciona para la conversión depende de las siguientes condiciones:
          • El tipo de datos seleccionado para la conversión será el primer tipo de datos de la siguiente lista que admita la precisión y la escala de los datos de origen, en este orden: NUMERIC, BIGNUMERIC y STRING.
          • Si ninguno de los tipos de datos de la lista admite la precisión y la escala, se selecciona el tipo de datos que admita el intervalo más amplio de la lista especificada. Si un valor supera el intervalo admitido al leer los datos de origen, se produce un error.
          • El tipo de datos STRING admite todos los valores de precisión y escala.
          • Si este campo se deja vacío, el tipo de datos será NUMERIC,STRING de forma predeterminada en el caso de ORC y NUMERIC en el caso de los demás formatos de archivo.
          • Este campo no puede contener tipos de datos duplicados.
          • El orden de los tipos de datos que incluyas en este campo no importa.
      2. En JSON, CSV, marque la casilla Ignorar valores desconocidos si quiere que la transferencia de datos elimine los datos que no se ajusten al esquema de la tabla de destino.
      3. En AVRO, en Use avro logical types (Usar tipos lógicos de Avro), marca la casilla si quieres que la transferencia de datos convierta los tipos lógicos de Avro en los tipos de datos de BigQuery correspondientes. El comportamiento predeterminado es ignorar el atributo logicalType en la mayoría de los tipos y usar el tipo Avro subyacente.
      4. En CSV:

        1. En Delimitador de campos, introduce el carácter que separa los campos. El valor predeterminado es una coma.
        2. En Carácter de comillas, introduzca el carácter que se usa para delimitar secciones de datos en un archivo CSV. El valor predeterminado es una comilla doble (").
        3. En Filas de encabezado que se deben omitir, introduce el número de filas de encabezado de los archivos de origen si no quieres importarlas. El valor predeterminado es 0.
        4. En Permitir saltos de línea entrecomillados, marca la casilla si quieres permitir saltos de línea en los campos entrecomillados.
        5. En Permitir filas irregulares, marca la casilla si quieres permitir la transferencia de datos de filas a las que les faltan columnas NULLABLE.

        Consulta más información sobre las opciones solo para CSV.

  8. En el menú Cuenta de servicio, selecciona una cuenta de servicio de las cuentas de servicio asociadas a tu proyecto Google Cloud . Puedes asociar una cuenta de servicio a tu transferencia de datos en lugar de usar tus credenciales de usuario. Para obtener más información sobre cómo usar cuentas de servicio con transferencias de datos, consulta el artículo Usar cuentas de servicio.

    • Si has iniciado sesión con una identidad federada, se necesita una cuenta de servicio para crear una transferencia de datos. Si has iniciado sesión con una cuenta de Google, no es obligatorio tener una cuenta de servicio para la transferencia de datos.
    • La cuenta de servicio debe tener los permisos necesarios para BigQuery y Cloud Storage.
  9. Opcional: En la sección Opciones de notificación:

    1. Haz clic en el interruptor para habilitar las notificaciones por correo electrónico. Si habilitas esta opción, el propietario de la configuración de Data Transfer recibirá una notificación por correo cuando falle una ejecución de transferencia.
    2. En Selecciona un tema de Pub/Sub, elige el nombre del tema o haz clic en Crear un tema. Esta opción configura las notificaciones de Pub/Sub sobre la transferencia.
  10. Opcional: En la sección Opciones avanzadas, si usas CMEKs, selecciona Clave gestionada por el cliente. Aparecerá una lista de las CMEKs disponibles para que elijas la que quieras. Para obtener información sobre cómo funcionan las CMEKs con BigQuery Data Transfer Service, consulta Especificar una clave de cifrado en las transferencias.

  11. Haz clic en Guardar.

bq

Introduce el comando bq mk y proporciona la marca de creación de transferencia — --transfer_config. También se necesitan las siguientes marcas:

  • --data_source
  • --display_name
  • --target_dataset
  • --params

Marcas posibles

  • --destination_kms_key: especifica el ID de recurso de la clave de la clave de Cloud KMS si usas una clave de encriptado gestionada por el cliente (CMEK) para esta transferencia de datos. Para obtener información sobre cómo funcionan las CMEKs con BigQuery Data Transfer Service, consulta Especificar una clave de cifrado en las transferencias.
  • --service_account_name: especifica una cuenta de servicio que se usará para la autenticación de la transferencia de Cloud Storage en lugar de tu cuenta de usuario.
bq mk \
--transfer_config \
--project_id=PROJECT_ID \
--data_source=DATA_SOURCE \
--display_name=NAME \
--target_dataset=DATASET \
--destination_kms_key="DESTINATION_KEY" \
--params='PARAMETERS' \
--service_account_name=SERVICE_ACCOUNT_NAME

Donde:

  • PROJECT_ID es el ID del proyecto. Si no se proporciona --project_id para especificar un proyecto concreto, se usará el proyecto predeterminado.
  • DATA_SOURCE es la fuente de datos, por ejemplo, google_cloud_storage.
  • NAME es el nombre visible de la configuración de transferencia de datos. El nombre de la transferencia puede ser cualquier valor que te permita identificarla si necesitas modificarla más adelante.
  • DATASET es el conjunto de datos de destino de la configuración de transferencia.
  • DESTINATION_KEY: el ID de recurso de clave de Cloud KMS. Por ejemplo, projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name.
  • PARAMETERS contiene los parámetros de la configuración de transferencia creada en formato JSON. Por ejemplo: --params='{"param":"param_value"}'.
    • destination_table_name_template: el nombre de la tabla de BigQuery de destino.
    • data_path_template: el URI de Cloud Storage que contiene los archivos que se van a transferir. Se admiten comodines y parámetros.
    • write_disposition: determina si los archivos coincidentes se añaden a la tabla de destino o se reflejan por completo. Los valores posibles son APPEND y MIRROR. Para obtener información sobre cómo añade o replica datos BigQuery Data Transfer Service en las transferencias de Cloud Storage, consulta el artículo Ingestión de datos en transferencias de Cloud Storage.
    • file_format: el formato de los archivos que quieras transferir. El formato puede ser CSV, JSON, AVRO, PARQUET o ORC. El valor predeterminado es CSV.
    • max_bad_records: para cualquier valor de file_format, el número máximo de registros incorrectos que se pueden ignorar. El valor predeterminado es 0.
    • decimal_target_types: para cualquier valor de file_format, una lista separada por comas de los posibles tipos de datos SQL a los que se podrían convertir los valores decimales de origen. Si no se proporciona este campo, el tipo de datos será "NUMERIC,STRING" de forma predeterminada para ORC y "NUMERIC" para los demás formatos de archivo.
    • ignore_unknown_values: para cualquier valor de file_format, asigna el valor TRUE para aceptar filas que contengan valores que no coincidan con el esquema. Para obtener más información, consulta los detalles del campo ignoreUnknownvalues en la JobConfigurationLoad tabla de referencia.
    • use_avro_logical_types: en el caso de los valores AVRO file_format, asigna el valor TRUE para interpretar los tipos lógicos en sus tipos correspondientes (por ejemplo, TIMESTAMP) en lugar de usar solo sus tipos sin formato (por ejemplo, INTEGER).
    • parquet_enum_as_string: para los valores de PARQUET file_format, asigna el valor TRUE para inferir el tipo lógico ENUM de PARQUET como STRING en lugar del valor predeterminado BYTES.
    • parquet_enable_list_inference: en el caso de los valores de PARQUET file_format, asigna el valor TRUE para usar la inferencia de esquema específicamente para el tipo lógico LIST de PARQUET.
    • reference_file_schema_uri: una ruta de URI a un archivo de referencia con el esquema del lector.
    • field_delimiter: para los valores de CSV file_format, un carácter que separa los campos. El valor predeterminado es una coma.
    • quote: para CSV file_format valores, un carácter que se usa para encerrar entre comillas secciones de datos en un archivo CSV. El valor predeterminado es una comilla doble (").
    • skip_leading_rows: en el caso de los valores CSV file_format, indica el número de filas de encabezado iniciales que no quieras importar. El valor predeterminado es 0.
    • allow_quoted_newlines: para los valores CSV file_format, se define como TRUE para permitir saltos de línea en los campos entre comillas.
    • allow_jagged_rows : en el caso de los valores de CSV file_format, asigna el valor TRUE para aceptar las filas que no tengan columnas opcionales finales. Los valores que faltan se rellenan con NULL.
    • preserve_ascii_control_characters: para los valores de CSV file_format, asigna el valor TRUE para conservar los caracteres de control ASCII insertados.
    • encoding: especifica el CSV tipo de codificación. Los valores admitidos son UTF8, ISO_8859_1, UTF16BE, UTF16LE, UTF32BE y UTF32LE.
    • delete_source_files: asigna el valor TRUE para eliminar los archivos de origen después de cada transferencia correcta. Los trabajos de eliminación no se vuelven a ejecutar si el primer intento de eliminar el archivo de origen falla. El valor predeterminado es FALSE.
  • SERVICE_ACCOUNT_NAME es el nombre de la cuenta de servicio que se usa para autenticar tu transferencia. La cuenta de servicio debe ser propiedad del mismo project_id que se usó para crear la transferencia y debe tener todos los permisos necesarios.

Por ejemplo, el siguiente comando crea una transferencia de datos de Cloud Storage llamada My Transfer con un valor de data_path_template de gs://mybucket/myfile/*.csv, el conjunto de datos de destino mydataset y file_format CSV. En este ejemplo se incluyen valores no predeterminados para los parámetros opcionales asociados al CSV file_format.

La transferencia de datos se crea en el proyecto predeterminado:

bq mk --transfer_config \
--target_dataset=mydataset \
--project_id=myProject \
--display_name='My Transfer' \
--destination_kms_key=projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey \
--params='{"data_path_template":"gs://mybucket/myfile/*.csv",
"destination_table_name_template":"MyTable",
"file_format":"CSV",
"max_bad_records":"1",
"ignore_unknown_values":"true",
"field_delimiter":"|",
"quote":";",
"skip_leading_rows":"1",
"allow_quoted_newlines":"true",
"allow_jagged_rows":"false",
"delete_source_files":"true"}' \
--data_source=google_cloud_storage \
--service_account_name=abcdef-test-sa@abcdef-test.iam.gserviceaccount.com projects/862514376110/locations/us/transferConfigs/ 5dd12f26-0000-262f-bc38-089e0820fe38

Después de ejecutar el comando, recibirás un mensaje como el siguiente:

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

Sigue las instrucciones y pega el código de autenticación en la línea de comandos.

API

Usa el método projects.locations.transferConfigs.create y proporciona una instancia del recurso 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.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

// Sample to create google cloud storage transfer config
public class CreateCloudStorageTransfer {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    String datasetId = "MY_DATASET_ID";
    String tableId = "MY_TABLE_ID";
    // GCS Uri
    String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv";
    String fileFormat = "CSV";
    String fieldDelimiter = ",";
    String skipLeadingRows = "1";
    Map<String, Value> params = new HashMap<>();
    params.put(
        "destination_table_name_template", Value.newBuilder().setStringValue(tableId).build());
    params.put("data_path_template", Value.newBuilder().setStringValue(sourceUri).build());
    params.put("write_disposition", Value.newBuilder().setStringValue("APPEND").build());
    params.put("file_format", Value.newBuilder().setStringValue(fileFormat).build());
    params.put("field_delimiter", Value.newBuilder().setStringValue(fieldDelimiter).build());
    params.put("skip_leading_rows", Value.newBuilder().setStringValue(skipLeadingRows).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Google Cloud Storage Config Name")
            .setDataSourceId("google_cloud_storage")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .setSchedule("every 24 hours")
            .build();
    createCloudStorageTransfer(projectId, transferConfig);
  }

  public static void createCloudStorageTransfer(String projectId, TransferConfig transferConfig)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      CreateTransferConfigRequest request =
          CreateTransferConfigRequest.newBuilder()
              .setParent(parent.toString())
              .setTransferConfig(transferConfig)
              .build();
      TransferConfig config = client.createTransferConfig(request);
      System.out.println("Cloud storage transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Cloud storage transfer was not created." + ex.toString());
    }
  }
}

Especificar la clave de cifrado en las transferencias

Puedes especificar claves de cifrado gestionadas por el cliente (CMEKs) para cifrar los datos de una ejecución de transferencia. Puedes usar una CMEK para admitir transferencias desde Cloud Storage.

Cuando especifica una CMEK con una transferencia, BigQuery Data Transfer Service aplica la CMEK a cualquier caché intermedio en disco de los datos ingeridos para que todo el flujo de trabajo de transferencia de datos cumpla los requisitos de la CMEK.

No puedes actualizar una transferencia para añadir una CMEK si no se creó originalmente con una CMEK. Por ejemplo, no puedes cambiar una tabla de destino que originalmente estaba cifrada de forma predeterminada para que ahora se cifre con CMEK. Del mismo modo, tampoco puedes cambiar el tipo de cifrado de una tabla de destino cifrada con CMEK.

Puedes actualizar una CMEK de una transferencia si la configuración de la transferencia se creó originalmente con un cifrado CMEK. Cuando actualizas una CMEK de una configuración de transferencia, BigQuery Data Transfer Service propaga la CMEK a las tablas de destino en la siguiente ejecución de la transferencia, donde BigQuery Data Transfer Service sustituye las CMEKs obsoletas por la nueva CMEK durante la ejecución de la transferencia. Para obtener más información, consulta Actualizar una transferencia.

También puedes usar las claves predeterminadas del proyecto. Cuando especifica una clave predeterminada de proyecto con una transferencia, BigQuery Data Transfer Service usa la clave predeterminada de proyecto como clave predeterminada para cualquier configuración de transferencia nueva.

Activar una transferencia manualmente

Además de las transferencias de datos programadas automáticamente desde Cloud Storage, puede activar manualmente una transferencia para cargar archivos de datos adicionales.

Si la configuración de la transferencia tiene parámetros de tiempo de ejecución, deberá especificar un intervalo de fechas para las que se iniciarán transferencias adicionales.

Para activar una transferencia de datos, sigue estos pasos:

Consola

  1. Ve a la página de BigQuery en la Google Cloud consola.

    Ir a la página de BigQuery

  2. Haz clic en Transferencias de datos.

  3. Selecciona la transferencia de datos en la lista.

  4. Haga clic en Ejecutar transferencia ahora o en Programar relleno (para configuraciones de transferencia parametrizadas en tiempo de ejecución).

    • 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

  5. Haz clic en Aceptar.

bq

Introduce el comando bq mk y proporciona la marca --transfer_run. Puedes usar la --run_time bandera o las banderas --start_time y --end_time.

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

Donde:

  • START_TIME y END_TIME son marcas de tiempo que terminan en Z o contienen un desfase de zona horaria válido. Por ejemplo:

    • 2017-08-19T12:11:35.00Z
    • 2017-05-25T00:00:00+00:00
  • RUN_TIME es una marca de tiempo que especifica la hora a la que se debe programar la ejecución de la transferencia de datos. Si quieres realizar una transferencia única en el momento actual, puedes usar la marca --run_time.

  • RESOURCE_NAME es el nombre del recurso de la transferencia (también denominado "configuración de transferencia"), por ejemplo, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. Si no sabes el nombre del recurso de la transferencia, ejecuta el comando bq ls --transfer_config --transfer_location=LOCATION para encontrarlo.

API

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

Siguientes pasos