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 № 1Eu 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