如何在 bigquery 中创建标准 SQL 表
Posted
技术标签:
【中文标题】如何在 bigquery 中创建标准 SQL 表【英文标题】:How to create standard SQL tables in bigquery 【发布时间】:2018-01-26 17:26:10 【问题描述】:我刚刚检查了 Web UI,创建了一个空表,所有暴露的数据类型都是旧的 SQL 数据类型。然后我检查了bq mk
,我看不到任何设置标准 SQL 标志的选项。
甚至奇怪的是,如果我使用标准 SQL 数据类型创建表,
bq mk --schema name:string,value:int64 -t test.newtable5
Table 'oandmpoc:test.newtable5' successfully created.
它创建一个带有value INTEGER
的表,稍后我将深入研究 ARRAY 和 STRUCT 数据类型的行为。有什么明显的我失踪了吗?
【问题讨论】:
您查看了 DDL 文档吗? cloud.google.com/bigquery/docs/data-definition-language 【参考方案1】:BigQuery 不会以不同方式存储旧版 SQL 和标准 SQL 的表。 INTEGER
是 INT64
类型的旧 SQL 别名。同样,RECORD
是 STRUCT
的别名。您会注意到 legacy SQL data types reference 有 DATE
、TIME
和 DATETIME
的条目,尽管这些条目在标准 SQL 中最有用。
migrating from legacy SQL documentation page 上提供了有关哪些旧 SQL 类型映射到哪些标准 SQL 类型的更多信息。
【讨论】:
谢谢 - 但我们在使用 Tableau 时遇到了问题。它使用“.”在 ARRAY 中发送 STRUCT 数据类型。请求元数据时的(点)表示法。但是这些名称不能在进一步的查询中使用。我不确定为什么 BQ 在使用标准 SQL 时会这样做。 kb.tableau.com/articles/issue/… 架构是什么样的?您想在 Tableau 中做什么?这可能是另一个问题。以上是关于如何在 bigquery 中创建标准 SQL 表的主要内容,如果未能解决你的问题,请参考以下文章
在 BigQuery 中展平嵌套和重复的结构(标准 SQL)