Como carregar dados no BigQuery via Cloud Functions e Google Cloud Storage - Exceder o limite de cota de tráfego de soquete

1

Eu tenho um Google Cloud Function (GCF) que assiste o Google Cloud Storage (GCS). Quando um arquivo cai em um determinado intervalo, o GCF dispara um LoadJob informando Big Query (BQ) para importar o arquivo.

Estou usando a função LoadJob do NodeJS que (de o que eu entendo) é suposto apenas instruir BQ para importar o arquivo diretamente. Em outras palavras, o BQ deve falar com o GCS, em vez de o meu GCF ser um intermediário e transmitir os dados de alguma forma.

No entanto, quando minha função é executada em vários arquivos de uma só vez, recebo o seguinte erro de cota do GCF: Outgoing socket traffic for region us-central1 : per 100 seconds

O valor da cota padrão é 10737418240 , o que suponho ser em bytes, fazendo com que a cota ~ 10 GB a cada 100 segundos.

Por que meu GCF deveria estar fazendo algum tráfego de soquete de saída? A única coisa que estou fazendo é configurar um trabalho BQ para importar. Tudo isso deve ser interno e, além disso, tudo deve estar diretamente entre o BQ e o GCS, não usando minhas cotas / largura de banda do GCF. Os arquivos são bem grandes, mas não é exatamente esse o ponto de carregar no BQ diretamente do GCS?

Nota: Ao ler meu código um pouco mais perto, também estou fazendo uma consulta para mover dados de uma tabela BQ para outra. No entanto, semelhante ao trabalho de carregamento, este é um QueryJob que especifica uma tabela de destino para colocar os resultados nela. Portanto, nenhum desses dados deve ser transmitido através do meu GCF e, em vez disso, toda a transferência de dados deve estar ocorrendo no BQ.

    
por Micah 23.08.2018 / 17:40

1 resposta

1

A transferência de dados, na verdade, vem da descompactação de um arquivo para o GCS. Eu recebo um grande .tar.gz contendo vários arquivos, então eu descompacte (como um fluxo) para o GCS. É de onde vem toda a transferência de dados.

É um pouco estranho para mim que isso seja considerado tráfego de soquete de saída, já que é interno ao datacenter do Google.

    
por 23.08.2018 / 20:25