Google bigquery GoogleBigQuery:查询扫描整个表,而不是分区表中的给定范围

Google bigquery GoogleBigQuery:查询扫描整个表,而不是分区表中的给定范围,google-bigquery,Google Bigquery,我有一个事实表,其中包含5000万条名为AccountLines的记录,这些记录通过发布新的日期进行分区。当我过滤特定分区列上的记录时,我的查询工作正常,只扫描给定范围内的有限数据。但当我在发布新列的基础上加入维度表并在财政年度进行筛选时,它会扫描整个表。我怎样才能解决这个问题?我需要将事实表与维度表连接起来,并在不扫描整个表的情况下对维度表的列进行过滤。请帮忙 我的问题如下 --查询完成(耗时5.542秒,处理244.37 MB) --查询完成(经过16.530秒,处理5.51 GB) 要执行

我有一个事实表,其中包含5000万条名为AccountLines的记录,这些记录通过发布新的日期进行分区。当我过滤特定分区列上的记录时,我的查询工作正常,只扫描给定范围内的有限数据。但当我在发布新列的基础上加入维度表并在财政年度进行筛选时,它会扫描整个表。我怎样才能解决这个问题?我需要将事实表与维度表连接起来,并在不扫描整个表的情况下对维度表的列进行过滤。请帮忙

我的问题如下

--查询完成(耗时5.542秒,处理244.37 MB)

--查询完成(经过16.530秒,处理5.51 GB)

要执行此操作,您需要在where子句中使用时间戳:

标准SQL 挑选 t1.name, t2.类别 从…起 表1 t1 内连接 表2 t2 在t1.id_字段=t2字段2上 哪里 t1.ts=当前时间戳()


这被称为数据。

您是否尝试在WHERE子句中添加
和acc.Posting_Date_New(在'2018-04-01'和'2019-03-31'之间)
,因此您实际上明确说明了只扫描哪些分区?因为现在-你的任务不知道你需要特定的分区!
select ah.ChargeGroup, sum(Amount) Amount from SSIS_STAGING.AccountLine acc
inner join SSIS_STAGING.Dim_Times_BI_Clustering dd on dd.Posting_Date_New = acc.Posting_Date_New
inner join SSIS_STAGING.BranchHierarchy br on br.CostCenterId = acc.BookingBranchID
inner join SSIS_STAGING.Accounts_Hierarchy ah on ah.Account = acc.G_L
where acc.Posting_Date_New between '2018-04-01' and '2019-03-31' and ZoneName = 'BU-North'
group by ah.ChargeGroup
select ah.ChargeGroup, sum(Amount) Amount from SSIS_STAGING.AccountLine acc
inner join SSIS_STAGING.Dim_Times_BI_Clustering dd on dd.Posting_Date_New = acc.Posting_Date_New
inner join SSIS_STAGING.BranchHierarchy br on br.CostCenterId = acc.BookingBranchID
inner join SSIS_STAGING.Accounts_Hierarchy ah on ah.Account = acc.G_L
where dd.FinancialYear = '2018-19' and ZoneName = 'BU-North'
group by ah.ChargeGroup