Схема Dynami c BigQuery с использованием автоопределения: Схема ошибок не имеет полей - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь связываться с функцией автоопределения в Bigquery, и в настоящее время у меня возникают проблемы с обновлением схемы на моей таблице.

Что в настоящее время я сделал.

  1. Я вручную создал набор данных и имя таблицы в Bigquery.
  2. Выполните мою первую команду загрузки bq (отлично работает):
bq --location=${LOCATION} load --autodetect --source_format=${FORMAT} ${DATASET}.${TABLE} ${PATH_TO_SOURCE}.
Я пытаюсь добавить новый JSON объект, введенный с новым полем, для обновления текущей схемы. Выполнить 2-ю команду загрузки bq:
bq --location=${LOCATION} load --autodetect --schema_update_option=ALLOW_FIELD_ADDITION --source_format=${FORMAT} ${DATASET}.${TABLE} ${PATH_TO_SOURCE}
Выдает ошибку:

Ошибка в строке запроса. Ошибка обработки задания. Схема не имеет полей.

Я думал, что когда установлен флаг --autodetect, команда bq load не будет запрашивать схему в вашем задании загрузки. Кто-нибудь уже сталкивался с этой проблемой?

Первый объект:

  {
    "chatSessionId": "123",
    "chatRequestId": "1234",
    "senderType": "CUSTOMER",
    "senderFriendlyName": "Player"
  }

Второй объект:

{
    "chatSessionId": "456",
    "chatRequestId": "5678",
    "senderType": "CUSTOMER",
    "senderFriendlyName": "Player",
    "languageCode": "EN"
  }

1 Ответ

0 голосов
/ 19 февраля 2020

Я воспроизвел ваши шаги, но я не смог воспроизвести ту же ошибку, что вы видите на изображениях ниже:


Загрузка сначала JSON Loading first JSON



Данные первой таблицы First table loaded



Загрузка второй JSON Loading second JSON



Данные второй таблицы Second table loaded

Единственное, что я изменил в ваших данных, был формат: вы предоставили JSON, а я перевернул его в NEWLINE DELIMITED JSON (тип JSON, который BigQuery ожидает). Вы можете найти больше информации об этом здесь . Пожалуйста, дайте мне знать, если это что-то прояснит для вас.

Надеюсь, это поможет.

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