问题标签 [bq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
22 浏览

arrays - BQ 中的 CASE 运算符不允许使用不同类型的参数

我需要根据同一张表中的不同过滤器查询json字符串

CASE语句返回错误:

运营商 CASE 没有匹配的签名;所有 THEN/ELSE 参数都必须强制转换为通用类型,但可以找到:ARRAY、STRING;实际参数类型 (WHEN THEN) ELSE: (BOOL ARRAY) (BOOL STRING) (BOOL STRING) (BOOL STRING) (BOOL STRING) NULL at [6:3]

为什么会这样以及如何让它发挥作用?

0 投票
0 回答
20 浏览

google-bigquery - BigQuery 在使用 BigQueryHook.run_extract(甚至 bq 提取)时将 STRING 字段包装成双引号

run_extract使用方法将表数据导出到云存储桶时遇到问题。我需要通过用双引号 ( ") 将它们括起来来导出所有字段,但我没有找到这样做的方法。run_load 方法中没有 quote_character 选项。当我在数据源 ( "field value") 中手动添加双引号并使用 airflow.providers.google.cloud.hooks.bigquery.BigQueryHook.run_extract 将其导出时,它用 3 个双引号 ( """field value""") 包围数据,这不是我需要的。有什么办法吗?

0 投票
1 回答
24 浏览

json - 通过命令行将带有特殊字符 unicode 的 JSON 文件推送到 bigquery

我试图通过 bqcmd 将 json 文件推送到 BQ,其中包含特殊字符,例如 ü 但失败。我尝试了不同的编码等。除了删除字符之外没有任何工作

Json File 在引入特殊字符之前是成功的

BQ 命令:

0 投票
1 回答
56 浏览

sql - Bigquery - 版本控制计划查询

现在我已经通过 BQ 界面安排了查询。它们工作但不能很好地扩展或迁移(跨开发和生产 gcp 项目)。因此,我尝试以可重现、可扩展和可迁移的方式进行预定查询。

'我的查询很复杂,因此我很难通过命令运行它"并通过 github 操作进行调度。'''bq

这是最复杂的查询:

总共有 20 个必须安排的查询。这是唯一一个增量或其他是删除和重新创建表的唯一一个,因此它们不像这个那么复杂。

我到目前为止所尝试的:

  • 在 BQ 界面中创建按需查询,然后使用bq mk命令以时间戳作为变量运行它,如答案所示。它的问题是我仍然必须手动创建按需查询,并且我必须在开发和生产项目中分别进行。
  • bq我无法找到使用cmd创建按需查询的方法。
  • 我无法bq query运行查询(根本不是创建 bq 预定查询)。然后通过 gihub 操作安排它们。

任何有关正确语法或更好建议的帮助对我来说都非常有帮助。

谢谢。

0 投票
1 回答
54 浏览

google-cloud-platform - BQ - 不再能够使用 run_time 在计划查询中对表进行分区

在设置计划查询时,我曾经能够在大查询中使用表名中的参数对表进行分区,方法是放置我的表名,然后添加 {} 括号以添加到 run_time 例如我的表名如下:mytable_{运行时间|"%Y%m%d"}

Google Docs 文档中仍然概述了此方法,但是您似乎无法再执行此操作(除非我做错了什么)。用于表示表名的框现在已更改为表 id,当尝试将以下内容放入表 id mytable_{run_time|"%Y%m%d"} 时 - 我收到此错误“无效的表 ID”。如果我删除 run_time 参数 - 它可以工作,但是我的表不再分区。有谁知道这是否真的被删除了?或者如果它是一个错误?如果是这样,是否有解决方法?

0 投票
0 回答
32 浏览

google-cloud-platform - BigQuery 命令行工具“bq query”如何停止打印某些作业的 sql 查询字符串?

假设当前目录中存在以下文件:

当我运行时,bq query --use_legacy_sql=false --format=csv < example1.sql我得到了预期的输出:

但是如果我运行以下查询

像这样bq query --use_legacy_sql=false --format=csv < example2.sql我得到以下输出:

如您所见,添加变量导致bq query将“example2.sql”的内容打印到标准输出,这不是我想要的。如何避免将文件的内容打印到标准输出,而只返回第一个示例中的查询结果?