Saltar al contenido principal
Proporciona una interfaz de tipo tabla para SELECT e INSERT de datos desde Google Cloud Storage. Requiere el IAM role Storage Object User. Este es un alias de la función de tabla s3. Si tiene varias réplicas en el cluster, puede usar en su lugar la función s3Cluster (que funciona con GCS) para paralelizar los inserts.

Sintaxis

GCSLa función de tabla de GCS se integra con Google Cloud Storage mediante la API XML de GCS y las claves HMAC. Consulta la documentación de interoperabilidad de Google para obtener más información sobre el endpoint y las claves HMAC.

Argumentos

GCSLa ruta de GCS tiene este formato, ya que el endpoint de la API XML de Google es distinto del de la API JSON:
y no https://storage.cloud.google.com.
Los argumentos también pueden pasarse mediante colecciones con nombre. En este caso, url, format, structure y compression_method funcionan de la misma manera, y se admiten algunos parámetros adicionales:

Valor devuelto

Una tabla con la estructura especificada para leer o escribir datos en el archivo indicado.

Ejemplos

Selección de las dos primeras filas de la tabla desde el archivo de GCS https://storage.googleapis.com/my-test-bucket-768/data.csv:
Algo similar, pero desde un archivo con compresión gzip:

Uso

Supongamos que tenemos varios archivos con las siguientes URI en GCS: Cuenta el número de filas de los archivos que terminan en números del 1 al 3:
Cuenta el número total de filas de todos los archivos de estos dos directorios:
Si la lista de archivos contiene rangos numéricos con ceros a la izquierda, usa la sintaxis con llaves para cada dígito por separado o ?.
Cuenta el número total de filas en archivos llamados file-000.csv, file-001.csv, … , file-999.csv:
Inserta datos en el archivo test-data.csv.gz:
Insertar datos en el archivo test-data.csv.gz desde una tabla existente:
El patrón glob ** se puede usar para recorrer directorios de forma recursiva. Considere el siguiente ejemplo: recuperará todos los archivos del directorio my-test-bucket-768 de forma recursiva:
Lo siguiente obtiene datos de todos los archivos test-data.csv.gz ubicados en cualquier carpeta dentro del directorio my-test-bucket, de forma recursiva:
Para entornos de producción, se recomienda usar colecciones con nombre. A continuación se muestra un ejemplo:

Escritura particionada

Si se especifica la expresión PARTITION BY al insertar datos en la tabla GCS, se crea un archivo independiente para cada valor de partición. Dividir los datos en archivos independientes ayuda a mejorar la eficiencia de las operaciones de lectura. Ejemplos
  1. Usar el ID de la partición en la clave crea archivos independientes:
Como resultado, los datos se escriben en tres archivos: file_x.csv, file_y.csv y file_z.csv.
  1. El uso del ID de la partición en el nombre de un bucket crea archivos en buckets diferentes:
Como resultado, los datos se escriben en tres archivos ubicados en distintos buckets: my_bucket_1/file.csv, my_bucket_10/file.csv y my_bucket_20/file.csv.
Última modificación el 25 de junio de 2026