Parámetros del entorno de ejecución en las transferencias de Amazon S3
Cuando configuras una transferencia de datos en Cloud Storage, Azure Blob Storage o Amazon Simple Storage Service (Amazon S3), puedes parametrizar el URI (o la ruta de datos) y la tabla de destino. La parametrización te permite cargar datos de buckets que están 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 configuras la transferencia de Cloud Storage, Blob Storage o Amazon S3, puedes especificar cómo deseas particionar la tabla de destino mediante los parámetros del entorno de ejecución.
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 tiene 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, Blob 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:
|
- 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+97s|"%H%M%S"} |
20180215_mytable_000137 |
Opciones de partición
Existen dos tipos de tablas particionadas en BigQuery:
- Tablas particionadas por tiempo de transferencia. En el caso de las transferencias de Cloud Storage, Blob Storage y Amazon S3, el tiempo de transferencia es el tiempo que dura la ejecución de la transferencia.
- Tablas que se particionan según una columna. El tipo de columna debe ser una columna
TIMESTAMP
oDATE
.
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
- Tabla sin partición
- Tabla de destino:
mytable
- Tabla de destino:
- Tabla particionada por tiempo de transferencia
- Tabla de destino:
mytable$YYYYMMDD
- Ten en cuenta que los minutos no se pueden especificar.
- Tabla de destino:
- Tabla particionada por columnas
- Tabla de destino:
mytable
- Especifica la columna de partición como una columna
TIMESTAMP
oDATE
cuando crees el esquema de la tabla.
- Tabla de destino:
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 o la ruta de acceso en combinación con parámetros en el nombre de la tabla de destino.
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 a una tabla sin partición
Este caso de uso se aplica a la carga de archivos nuevos de un bucket de Cloud Storage, Blob Storage o Amazon S3 a una tabla no particionada. En este ejemplo, se usa un comodín en el URI o la ruta de acceso de datos, y usa una transferencia de actualización ad hoc para captar archivos nuevos.
Fuente de datos | URI de origen o ruta de datos | Nombre de la tabla de destino |
---|---|---|
Cloud Storage | gs://bucket/*.csv |
mytable |
Amazon S3 | s3://bucket/*.csv |
mytable |
Almacenamiento de BLOB | *.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 o la ruta de datos especificados 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 o ruta de datos | 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 |
Almacenamiento de BLOB | *.csv |
mytable${run_time|"%Y%m%d"} |
mytable$20180215 |
En este caso de uso, 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 o ruta de datos parametrizados | Nombre de tabla de destino parametrizado | URI o ruta de acceso de datos evaluados | 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 |
Almacenamiento de BLOB | events-{run_time|"%Y%m%d"}/*.csv |
mytable${run_time|"%Y%m%d"} |
events-20180215/*.csv |
mytable$20180215 |
¿Qué sigue?
- Aprende a configurar una transferencia de Amazon S3.
- Obtén más información acerca del Servicio de transferencia de datos de BigQuery.