查询所有分区 table
Querying all partition table
我有大约 600 个分区的 table 称为 table.ga_session。每个 table 以 1 天分隔,并且每个 table 都有自己唯一的名称,例如,日期 (30/12/2021) 的 table 的名称为 table.ga_session_20211230。其他的table也一样,命名格式是这样的table.ga_session_YYYYMMDD.
现在,当我尝试调用所有分区 table 时,我无法使用这样的命令:。错误显示无法识别 _PARTITIONTIME。
SELECT
*,
_PARTITIONTIME pt
FROM `table.ga_sessions_20211228`
where _PARTITIONTIME
BETWEEN TIMESTAMP('2019-01-01')
AND TIMESTAMP('2020-01-02')
这个我也试过了,还是不行
select *
from between `table.ga_sessions_20211228`
and
`table.ga_sessions_20211229`
我也不能使用 FROM 'table.ga_sessions' 来应用 WHERE 子句来取出时间范围,因为 table 不存在。我如何调用所有这些分区 table?提前致谢!
可以使用通配符table进行查询。例如:
SELECT max
FROM `bigquery-public-data.noaa_gsod.gsod*`
WHERE _TABLE_SUFFIX = '1929'
这将专门查询 gsod1929 table,但如果需要,可以排除 table_suffix 子句。
在你的场景中你可以这样做:
select *
from table.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN '20190101' and '20200102'
有关详细信息,请参阅此处的文档:
https://cloud.google.com/bigquery/docs/reference/standard-sql/wildcard-table-reference
我有大约 600 个分区的 table 称为 table.ga_session。每个 table 以 1 天分隔,并且每个 table 都有自己唯一的名称,例如,日期 (30/12/2021) 的 table 的名称为 table.ga_session_20211230。其他的table也一样,命名格式是这样的table.ga_session_YYYYMMDD.
现在,当我尝试调用所有分区 table 时,我无法使用这样的命令:。错误显示无法识别 _PARTITIONTIME。
SELECT
*,
_PARTITIONTIME pt
FROM `table.ga_sessions_20211228`
where _PARTITIONTIME
BETWEEN TIMESTAMP('2019-01-01')
AND TIMESTAMP('2020-01-02')
这个我也试过了,还是不行
select *
from between `table.ga_sessions_20211228`
and
`table.ga_sessions_20211229`
我也不能使用 FROM 'table.ga_sessions' 来应用 WHERE 子句来取出时间范围,因为 table 不存在。我如何调用所有这些分区 table?提前致谢!
可以使用通配符table进行查询。例如:
SELECT max
FROM `bigquery-public-data.noaa_gsod.gsod*`
WHERE _TABLE_SUFFIX = '1929'
这将专门查询 gsod1929 table,但如果需要,可以排除 table_suffix 子句。
在你的场景中你可以这样做:
select *
from table.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN '20190101' and '20200102'
有关详细信息,请参阅此处的文档: https://cloud.google.com/bigquery/docs/reference/standard-sql/wildcard-table-reference