bq加载:“加载操作中的BigQuery错误:找不到:项目...”

时间:2018-07-01 22:10:50

标签: google-bigquery google-cloud-storage gcloud

我正在尝试加载一些ndjson数据。首先,创建表的过程非常完美:

additional-info

但是,undefined命令不会:

> bq mk --table <project-id>:<my-dataset.newtable> newtable.schema.json
Table '<project-id>:<my-database.newtable>' successfully created.

还请注意:

  • 我从BigQuery的网络界面运行该作业没有问题。

  • 我已经通过bq load命令将> bq load --source_format=NEWLINE_DELIMITED_JSON <project-id>:<my-dataset.newtable> gs://<project-id>.appspot.com/newtable.ndjson BigQuery error in load operation: Not found: Project <project-friendly-name> 设置为默认项目,但是即使没有创建表,即使创建表,也会遇到相同的错误。

  • p>

某些未正确设置的环境变量存在问题吗?

4 个答案:

答案 0 :(得分:2)

bq load命令通常遵循以下结构。

bq --location=[LOCATION] load --source_format=[FORMAT] [DATASET].[TABLE] [PATH_TO_SOURCE] [SCHEMA]

与标准bq load命令一样,如果要在cli中登录的同一项目中加载数据,则不必提及该项目。另外,除非您在命令中设置了自动检测标志,否则您还需要提及该模式。

以下命令可让您识别您有权访问的项目。

gcloud config list

答案 1 :(得分:1)

好的。有趣的是,与bq mkbq load不同的是,选择<project-id>[PROJECT_ID]:[DATASET].[TABLE]中的bq init(以及--location=[LOCATION]选项合格的Cloud Storage URI作为文件)仍然无关。

我仍然必须运行:

  • gcloud config set project <project-id>
  • bq load --project_id=<project-id> ...

  • gcloud init并选择目标项目作为默认项目。

总而言之,这可行:

bq load --project_id=<project-id> --source_format=NEWLINE_DELIMITED_JSON <my-dataset.newtable> gs://<project-id>.appspot.com/newtable.ndjson

答案 2 :(得分:0)

我针对此错误的解决方案是我必须为location=[LOCATION]命令省略bq load选项。我的GCP项目没有看到任何默认位置。

答案 3 :(得分:0)

在 2021 年 5 月,当我对超过一定大小的文件使用 bq load 时,我仍然遇到了这个问题。

2020 年 8 月在错误跟踪器上描述的解决方法对我有用:https://github.com/googleapis/google-api-python-client/issues/1006

具体来说,我编辑了文件 ~/google-cloud-sdk/platform/bq/third_party/httplib2/python3/__init__.py .

找到这一行: REDIRECT_CODES = frozenset((300, 301, 302, 303, 307, 308)) 并从集合中删除数字 308。

我怀疑这不是正确的修复,但它让我继续前进,而且由于它只影响 bq 命令使用的 httplib2,因此希望不会有其他有害影响,但要小心。