未插入 Bigquery 数据

Bigquery data not getting inserted

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

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'},.....}]

有什么问题吗?也不例外

可能有两种情况:

  1. 您的数据与架构不匹配
  2. 您的 table 是刚创建的,更新还不可用

参考文献:

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

得到了我的问题的答案。问题是我再插入一个数据不存在的列数据。我找到了一个 hack 来查明数据是否没有插入到 bigquery table。

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

如果 python API 在终端上抛出一个 error/exception 就更好了,这会很有帮助。