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);