使用WSO2在BigQuery中插入多个记录

时间:2019-03-18 12:05:27

标签: google-bigquery wso2esb

我正在WSO2中使用BigQuery Connector在BigQuery云中插入多个记录。

我遵循了这个link并且能够成功插入一条记录。

首先我试图通过使用逗号分隔多个记录来传递多个记录。
但是,在这种情况下,仅插入第一条记录,而其他记录被跳过。

请注意,在这种情况下不会返回任何错误。

我的具有多个记录的Json消息:

ExceptionHandlerServlet

第二,我尝试了此link,它解释了如何构建多个记录。
但是,这次我收到来自BigQuery的无效响应。由于响应消息的解释性不好,因此我无法理解原因。-

Messagean:

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

BigQuery返回的错误消息:

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

任何人都可以在这里帮助我。通过Wso2在BigQuery中插入多个记录的正确方法是什么? 预先感谢。

2 个答案:

答案 0 :(得分:1)

这是WSO2 Bigquery连接器中的错误。我们提高了WSO2的支持率,现在他们发布了能够插入多个记录的新版本的连接器。您可以在WSO2市场上找到最新版本。

答案 1 :(得分:0)

根据您的数据,我在项目中创建了一个测试表

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