Bigquery return 嵌套结果而不使用 table 将其展平

Bigquery return nested results without flattening it without using a table

如果指定了 noflatten_results 标志,则可以 return 嵌套结果(RECORD 类型),但可以只在屏幕上查看它们而不将其写入 table 首先.

例如,这里是一个简单的user table(我的实际table很大很大(400+col多级嵌套)

ID,
name: {first, last}

我想查看特定用户的记录并在我的应用中显示,所以我的查询是

SELECT * FROM dataset.user WHERE id=423421 limit 1

是否可以直接return结果?

因此,如果您尝试获取重复的记录,它将在 interface/BQ 控制台上失败并显示错误:

Error: Cannot output multiple independently repeated fields at the same time.

为了克服这个错误,将输出展平。

您应该使用 noflatten_results 选项将您的输出写入 "temp" table(还应将各自的到期时间设置为在使用后清除 table)并提供给您客户端超出此临时 table。全部 "on-fly"
请记住,无论 "temp" table 有多小 - 如果您要查询它(在上面的第二步中),您将至少支付 10MB 的费用,因此您最好使用 Tabledata.list API这一步(https://cloud.google.com/bigquery/docs/reference/v2/tabledata/list)是免费的!