BigQuery创建标准SQL与旧版SQL之间的表差异

时间:2019-03-11 06:48:34

标签: google-bigquery standard-sql legacy-sql

我对标准和旧版SQL中的create table语法有一些疑问

  1. 新的BigQueryUI不显示标准sql类型,而仅显示旧式类型。我知道它们与旧类型一一对应,但是创建partitioned tables的示例显示了用户界面中不可用的选项
  2. 如果我使用JSON字段模式创建表,是否仍可以使用标准sql?
  3. BigQueryUI仅显示按摄取时间对表进行分区,但是我想创建一个带有date列的表,但看不到任何选项。如果必须手动创建DDL,则看不到有关如何使用JSON字段模式构造create table语句的示例。

1 个答案:

答案 0 :(得分:1)

  

新的BigQueryUI不显示标准sql类型

BigQuery standardSQL和LegacySQL是2种编写SQL语法的选项(有关更多详细信息,请参见此link),与BigQuery中的Types列无关,有关表类型的详细信息,请参见此{{3 }},我也发现此link有用

  

如果我使用JSON字段架构创建表,是否仍可以使用标准sql?

要使用JSON创建表,您需要运行bq Link,如果您需要有关如何编写此语法的帮助,请告诉我们

  

但是我想创建一个带有日期列的表,但看不到任何选项

您可以使用以下标准SQL语法执行此操作:

#standardSQL
CREATE OR REPLACE TABLE `project.dataset.tableId`
PARTITION BY myDate
CLUSTER BY cluster_col AS
SELECT * from sourceTable

注意:myDate列是源表中的列