BigQuery CLI: команды загрузки остаются в ожидании - PullRequest
0 голосов
/ 26 марта 2020

У меня есть CSV-файл на моем компьютере. Я хотел бы загрузить этот файл CSV в таблицу BigQuery. Я использую следующую команду из терминала:

bq load --apilog=./logs --field_delimiter=$(printf ';') --skip_leading_rows=1 --autodetect dataset1.table1 mycsvfile.csv myschema.json

Команда в моем терминале не дает никакого вывода. В интерфейсе GCP я не вижу созданной работы, что заставляет меня думать, что запрос даже не достигает GCP. В файле журналов (из параметра --apilog) я получаю информацию о выполняемом запросе, и он заканчивается так:

INFO:googleapiclient.discovery:URL being requested: POST https://bigquery.googleapis.com/upload/bigquery/v2/projects/myproject/jobs?uploadType=resumable&alt=json

и все. Независимо от того, как долго я жду, ничего не происходит.

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Вы смешиваете --autodetect с myschema. json, что-то наподобие следующей громкой работы:

bq load --apilog=logs \
--source_format=CSV \
--field_delimiter=';' \
--skip_leading_rows=1 \
--autodetect \
dataset.table \
mycsvfile.csv

Если у вас продолжаются проблемы, пожалуйста, опубликуйте содержимое apilog, строку, которой вы поделились не похоже на ошибку. Должно быть более одной строки и обычно содержит ошибку в структуре json, например:

"reason": "invalid",
      "message": "Provided Schema does not match Table project:dataset.table. Field users is missing in new schema"
0 голосов
/ 27 марта 2020

Я не уверен, почему вы используете

- apilog =. / Logs

Я не нашел этого в bq load документация , пожалуйста, уточните.

Исходя из этого, возможно, проблема может быть в bq load команде, вы можете попробовать что-то вроде:

bq load \
--autodetect  \
--source_format=CSV \
--skip_leading_rows= 1  \
--field_delimiter=';'
dataset1.table1 \
gs://mybucket/mycsvfile.csv \
./myschema.json

Если произойдет сбой, проверьте список заданий , чтобы получить созданное задание, затем используйте bq show , чтобы просмотреть информацию об этом задании, там вы должны найти ошибку сообщение, которое может помочь вам определить причину проблемы.

...