BigQuery数据未插入

时间:2019-05-27 10:10:22

标签: python google-bigquery python-bigquery

我正在使用python客户端库将数据插入到大查询表中。代码如下。

client = bigquery.Client(project_id)
errors = client.insert_rows_json(table=tablename,json_rows=data_to_insert)
assert errors == []

没有错误,但是也没有插入数据。

示例JSON行:

[{'a':'b','c':'d'},{'a':'f','q':'r'},.....}]

出什么问题了?也没有例外

3 个答案:

答案 0 :(得分:0)

可能有两种情况:

  1. 您的数据与架构不符
  2. 您的表是新创建的,并且更新尚不可用

参考文献:

答案 1 :(得分:0)

client.insert_rows_json方法,使用StreamingInsert。 使用StreamingInsert将数据插入BigQuery会导致BigQuery控制台上的表预览出现延迟。
数据不会立即出现。所以, 您需要查询它们以确认插入的数据。

答案 2 :(得分:0)

得到我问题的答案。问题是我要再插入一列不存在数据的列数据。我发现了一个黑客,目的是找出数据是否未插入到bigquery表中。

  1. 将数据更改为以换行符分隔的json,并使用键作为列名,将值作为该特定列所需的值。
  2. bq --location=US load --source_format=NEWLINE_DELIMITED_JSON dataset.tablename newline_delimited_json_file.json。在终端中运行此命令,看看是否抛出任何错误。如果引发错误,则可能是您的数据/表架构有问题。
  3. 根据错误更改数据/表架构,然后尝试通过python重新插入。

如果python API在终端上抛出错误/异常会更好,这会有所帮助。