Pular para o conteúdo principal
Fornece uma interface semelhante a uma tabela para SELECT e INSERT de dados do Google Cloud Storage. Requer o papel do IAM Storage Object User. Este é um alias da função de tabela s3. Se você tiver várias réplicas no cluster, poderá usar a função s3Cluster (que funciona com GCS) para paralelizar inserções.

Sintaxe

GCSA função de tabela GCS se integra ao Google Cloud Storage usando a API XML do GCS e chaves HMAC. Consulte a documentação de interoperabilidade do Google para mais detalhes sobre o endpoint e o HMAC.

Argumentos

GCSO caminho do GCS tem este formato, pois o endpoint da Google XML API é diferente do da JSON API:
e não https://storage.cloud.google.com.
Os argumentos também podem ser passados usando coleções nomeadas. Nesse caso, url, format, structure, compression_method funcionam da mesma forma, e alguns parâmetros extras são aceitos:

Valor retornado

Uma tabela com a estrutura especificada para ler ou gravar dados no arquivo especificado.

Exemplos

Selecionando as duas primeiras linhas da tabela a partir do arquivo do GCS https://storage.googleapis.com/my-test-bucket-768/data.csv:
Semelhante, mas de um arquivo com método de compressão gzip:

Uso

Suponha que temos vários arquivos com as seguintes URIs no GCS: Conte o número de linhas nos arquivos que terminam com os números de 1 a 3:
Conte o total de linhas em todos os arquivos nestes dois diretórios:
Se a lista de arquivos contiver intervalos numéricos com zeros à esquerda, use a construção com chaves para cada dígito separadamente ou use ?.
Conte o número total de linhas em arquivos chamados file-000.csv, file-001.csv, … , file-999.csv:
Insira dados no arquivo test-data.csv.gz:
Insira dados no arquivo test-data.csv.gz a partir de uma tabela existente:
O glob ** pode ser usado para percorrer diretórios de forma recursiva. Considere o exemplo abaixo: ele buscará todos os arquivos do diretório my-test-bucket-768 recursivamente:
O trecho abaixo obtém dados de todos os arquivos test-data.csv.gz de qualquer pasta dentro do diretório my-test-bucket, de forma recursiva:
Para casos de uso em produção, recomenda-se usar coleções nomeadas. Veja o exemplo:

Gravação particionada

Se você especificar a expressão PARTITION BY ao inserir dados na tabela GCS, será criado um arquivo separado para cada valor de partição. Dividir os dados em arquivos separados ajuda a aumentar a eficiência das operações de leitura. Exemplos
  1. Usar o ID da partição em uma chave cria arquivos separados:
Como resultado, os dados são gravados em três arquivos: file_x.csv, file_y.csv e file_z.csv.
  1. Usar o ID da partição no nome do bucket cria arquivos em buckets diferentes:
Como resultado, os dados são gravados em três arquivos, em buckets diferentes: my_bucket_1/file.csv, my_bucket_10/file.csv e my_bucket_20/file.csv.
Última modificação em 1 de julho de 2026