0

我对 Google Cloud CLI 很陌生,很抱歉这个愚蠢的问题,但这真的很烦人。

我正在尝试执行此命令:

bq mk --transfer_config --target_dataset=ds_scrummate --display_name='map_email' --data_source=amazon_s3 --params='{"data_path_template":"s3://sm-bigquery/map_email/{run_date}/*.csv", "destination_table_name_template":"ing_map_email", "file_format":"CSV", "max_bad_records":"0", "ignore_unknown_values":"true", "field_delimiter":",", "skip_leading_rows":"1", "allow_quoted_newlines":"true", "allow_jagged_rows":"false", "delete_source_files":"true"}'

我总是收到此错误消息:

BigQuery error in mk operation: Parameters should be specified in JSON format
when creating the transfer configuration.

上面的 JSON 文件似乎是有效的(我已经使用在线验证器对其进行了测试)。我也试过这个命令的多行版本,结果相同。

问题:

  • 我究竟做错了什么?尽管内容经过验证,为什么我在这里收到 JSON 错误?
  • 我怎样才能得到更详细的错误?这个命令是否有一个我找不到的详细标志?
  • 为什么没有任何好的文档详细描述这种类型的错误?

我用过的来源:

https://cloud.google.com/bigquery/docs/reference/bq-cli-reference#bq_mk https://cloud.google.com/bigquery-transfer/docs/working-with-transfers https://cloud。 google.com/bigquery-transfer/docs/s3-transfer#bq https://cloud.google.com/bigquery/docs/bq-command-line-tool

4

1 回答 1

1

我究竟做错了什么?尽管内容经过验证,为什么我在这里收到 JSON 错误?

在线解析器确实提供了有效的 json 结构,但可能是提示未识别{run_date}为字符串,我认为它也在尝试解析它。或者也许"field_delimiter":","应该转义逗号。

How:我能得到更详细的错误吗?这个命令是否有一个我找不到的详细标志?

--apilog <filename>将调试日志输出到文件。

为什么没有任何好的文档详细描述这种类型的错误?

如果我的怀疑是正确的,我认为错误信息指向了正确的方向,我们需要验证 json 中出了什么问题;调试日志可能包含有关不可解析部分的更具体的详细信息。

于 2020-09-07T22:27:06.407 回答