/ / como posso fazer upload de um arquivo json gzipado para bigquery via API HTTP? - google-bigquery

Como posso fazer upload de um arquivo json gzipado para bigquery via API HTTP? - google-bigquery

Quando tento fazer o upload de um arquivo json não compactado,Funciona bem; mas quando eu tento uma versão gzipada do mesmo arquivo json, a tarefa falharia com o erro léxico resultante da falha em analisar o conteúdo do json.

Eu gzipou o arquivo json com o comando gzip do Mac OSX 10.8 e configurei o sourceFormat para: "NEWLINE_DELIMITED_JSON".

Eu fiz algo incorretamente ou arquivo json gzipped deve ser processado de forma diferente?

Respostas:

2 para resposta № 1

Eu acredito que usando o multipart / relacionadossolicitar não é possível enviar dados binários (como o arquivo compactado. No entanto, se você não quiser usar dados descompactados, poderá usar o upload recuperável.

Em que idioma você está codificando? O python jobs.insert () api leva um parâmetro de upload de mídia, que você deveser capaz de fornecer um nome de arquivo para fazer o upload recuperável (que envia os metadados do trabalho e os novos dados da tabela como fluxos separados). Consegui usar isso para carregar um arquivo compactado.

Isto é o que o bq.py usa, então você pode olhar o código fonte Aqui.

Se você não estiver usando python, as bibliotecas cliente do googleapis para outros idiomas deverão ter uma funcionalidade semelhante.


0 para resposta № 2

Você pode fazer o upload de arquivos compactados para o Google Cloud Storage, e o BigQuery poderá ingeri-los com um trabalho de carga:

https://developers.google.com/bigquery/loading-data-into-bigquery#loaddatagcs