Google-Bigquery: запрос сканирует всю таблицу вместо заданного диапазона в таблице разделов - PullRequest
0 голосов
/ 30 августа 2018

У меня есть таблица фактов, содержащая 50 миллионов записей с именем AccountLines, разделенных на Posting_Date_New. Когда я фильтрую записи по определенному многораздельному столбцу, тогда мой запрос работает нормально и сканирует только ограниченные данные в заданном диапазоне. Но когда я сделал объединение с таблицей измерений на основе столбца Posting_Date_New и отфильтровал по финансовому году, он сканирует всю таблицу. Как я могу решить эту проблему? Мне нужно объединить мою таблицу фактов с таблицей измерений и отфильтровать столбцы таблицы измерений без сканирования всей таблицы. Пожалуйста помоги.

Мои запросы следующие.

- Запрос выполнен (истекло 5,542 с, обработано 244,37 МБ)

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

- Запрос завершен (прошло 16,530 с, обработано 5,51 ГБ)

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

1 Ответ

0 голосов
/ 31 августа 2018

К сократить секционированную таблицу , вам нужно использовать метку времени в предложении where:

standardSQL

ВЫБРАТЬ t1.name, t2.category ОТ table1 t1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ таблица2 т2 ON t1.id_field = t2 field2 ГДЕ t1.ts = CURRENT_TIMESTAMP ()

Это как BigQuery работает лучше с денормализацией данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...