Google bigquery 使用WSO2在BigQuery中插入多条记录

Google bigquery 使用WSO2在BigQuery中插入多条记录,google-bigquery,wso2esb,Google Bigquery,Wso2esb,我正在WSO2中使用BigQuery连接器在BigQuery云中插入多条记录 我遵循这一点,成功地插入了一条记录 首先我试图通过使用逗号分隔多条记录来传递它们。 但是,在这种情况下,只插入第一条记录,而跳过其他记录 请注意,在这种情况下不会返回任何错误 包含多条记录的My Json消息: {"insertId":"101","json":{"NAME":"Vishal_101","ADDRESS":"UK","ID":"vbordia"}},{"insertId":"102","json":{"

我正在WSO2中使用BigQuery连接器在BigQuery云中插入多条记录

我遵循这一点,成功地插入了一条记录

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

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

包含多条记录的My Json消息:

{"insertId":"101","json":{"NAME":"Vishal_101","ADDRESS":"UK","ID":"vbordia"}},{"insertId":"102","json":{"NAME":"Vishal_102","ADDRESS":"UK","ID":"vbordia"}}
Second我尝试了这个方法,它解释了如何创建多个记录。
但是,这次我从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": ""
        }
      ]
    }
  ]
}
有人能帮我吗?通过Wso2在BigQuery中插入多条记录的正确方法是什么。
提前感谢。

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

并使用上载示例数据,如下所示:

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 * FROM `project.dataset.testInsert` LIMIT 1000
我确认数据在表中:


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

并使用上载示例数据,如下所示:

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 * FROM `project.dataset.testInsert` LIMIT 1000
我确认数据在表中:


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

这是WSO2 Bigquery连接器中的一个错误。我们提出了WSO2,他们现在发布了新版本的连接器,能够插入多条记录。您可以在WSO2 market place找到最新版本。

从第二个运行insertAll时是否出现第二个错误?是Tamir。我已经尝试了许多其他的插入方法,但都不起作用。由于没有从BigQuery返回错误消息,我无法找到错误。从第二个运行insertAll时是否出现第二个错误?是Tamir。我已经尝试了许多其他的插入方法,但都不起作用。由于BigQuery没有返回任何错误消息,我无法找到问题所在。感谢Tamir的快速回复。我没有将数据直接插入BigQuery控制台的权限,我认为您插入数据的方式是直接使用BigQuery API,但我正试图找到一种使用ESB工具WSO2插入行的方式。如果您对此有任何想法,请建议我。下面是通过WSO2工具尝试时成功插入的单个记录。{“insertId”:“101”,“json”:{“NAME”:“Vishal_101”,“ADDRESS”:“UK”,“ID”:“vbordia”}}但我无法插入多行,也不知道如何为多行创建json消息。不幸的是,我不熟悉WSO2,也许其他人可以在这方面提供帮助,但我可以向您保证,裸API支持多个插入。我可能建议的一种解决方法是在WSO2中创建一个外部循环(假设这是可能的),并在确认单个插入正在运行Tanks Tamir时逐行流化数据。我将尝试你建议的工作。但是必须有一种方法可以在一个查询中传递多行。请问有人在WSO2中遇到过这个问题吗?谢谢Tamir的快速回复。我没有将数据直接插入BigQuery控制台的权限,我认为您插入数据的方式是直接使用BigQuery API,但我正试图找到一种使用ESB工具WSO2插入行的方式。如果您对此有任何想法,请建议我。下面是通过WSO2工具尝试时成功插入的单个记录。{“insertId”:“101”,“json”:{“NAME”:“Vishal_101”,“ADDRESS”:“UK”,“ID”:“vbordia”}}但我无法插入多行,也不知道如何为多行创建json消息。不幸的是,我不熟悉WSO2,也许其他人可以在这方面提供帮助,但我可以向您保证,裸API支持多个插入。我可能建议的一种解决方法是在WSO2中创建一个外部循环(假设这是可能的),并在确认单个插入正在运行Tanks Tamir时逐行流化数据。我将尝试你建议的工作。但必须有一种方法可以在一个查询中传递多行。请问有人在WSO2中遇到过这个问题吗?