Usa parámetros de entorno de ejecución en transferencias

Cuando configuras una transferencia de Cloud Storage o Amazon S3, el URI y la tabla de destino se pueden parametrizar, lo que te permite cargar datos de depósitos organizados por fecha. Estos parámetros se denominan parámetros de entorno de ejecución para distinguirlos de los parámetros de consulta.

Cuando usas parámetros de entorno de ejecución en una transferencia, puedes hacer lo siguiente:

  • Especificar cómo deseas particionar la tabla de destino
  • Recuperar archivos que coincidan con una fecha específica

Parámetros de entorno de ejecución disponibles

Cuando configures la transferencia de Cloud Storage o Amazon S3, puedes usar parámetros de entorno de ejecución para especificar cómo deseas particionar la tabla de destino.

Parámetro Tipo de plantilla Valor
run_time Marca de tiempo con formato En hora UTC, según el programa. Para las transferencias programadas con regularidad, run_time representa el tiempo de ejecución previsto. Por ejemplo, si la transferencia se establece en “cada 24 horas”, la diferencia run_time entre dos consultas consecutivas será con exactitud de 24 horas, aunque el tiempo de ejecución real puede variar un poco.

Consulta TransferRun.runTime
run_date String de fecha La fecha del parámetro run_time en el siguiente formato: %Y%m%d; por ejemplo, “20180101”. Este formato es compatible con tablas particionadas por tiempo de transferencia.

Sistema de plantillas

Las transferencias de Cloud Storage y Amazon S3 admiten parámetros de entorno de ejecución en el nombre de la tabla de destino mediante el uso de una sintaxis de plantillas.

Sintaxis de plantillas de parámetros

La sintaxis de plantillas admite plantillas de string y compensación horaria simples. Los parámetros se referencian en los siguientes formatos:

  • {run_date}
  • {run_time[+\-offset]|"time_format"}
Parámetro Propósito
run_date A este parámetro lo reemplaza la fecha en formato YYYYMMDD.
run_time Este parámetro admite las siguientes propiedades:


offset
Compensación horaria expresada en horas (h), minutos (m) y segundos (s), en ese orden.
Los días (d) no son compatibles.
Se permiten decimales, por ejemplo, 1.5h.

time_format
Una string de formato. Los parámetros de formato más comunes son los años (%Y), los meses (%m), y los días (%d).
En las tablas particionadas, YYYYMMDD es el sufijo obligatorio, equivalente a “%Y%m%d”.

Obtén más información sobre el formato de elementos de fecha y hora.

Notas de uso:
  • No se permiten espacios en blanco entre run_time, la compensación horaria y el formato de hora.
  • Para incluir llaves literales en la string, puedes marcarlas como ‘\{‘ and ‘\}’.
  • Para incluir comillas textuales o una barra vertical en time_format, como “YYYY|MM|DD”, puedes escaparlas en la string de formato como ‘\”’ o ‘\|’.

Ejemplos de plantillas de parámetros

Estos ejemplos demuestran la especificación de nombres de tablas de destino con diferentes formatos de hora y compensación del tiempo de ejecución.
run_time (UTC) Parámetro con plantilla Nombre de la tabla de destino de salida
2018-02-15 00:00:00 mytable mytable
2018-02-15 00:00:00 mytable_{run_time|"%Y%m%d"} mytable_20180215
2018-02-15 00:00:00 mytable_{run_time+25h|"%Y%m%d"} mytable_20180216
2018-02-15 00:00:00 mytable_{run_time-1h|"%Y%m%d"} mytable_20180214
2018-02-15 00:00:00 mytable_{run_time+1.5h|"%Y%m%d;%H"}
o
mytable_{run_time+90m|"%Y%m%d;%H"}
mytable_2018021501
2018-02-15 00:00:00 {run_time+97s|"%Y%m%d"}_mytable_{run_time|"%H%M%s"} 20180215_mytable_000137

Opciones de partición

Las transferencias de Cloud Storage y Amazon S3 se pueden escribir en tablas de destino particionadas o no particionadas. Hay dos tipos de partición de tablas en BigQuery:

  • Tablas particionadas por tiempo de transferencia: Tablas que se particionan según el momento de la transferencia. En el caso de las transferencias de Cloud Storage y Amazon S3, el tiempo de transferencia es el tiempo que dura la ejecución de la transferencia.
  • Tablas particionadas: Tablas que se particionan según una columna. El tipo de columna debe ser una columna TIMESTAMP o DATE.

Si la tabla de destino está particionada en una columna, se identifica la columna de partición cuando se crea la tabla de destino y se especifica su esquema. Obtén más información sobre la creación de tablas particionadas por columnas en Crea y usa tablas particionadas por fecha o marca de tiempo.

Ejemplos de partición

Notas sobre el uso de parámetros

  • Si divides tus datos en particiones en función de tu zona horaria local, deberás calcular de forma manual la compensación horaria con respecto al UTC mediante el mecanismo de compensación en la sintaxis de plantillas.
  • No se pueden especificar los minutos en los parámetros.
  • Se permite el uso de comodines para el URI de Cloud Storage en combinación con parámetros en el nombre de la tabla de destino. Si quieres obtener más información sobre los comodines, consulta la página sobre la compatibilidad con comodines para los URI de Cloud Storage.

Ejemplos de parámetros de entorno de ejecución

En los siguientes ejemplos, se muestran formas de combinar el carácter comodín y los parámetros para casos prácticos comunes. Supón que el nombre de la tabla es mytable, y el run_time es 2018-02-15 00:00:00 (UTC) para todos los ejemplos.

Transfiere datos de Cloud Storage o Amazon S3 a una tabla sin partición

Este caso práctico se aplica a la carga de archivos nuevos de un depósito de Cloud Storage o Amazon S3 a una tabla sin partición. En este ejemplo, se usa un comodín en el URI, además de una transferencia de actualización ad hoc para captar archivos nuevos que tienen al menos una hora de antigüedad.

Fuente de datos URI de origen Nombre de la tabla de destino
Cloud Storage gs://bucket/*.csv mytable
Amazon S3 s3://bucket/*.csv mytable

Carga una instantánea de todos los datos en una tabla particionada por tiempo de transferencia

En este caso, todos los datos en el URI especificado se transfieren a una tabla particionada según la fecha actual. En una transferencia de actualización, esta configuración capta los archivos agregados desde la última carga y los incorpora a una partición particular.

Fuente de datos URI de origen Nombre de tabla de destino parametrizado Nombre de la tabla de destino evaluado
Cloud Storage gs://bucket/*.csv mytable${run_time|"%Y%m%d"} mytable$20180215
Amazon S3 s3://bucket/*.csv mytable${run_time|"%Y%m%d"} mytable$20180215

En este caso práctico, se transfieren los datos actuales a una tabla particionada según la fecha actual. Este ejemplo también se aplica a una transferencia de actualización que recupera los archivos agregados de manera reciente que coinciden con una fecha determinada y carga los datos en la partición correspondiente.

Fuente de datos URI con parámetros Nombre de tabla de destino parametrizado URI evaluado Nombre de la tabla de destino evaluado
Cloud Storage gs://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|"%Y%m%d"} gs://bucket/events-20180215/*.csv mytable$20180215
Amazon S3 s3://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|"%Y%m%d"} s3://bucket/events-20180215/*.csv mytable$20180215

Próximos pasos