Ошибка при запуске задания загрузки BigQuery с автоопределением, параметрами ALLOW_FIELD_ADDITION и ignore_unknown_values - PullRequest
0 голосов
/ 08 февраля 2019

Мы используем задания загрузки BigQuery с автоопределением , ALLOW_FIELD_ADDITION и ignore_unknown_values ​​ уже более года, но недавно мы получили следующую ошибкув журналах StackDriver:

jobStatus: {
  additionalErrors: [
   0: {
    code:  13         
    message:  "An internal error occurred and the request could not be completed. Error: 9843239"         
   }
  ]
  error: {
   code:  13        
   message:  "An internal error occurred and the request could not be completed. Error: 9843239"        
  }
  state:  "DONE"       
 }

Я провел исследование и обнаружил, что эта ошибка возникает, когда полезная нагрузка JSON содержит одно или несколько новых полей, которые теоретически должны быть добавлены в таблицу BigQuery перед загрузкой полезной нагрузки JSON..

Пример:

Я загружаю два файла JSON.Первый создаст таблицу и загрузит данные:

$ cat ./example1.json 
{ "id": 123, "name": "John Doe" }

$ bq load --autodetect --schema_update_option=ALLOW_FIELD_ADDITION --ignore_unknown_values --source_format=NEWLINE_DELIMITED_JSON test_dataset.test_table ./example1.json
Upload complete.
Waiting on bqjob_r511e2ad924d17629_00000168cdc46bab_1 ... (0s) Current status: DONE

Созданная таблица:

enter image description here enter image description here

Второй файл JSON с новым полем:

$ cat ./example2.json
{ "id": 234, "name": "John Doe Jr", "age": 19 }

$ bq load --autodetect --schema_update_option=ALLOW_FIELD_ADDITION --ignore_unknown_values --source_format=NEWLINE_DELIMITED_JSON test_dataset.test_table ./example2.json
Upload complete.
Waiting on bqjob_r263276fb02033623_00000168cdc5b0ca_1 ... (0s) Current status: DONE   
BigQuery error in load operation: Error processing job 'xxx:bqjob_r263276fb02033623_00000168cdc5b0ca_1': An internal error occurred and the request could not be completed. Error: 9843239

Если я не использую --ignore_unknown_values, он успешно загружается и новое поле добавляется в таблицу.

Документация:

configuration.load.ignoreUnknownValues ​​логический [Необязательно]

Указывает, должен ли BigQuery разрешать дополнительные значения, которые не представлены в схеме таблицы.Если true, дополнительные значения игнорируются.Если значение равно false, записи с дополнительными столбцами считаются ошибочными, а если слишком много плохих записей, в результате задания возвращается неверная ошибка.Значение по умолчанию неверно.Свойство sourceFormat определяет, что BigQuery рассматривает как дополнительное значение: CSV: конечные столбцы JSON: именованные значения, которые не соответствуют ни одному из имен столбцов

Похоже, что поведение --ignore_unknown_values было изменено и, когда оноэто false, полезные данные JSON с дополнительными полями, это больше не плохая запись.

Может кто-нибудь подтвердить это?

РЕДАКТИРОВАТЬ: Это было исправлено в тот же день, когда я написал (после 19: 30 по Гринвичу)Эта ошибка происходила с 29 января.Пожалуйста, не обращайте внимания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...