Descripción general de las transferencias de Amazon S3

El Servicio de transferencia de datos de BigQuery para Amazon S3 te permite programar y administrar automáticamente los trabajos de carga recurrentes de Amazon S3 en BigQuery.

Formatos de archivo compatibles

Por el momento, el Servicio de transferencia de datos de BigQuery es compatible con la carga de datos desde Amazon S3 en uno de los siguientes formatos:

  • Valores separados por comas (CSV)
  • JSON (delimitado por saltos de línea)
  • Avro
  • Parquet
  • ORC

Tipos de compresión compatibles

El Servicio de transferencia de datos de BigQuery para Amazon S3 es compatible con la carga de datos comprimidos. Los tipos de compresión compatibles con el Servicio de transferencia de datos de BigQuery son los mismos que los tipos de compresión compatibles con los trabajos de carga de BigQuery. Para obtener más información, consulta la página sobre cómo cargar datos comprimidos y sin comprimir.

Requisitos previos de Amazon S3

Para cargar datos desde una fuente de datos de Amazon S3, debes hacer lo siguiente:

  • Proporciona el URI de Amazon S3 para tus datos de origen.
  • Ten tu ID de clave de acceso.
  • Ten tu clave de acceso secreta.
  • Establece, como mínimo, la política AmazonS3ReadOnlyAccess administrada de AWS en tus datos de origen de Amazon S3.

URI de Amazon S3

Cuando proporciones el URI de Amazon S3, la ruta de acceso debe tener el siguiente formato: s3://bucket/folder1/folder2/... Solo se requiere el nombre del depósito de nivel superior. Los nombres de las carpetas son opcionales. Si especificas un URI que incluye solo el nombre del bucket, todos los archivos del bucket se transfieren y se cargan en BigQuery.

Parametrización del entorno de ejecución de la transferencia de Amazon S3

Tanto el URI de Amazon S3 como la tabla de destino se pueden parametrizar, lo que te permite cargar datos de depósitos de Amazon S3 organizados por fecha. Ten en cuenta que la parte del bucket del URI no se puede parametrizar. Las transferencias de Amazon S3 usan los mismos parámetros que las transferencias de Cloud Storage.

Para obtener más información, consulta la página sobre cómo usar los parámetros de entorno de ejecución en las transferencias.

Compatibilidad con comodines para los URI de Amazon S3

Si los datos de origen están separados en varios archivos que comparten un nombre base, puedes usar un comodín en el URI cuando cargues los datos. Un comodín se compone de un asterisco (*) y se puede usar en cualquier parte del URI de Amazon S3, excepto en el nombre del bucket.

Si bien se puede usar más de un comodín en el URI de Amazon S3, es posible realizar alguna optimización cuando el URI de Amazon S3 especifica un solo comodín:

  • Existe un límite más alto en la cantidad máxima de archivos por ejecución de transferencia.

  • El comodín abarcará los límites del directorio. Por ejemplo, el URI s3://my-bucket/*.csv de Amazon S3 coincidirá con el archivo s3://my-bucket/my-folder/my-subfolder/my-file.csv.

Ejemplos de URI de Amazon S3

Ejemplo 1

Para cargar un solo archivo de Amazon S3 a BigQuery, especifica el URI de Amazon S3 del archivo.

s3://my-bucket/my-folder/my-file.csv

Ejemplo 2

Para cargar todos los archivos de un bucket de Amazon S3 en BigQuery, especifica solo el nombre del bucket, con o sin un comodín.

s3://my-bucket/

o

s3://my-bucket/*

Ten en cuenta que s3://my-bucket* no es un URI de Amazon S3 permitido, ya que no se puede usar un comodín en el nombre del depósito.

Ejemplo 3

Para cargar todos los archivos de Amazon S3 que tienen un prefijo en común, especifica el prefijo en común seguido de un comodín.

s3://my-bucket/my-folder/*

Ten en cuenta que, a diferencia de cargar todos los archivos de un bucket Amazon S3 de nivel superior, el comodín debe especificarse al final del URI de Amazon S3 para que se carguen los archivos.

Ejemplo 4

Para cargar todos los archivos de Amazon S3 con una ruta de acceso similar, especifica el prefijo en común seguido de un comodín.

s3://my-bucket/my-folder/*.csv

Ejemplo 5

Ten en cuenta que los comodines abarcan directorios, por lo que los archivos csv en my-folder, así como en las subcarpetas de my-folder, se cargarán en BigQuery.

Si tienes estos archivos fuente en una carpeta logs:

