Вставка нескольких записей в BigQuery с использованием WSO2 - PullRequest
0 голосов
/ 18 марта 2019

Я использую BigQuery Connector в WSO2 для вставки нескольких записей в облаке BigQuery.

Я перешел по этой ссылке и смог успешно вставить одну запись.

Первый Я попытался передать несколько записей, разделив их запятой.
Однако в этом случае вставляется только первая запись, а другие записи пропускаются.

Обратите внимание, что в этом случае ошибка не возвращается.

Мое сообщение Json с несколькими записями:

{"insertId":"101","json":{"NAME":"Vishal_101","ADDRESS":"UK","ID":"vbordia"}},{"insertId":"102","json":{"NAME":"Vishal_102","ADDRESS":"UK","ID":"vbordia"}}

Второй Я попробовал эту ссылку , которая объясняет, как создавать несколько записей.
Однако на этот раз я получил неверный ответ от BigQuery. Так как ответное сообщение не совсем понятно, я не могу понять причину .-

Messagean:

{
"rows":
  [
    {
      "insertId":"209",
      "json": 
        {
          "NAME": "NewRow1",
          "ADDRESS": "NewAddr",
          "ID": "123"
        }
    },
    {
      "insertId":"210",
      "json": 
        {
          "NAME": "NewRow2",
          "ADDRESS": "NewAddr",
          "ID": "123"
        }
    }
  ]
}

Сообщение об ошибке, возвращенное BigQuery:

{
"insertErrors": [
    {
      "index": 0,
      "errors": [
        {
          "reason": "invalid",
          "location": "",
          "debugInfo": "",
          "message": ""
        }
      ]
    }
  ]
}

Может кто-нибудь, пожалуйста, помогите мне здесь. Как правильно вставить несколько записей в BigQuery через Wso2. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Это ошибка в коннекторе WSO2 Bigquery. Мы подняли с WSO2, и теперь они выпустили новую версию разъема, который может вставлять несколько записей. Вы можете найти последнюю версию на рынке WSO2.

0 голосов
/ 18 марта 2019

На основе ваших данных я создал тестовую таблицу в своем проекте

enter image description here

И использовал API для загрузки вашего примераследующие данные:

curl --request POST \
  'https://www.googleapis.com/bigquery/v2/projects/myproject/datasets/dataset/tables/testInsert/insertAll' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"rows":[{"insertId":"z1","json":{"NAME":"Vishal_z1","ADDRESS":"UK","ID":"vbordia"}},{"insertId":"z2","json":{"NAME":"Vishal_z2","ADDRESS":"UK","ID":"vbordia1"}}]}' \
  --compressed

с использованием этого SELECT:

SELECT * FROM `project.dataset.testInsert` LIMIT 1000

Я подтвердил, что данные находятся в таблице:

enter image description here

...