Как обpaбатывать данные из множества таблиц в Google BigQuery

В прошлой статье я рассказывал об оконных функциях в Google BigQuery. Сегодня рассмотрим функции подстановки таблиц. Здесь всё проще.;
Обычно в SQL для объединения данных из нескольких таблиц в одном запросе используют функцию UNION, но в справочнике доступных функций Google BigQuery вы ее не найдете. Чтобы обратиться в одном запросе одновременно к нескольким таблицам, достаточно перечислить их названия через запятую в пункте FROM. Например, у нас в базе есть 5 таблиц:
- Sales_june_2015;
- Sales_july_2015;
- Sales_august_2015;
- Sales_september_2015;
- Sales_october_2015.
Нам необходимо посчитать сумму продаж за третий квартал 2015 года. Информация о продажах в третьем квартале находится в таблицах Sales_july_2015, Sales_august_2015 и Sales_september_2015. Соответственно, нам надо перечислить названия этих таблиц в пункте FROM.
SELECT SUM(Sales) as salesFROM Sales_july_2015, Sales_august_2015, Sales_september_2015; Таким образом, для BigQuery три таблицы при выполнении запроса будут равносильны одной целой таблице о продажах за третий квартал. Важно, чтобы таблицы, которые вы перечисляете через запятую, имели одинаковую структуру данных. Когда в вашем наборе данных всего пять таблиц, вполне можно обойтись описанным выше функционалом. Если же ваши таблицы разделены, например, по дням, то таких таблиц у вас со временем будет сотни, а через пару лет — тысячи. И каждый раз перечислять их через запятую вручную будет уже не так просто. Функции подстановки таблиц (Table wildcard functions) работают по такому же принципу. Используя их, достаточно обозначить диапазон таблиц вместо перечисления всех таблиц через запятую. Рассмотрим три доступные в Google BigQuery функции подстановки таблиц с примерами их использования.
1. Функция TABLE_DATE_RANGE (префикс, начальная дата, конечная дата)
Функция дает возможность обратиться к ряду таблиц, разделенных по дням, задав диапазон дат. Для названия таблицы, в которой описывается, как использовать данную функцию, нужно использовать формат префикс/дата, при этом дата должна быть записана в формате ГГГГММДД. При определении начальной и конечной даты вы можете использовать функции даты и времени, например:
TIMESTAMP(\\\'2012-10-01 02:03:04\\\')DATE_ADD(CURRENT_TIMESTAMP(), -7, \\\'DAY\\\');Предположим, что в нашем наборе данных есть три таблицы:
- mydata.people20140325;
- mydata.people20140326;
- mydata.people20140327.
Для того, чтобы запрос обратился ко всем трем таблицам, необходимо в качестве начальной даты указать TIMESTAMP(\\\'2014-03-25\\\'), а в качестве финальной — TIMESTAMP(\\\'2014-03-27\\\'). Запрос:
SELECTnameFROMTABLE_DATE_RANGE(mydata.people,TIMESTAMP(\\\'2014-03-25\\\'),TIMESTAMP(\\\'2014-03-27\\\'))WHEREage >= 35;Таким образом, в качестве префикса мы указали mydata.people, в качестве начальной даты 2014-03-25, а в качестве конечной — 2014-03-27. Пример обращения к таблицам за 2 предыдущих дня. Предположим, что в проекте myproject-1234 есть следующие таблицы:
- mydata.people20140323;
- mydata.people20140324;
- mydata.people20140325.
Предположим, что сегодня 25 марта 2014 года. Запрос:
SELECTnameFROM(TABLE_DATE_RANGE([myproject-1234:mydata.people], DATE_ADD(CURRENT_TIMESTAMP(), -2, \\\'DAY\\\'), CURRENT_TIMESTAMP()))WHEREage >= 35;В данном примере в качестве начальной даты мы использовали функцию DATE_ADD и указали в качестве точки отсчета текущее время, а также задали параметр отставания в 2 дня. В качестве финальной даты мы указали функцию CURRENT_TIMESTAMP, которая возвращает текущую дату и время. Соответственно, финальной датой будет текущий день.
2. Функция TABLE_DATE_RANGE_STRICT (префикс, начальная дата, конечная дата)
Данная функция — эквивалент TABLE_DATE_RANGE, разница между ними в том, что если в списке таблиц, разбитых по дням, будет отсутствовать таблица хотя бы за одну дату из указанного диапазона, функция TABLE_DATE_RANGE_STRIC вернет ошибку, и сообщение «Таблица (имя таблицы) ошибка». Пример ситуации, в которой функция TABLE_DATE_RANGE_STRICT вернет ошибку (подразумевает наличие в вашем наборе данных следующих таблиц):
- people20140325;
- people20140327.
Запрос:
SELECTnameFROM(TABLE_DATE_RANGE_STRICT(people,TIMESTAMP(\\\'2014-03-25\\\'),TIMESTAMP(\\\'2014-03-27\\\')))WHERE age >= 35;В качестве начальной даты мы задали 2014-03-25, в качестве финальной — 2014-03-25. Запрос в данном случае вернет ошибку «Не найдена таблица people20140326», поскольку ее нет в нашем наборе данных.
3. Функция TABLE_QUERY (набор данных, выражение)
С помощью данной функции вы можете обратиться к таблицам, названия которых соответствуют заданному выражению. Параметр «Выражение» обязательно должен быть в строчном виде. В качестве выражения можно использовать строчные функции, такие как CONTAINS или REGEXP_MATCH. Пример запроса, обращающегося к таблицам с названиями, содержащими «oo» и четыре и более символов (подразумевает присутствие в наборе таблиц со следующими названиями):
- mydata.boo;
- mydata.fork;
- mydata.ooze;
- mydata.spoon.
Запрос:
SELECTspeedFROM (TABLE_QUERY(mydata,\\\'table_id CONTAINS \"oo\" AND length(table_id) >= 4\\\'));Запрос обработает данные из таблиц mydata.ooze и mydata.spoon, так как именно эти две таблицы соответствуют заданному в функции TABLE_QUERY выражению. Пример обращения к таблицам с названиями, соответствующими определенному регулярному выражению. В данном случае название таблицы должно начинаться на «boo» и содержать 3-5 цифр:
- mydata.book4;
- mydata.book418;
- mydata.boom12345;
- mydata.boom123456789;
- mydata.taboo999.
Запрос:
SELECTspeedFROMTABLE_QUERY([myproject-1234:mydata],\\\'REGEXP_MATCH(table_id, r\"^boo[d]{3,5}\")\\\');Поскольку названия этих таблиц соответствуют регулярному выражению, которое мы использовали в запросе «^boo[\d]{3,5}», будут обpaбатываться данные из таблиц:
- mydata.book418;
- mydata.boom12345.
Как видите, обpaбатывать данные с помощью функций подстановки таблиц в Google BigQuery значительно более удобно, чем в классическом SQL. Пользуйтесь с удовольствием.
Комментарии:
Как узнать, что потенциальный сотрудник креативный, умеет убеждать, работать в комaнде, адаптироваться к быстрой смене условий, владеет эмоциональным интеллектом? Вопросы для проверки этих софт-скиллов здесь....
15 10 2026 21:49:43
Корзина интернет-магазина поможет повысить продажи, если ее функционал содержит: фото товара, кликабельное наименование товара, перечень способов оплаты. Узнать больше!...
14 10 2026 0:38:15
Большой проект Джима Коллинза и его комaнды. Одна из лучших книг в нашей библиотеке. Всем рекомендуется к прочтению!...
13 10 2026 9:12:57
Как использовать сервис Serpstat для оптимизации кампаний по контекстной рекламе...
12 10 2026 11:30:51
Где и как разработчик может подобрать ответственных удаленщиков, как составить техническое задание, чем контролировать качество работы...
11 10 2026 17:57:39
Лучшие фишки от спикеров конференции 8P 2020. В конце каждой конференции спикеры 8P собираются за круглым столом, чтобы поделиться пpaктически применимыми советами, которые можно внедрить в свой проект и сразу почувствовать отдачу...
10 10 2026 11:24:48
Как правильно писать нарицательное слово «интернет»....
09 10 2026 22:53:30
Лучшие результаты в SEO дает заранее спланированное сотрудничество клиента с агентством на всех этапах работ с сайтом....
08 10 2026 22:28:28
Что нужно знать перед запуском рекламы в мессенджерах....
07 10 2026 22:26:14
Узнайте, как пользоваться Инспектором и внутренними диаграммами Facebook, чтобы быть в лидерах своей ниши!...
06 10 2026 18:27:15
Как построить html-карту. Верстка карт New York Times, IMDb и Daily Mail в качестве примера...
05 10 2026 14:43:20
Всё, что вы хотели знать о функциях вычисляемых полей, но боялись спросить....
04 10 2026 22:50:57
В основе каждой великой компании – хорошо рассказанная история....
03 10 2026 22:48:26
5 кейсов отлично иллюстрируют правила юзабилити и находки веб-аналитиков....
02 10 2026 23:31:10
Всё о крупной рыбе украинского интернет-маркетинга: компании, люди, кейсы в интервью с основателем Артёмом Бородатюком....
01 10 2026 6:18:30
Полезный и развлекательный контент для всех, кто работает в IT, интернет-маркетинге, интересуется фишками тайм-менеджмента, учится управлять комaндой и собой....
30 09 2026 16:46:28
95% заполняемости коливингов для сервиса аренды жилья....
29 09 2026 9:52:56
Как правильно группировать ключевые фразы для релевантности рекламных кампаний...
28 09 2026 6:30:59
Как прокачать email, когда рассылки уже работают....
27 09 2026 0:48:21
Такое обозрение очередной новинки Google от Сергея Бахаря...
26 09 2026 23:15:59
Краткая инструкция по поиску идеального кандидата, потому что (как видим) многим на рынке все еще сложно найти хорошего маркетолога. Да и понять, стоит ли вкладывать в сотрудника силы, время, средства с первой встречи достаточно сложно....
25 09 2026 23:26:52
5 мая в 17:00 — митап в Zoom с Радомиром Новковичем — фаундером RadASO и CEO Tonti Laguna Mobile....
24 09 2026 21:41:18
Не можете найти нужны отчёт в Google ***ytics? Или хотите ускорить поиск нужных данных и отчётов. В помощь ⏩ Обзор к Google ***ytics Intelligence....
23 09 2026 4:57:12
Делимся итогами продвижения телеграм-канала «Артём Бородатюк» за 2021 год...
22 09 2026 13:57:50
Важно иметь прорывное мышление — о таком подходе к бизнесу написана книга Люка Уильмса «Переворот»....
21 09 2026 4:28:38
Как правильно оформлять свое портфолио, писать сопроводительные письма и делать посты в соцсетях. С помощью простой человеческой адекватности можно выигрывать у 90% других подрядчиков. Как это использовать? Читайте дальше!...
20 09 2026 20:12:53
Кейс в тематике «грузоперевозки»: как быстрое внедрение доработок помогло привлечь качественный трафик на новый сайт...
19 09 2026 5:47:25
История от первого лица про звуковые сигналы в Facebook....
18 09 2026 18:30:37
Продажа климатического оборудования. Кейс о проекте, который продвигался у нас на услуге «продвижение по позициям» и не демонстрировал хороших результатов как по росту трафика, так и по продажам, не смотря на высокие места в выдаче. Узнать больше!...
17 09 2026 4:53:26
Если хотите, чтобы кампании в контекстно-медийной сети работали эффективно, следует очистить площадки и ввести это в привычку...
16 09 2026 23:24:32
Уже сейчас в Google Play и App Store миллионы приложений. Как сделать так, чтобы приложение получило достаточное количество установок и приносило доход? Читайте об этом далее и изучайте наглядную инфографику!...
15 09 2026 21:30:27
Запускаем первую таргетированную рекламу. Мы составили инструкцию для начинающих таргетолов, а также для SMM-специалистов, которым регулярно нужно рекламировать товары и услуги. Читайте подробнее!...
14 09 2026 3:56:44
При работе с рекламным аккаунтом приходится вносить много однотипных изменений. Рассказываем, как сделать это быстро....
13 09 2026 0:59:58
У каждого сайта в топе есть страница, о существовании которой знают только роботы и... SEO-специалисты. Это robots.txt или индексный файл....
12 09 2026 19:44:56
SEO-специалист Константин Гайдук поделился с читателями блога постом о фишках работы линкбилдера с поиском Яндекс....
11 09 2026 14:47:25
Почему в высококонкурентных тематиках важно оптимизировать поведенческие показатели...
10 09 2026 9:37:26
Бесплатно, быстро и безопасно. Но есть и минусы. Узнать больше!...
09 09 2026 20:50:33
Как настроить отправку писем с помощью языка R и как избежать подводных камней....
08 09 2026 23:41:17
Готовые триггерные письма и сценарии позволяют быстро запустить триггеры после реализации технических заданий разработчиком....
07 09 2026 0:15:31
Свежесть и актуальность контента — главные уроки из Google December 2020 Core Update. Почему — читайте в статье....
06 09 2026 15:58:54
Оживший бар. О том, как один украинский бренд за полтора месяца получил более 4 000 фанов!...
05 09 2026 23:47:53
Создание, установка и оптимизация title и мета-тегов keywords, description у сайта, построенного на системе Drupal...
04 09 2026 2:53:37
Правила, требования, особенности. А ещё примеры, которые помогут создать правильную, с точки зрения поисковиков, рекламу. Читать!...
03 09 2026 11:57:41
Кейсы с наибольшим количеством комментариев, репостов, оценок и дочитываний; по контекстной рекламе, поисковому продвижению, аналитике, SMM и другие. Узнать больше!...
02 09 2026 18:49:54
Что нужно учесть при создании баннеров для разных аудиторий...
01 09 2026 13:10:52
Пять простых фишек для повышения привлекательности карточки товара....
31 08 2026 16:45:33
За что, по мнению рекламодателей, готовы платить пользователи в России и Украине? Рейтинг самых дорогих ключевых слов Google Рекламы по версии Serpstat....
30 08 2026 18:35:22
В коробку [SEO 2.0] вместе с самим поисковым продвижением входят дополнительные ценности Netpeak: унифицированные действия по увеличению продаж, улучшения удобства работы и преимущества бренда Netpeak...
29 08 2026 6:50:36
Повышаем эффективность рекламных кампаний. Как рекламодателю-новичку самостоятельно провести аудит своих кампаний в Google Ads, а также про наиболее частые ошибки новичков, связанные с работой и аудитами кампаний в Google Ads. Читайте дальше!...
28 08 2026 14:48:48
Что делать, если вы столкнулись со спамом в отчетах Google ***ytics? Значит ли это, что кто-то имеет доступ к вашему аккаунту, или что кто-то специально влияет на данные сайта в GA? Как они это делают? И как исключить подобные данные из отчетов?...
27 08 2026 23:42:24
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::