s3://my-bucket/logs/logs.csv
s3://my-bucket/logs/system/logs.csv
s3://my-bucket/logs/some-application/system_logs.log
s3://my-bucket/logs/logs_2019_12_12.csv

el siguiente comando lo identifica:

s3://my-bucket/logs/*

Ejemplo 6

Si tienes estos archivos fuente, pero deseas transferir solo aquellos que tengan logs.csv como nombre de archivo, haz lo siguiente:

s3://my-bucket/logs.csv
s3://my-bucket/metadata.csv
s3://my-bucket/system/logs.csv
s3://my-bucket/system/users.csv
s3://my-bucket/some-application/logs.csv
s3://my-bucket/some-application/output.csv

el siguiente comando identifica a los archivos con logs.csv en el nombre:

s3://my-bucket/*logs.csv

Ejemplo 7

Si se usan varios comodines, se puede lograr un mayor control sobre los archivos que se transfieren, al costo de límites inferiores. Usar varios comodines significa que cada comodín solo coincidirá por completo con una ruta de acceso dentro de un subdirectorio. Por ejemplo, para los siguientes archivos fuente en Amazon S3:

s3://my-bucket/my-folder1/my-file1.csv
s3://my-bucket/my-other-folder2/my-file2.csv
s3://my-bucket/my-folder1/my-subfolder/my-file3.csv
s3://my-bucket/my-other-folder2/my-subfolder/my-file4.csv

Si la intención es solo transferir my-file1.csv y my-file2.csv, usa lo siguiente como el valor del URI de Amazon S3:

s3://my-bucket/*/*.csv

Como ninguno de los comodines abarca directorios, mediante este URI se limitaría la transferencia solo a los archivos CSV que están en my-folder1 y my-other-folder2. Las subcarpetas no se incluirán en la transferencia.

Claves de acceso de AWS

El ID de clave de acceso y la clave de acceso secreto se usan para acceder a los datos de Amazon S3 en tu nombre. Como práctica recomendada, crea un ID de clave de acceso única y una clave de acceso secreta específicas para las transferencias de Amazon S3 a fin de brindar acceso mínimo al Servicio de transferencia de datos de BigQuery. Para obtener información sobre cómo administrar las claves de acceso, consulta la documentación de referencia general de AWS.

Consideraciones de coherencia

Cuando transfieres datos de Amazon S3, es posible que algunos de tus datos no se transfieran a BigQuery, en especial si los archivos se agregaron al bucket hace poco tiempo. El archivo debe tardar aproximadamente 10 minutos en estar disponible para el Servicio de transferencia de datos de BigQuery después de agregarlo al bucket.

Sin embargo, en algunos casos puede demorar más de 10 minutos. A fin de reducir la posibilidad de que falten datos, programa tus transferencias de Amazon S3 para que se realicen al menos 10 minutos después de que los archivos se agreguen al bucket. Para obtener más información sobre el modelo de coherencia de Amazon S3, consulta el Modelo de consistencia de datos de Amazon S3 en la documentación de Amazon S3.

Práctica recomendada sobre el costo de salida

Las transferencias de Amazon S3 podrían fallar si la tabla de destino no se configuró de forma correcta. Algunos de los motivos que pueden dar lugar a una configuración incorrecta son los siguientes:

  • La tabla de destino no existe.
  • El esquema de la tabla no está definido.
  • El esquema de la tabla no es compatible con los datos que se transfieren.

Para evitar los costos de salida de Amazon S3, primero debes probar una transferencia con un subconjunto pequeño pero representativo de los archivos. Pequeño significa que la prueba debe tener un tamaño de datos pequeño y cantidad de archivos pequeños.

Precios

Para obtener información sobre los precios del Servicio de transferencia de datos de BigQuery, consulta la página Precios.

Ten en cuenta que se pueden incurrir costos fuera de Google por el uso de este servicio. Consulta la página de precios de Amazon S3 para obtener más información.

Cuotas y límites

El Servicio de transferencia de datos de BigQuery usa trabajos de carga para cargar datos de Amazon S3 en BigQuery. Todas las cuotas y límites de BigQuery en los trabajos de carga se aplican a las transferencias recurrentes de Amazon S3, con las siguientes consideraciones adicionales.

Valor Límite
Tamaño máximo por carga de ejecución de transferencia de trabajo 15 TB
Cantidad máxima de archivos por ejecución de transferencia cuando el URI de Amazon S3 incluye 0 o 1 comodines 10,000,000 de archivos
Cantidad máxima de archivos por ejecución de transferencia cuando el URI de Amazon S3 incluye más de 1 comodín 10,000 archivos

¿Qué sigue?