bigquery - 自定义字段上的分区 - 仅适用于标准 SQL?
bigquery - partition on custom fields -- only for standardSQL?
我刚刚看到我可以在 BigQuery 中创建 custom partitioned
table。按任何 timestamp
列分区的含义。
但是,新建的table只能从StandardSQL
!
访问查询
有没有办法从 Legacy 查询新的 tables?
就在 documentation 的开头说您没有旧版 SQL 支持的限制。
分区表受以下限制:
- 分区列必须是标量 DATE 或 TIMESTAMP
柱子。虽然列的模式可能是 REQUIRED 或 NULLABLE,但它
不能重复(基于数组)。此外,分区
列必须是顶级字段。您不能使用来自
RECORD (STRUCT) 作为分区列。
- 您不能使用旧版 SQL
查询分区表或将查询结果写入分区
表。
- 查询分区时不能使用通配符表
表。
- 不能使用 DML 语句修改分区表。
您只需将 LegacySql 声明为 false
,例如:
var projectId = 'xxxxxxx';
var request = {
query: 'select * from project.database.table',
useLegacySql: false
};
var queryResults = BigQuery.Jobs.query(request, projectId);
我刚刚看到我可以在 BigQuery 中创建 custom partitioned
table。按任何 timestamp
列分区的含义。
但是,新建的table只能从StandardSQL
!
有没有办法从 Legacy 查询新的 tables?
就在 documentation 的开头说您没有旧版 SQL 支持的限制。
分区表受以下限制:
- 分区列必须是标量 DATE 或 TIMESTAMP 柱子。虽然列的模式可能是 REQUIRED 或 NULLABLE,但它 不能重复(基于数组)。此外,分区 列必须是顶级字段。您不能使用来自 RECORD (STRUCT) 作为分区列。
- 您不能使用旧版 SQL 查询分区表或将查询结果写入分区 表。
- 查询分区时不能使用通配符表 表。
- 不能使用 DML 语句修改分区表。
您只需将 LegacySql 声明为 false
,例如:
var projectId = 'xxxxxxx';
var request = {
query: 'select * from project.database.table',
useLegacySql: false
};
var queryResults = BigQuery.Jobs.query(request, projectId);