Как об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. Пользуйтесь с удовольствием.
Комментарии:
XML-фид представляет собой файл с кодом на языке XML, ссылку на который используют в различных сервисах...
10 08 2026 3:20:18
Опыт стартапа Paperform для стартаперов, которые боятся начать из-за ограниченного бюджета и/или отсутствия знаний в маркетинге. Надеемся, эта история вдохновит предпринимателей и поможет меньше сомневаться на счет запуска без бюджета....
09 08 2026 17:56:34
Отслеживаем в статистике Google ***ytics посетителей пришедших через защищенное соединение в поиске Google....
08 08 2026 4:38:58
Контекстная реклама и ее эффективность: как долго длится, как измерить, что бывает, как заканчиваются деньги....
07 08 2026 1:55:59
Девять свежих советов для продвижения интернет-магазинов...
06 08 2026 2:23:14
Положительная динамика с первых месяцев работы....
05 08 2026 13:41:10
Отличный кейс Ольги Костовой. Увеличивая бюджет на рекламу вдвое, вы начинаете заpaбатывать не вдвое больше, а в 2.5, 3 и так далее раз больше. На примере кейса показываем, как это происходит. Читать дальше....
04 08 2026 16:30:12
Как и зачем отслеживать конверсии с тегом Google Рекламы...
03 08 2026 6:54:33
Как сделать приятно подписчику в день его рождения, на Новый год и в любой другой праздник....
02 08 2026 5:57:59
Создание канала бренда на видеоплатформе необходимо для увеличения притока трафика, улучшения репутации и поискового продвижения компании...
01 08 2026 10:36:29
Отчет «Многокaнaльные последовательности» в Google ***ytics помогает оценить влияние каждого канала, сделать выводы о работе рекламных кампаний — понять их вклад и участие в цепочке до совершения конверсии. Показываем на примере....
31 07 2026 1:23:54
Как сократить время на создание собственных отчетов, если вы работаете с большими рекламными аккаунтами...
30 07 2026 4:48:48
Открытие проверенных действий по увеличению продаж...
29 07 2026 13:28:36
Объявление в тематике автошин — отличная тема для рекламы в интернете....
28 07 2026 15:58:26
27 07 2026 16:58:45
Отныне мы можем настраивать показы рекламы на мужчин и женщин определенной возрастной группы....
26 07 2026 15:27:55
Как быстро увеличить количество заинтересованных подписчиков в facebook, twitter, google+ и linkedIn с помощью контактов из рассылки и аккаунтов Facebook....
25 07 2026 3:51:21
Короткая история про одного из руководителей корпорации «Kimberly Clark». Альтернативная Википедия для тех, кто любит сторителлинг. Читать дальше!...
24 07 2026 14:19:41
Полезный и развлекательный контент для всех, кто работает в IT, интернет-маркетинге, интересуется фишками тайм-менеджмента, учится управлять комaндой и собой....
23 07 2026 23:34:28
Охват и средняя цена за клик в самых популярных тематиках....
22 07 2026 2:25:18
Почему сайт упал в выдаче и какой апдейт алгоритма поисковика на это повлиял...
21 07 2026 10:14:30
Результаты, которых мы достигли за 2 месяца работы....
20 07 2026 15:16:27
В помощь контент-маркетологам, редакторам, авторам и бизнесу: идеи, которые учитывают фактор SEO. Переупакуйте статьи, заметки, любые другие посты — угодите читателям и поисковикам. Узнать больше!...
19 07 2026 8:49:20
Портал-каталог организаций и его продвижение. В этом кейсе мы детальнее остановимся на выгодах для проекта от синергии усилий клиента и агентских специалистов по контекстной рекламе...
18 07 2026 8:45:20
Сравнительная хаpaктеристика B2B и B2C. Как строятся отношения с клиентом, какой объем рынка, особенности сервиса, на чем делать акцент при создании контента. Подробнее....
17 07 2026 14:15:39
Мы собрали топ обидных промахов в сборе семантики, влияющих на качество и эффективность продвижения проекта...
16 07 2026 7:58:30
Вам тоже нужно предоставлять отчеты о работе рекламной кампании, посещение сайтов? Держите три примера работы с Google ***ytics и понятных отчета по ним, которые можно продемонстрировать, не открывая доступ к аккаунту....
15 07 2026 21:52:53
Мотивация сотрудников к работе с текстами. Опыт бюро копирайтинга Texbroker...
14 07 2026 5:31:33
Как начать бизнес в институте и масштабировать его до международной группы компаний. Собрали все самое интересное из интервью фаундера «Техно Ёж» Алексея Гулыя на конференции 8P....
13 07 2026 14:25:12
Cafe case. Знакомство аудитории с только что открывшимся заведением: online + offline....
12 07 2026 17:44:39
Перед внедрением ремаркетинга следует хорошенько поработать над составлением базовых портретов аудитории сайта...
11 07 2026 19:17:49
Google Shopping и Smart Shopping Campaign сами себя не оптимизируют....
10 07 2026 13:11:59
Игровой формат отлично работает в email-рассылке. Но какой вид гeймификации интересен любой целевой аудитории? Давайте рассмотрим примеры....
09 07 2026 17:36:56
Инструкция с применением языка R. Полезно веб-аналитикам, которые работают с крупными интернет-магазинами. Например, на сайте еженедельно появляется примерно 1000 новых наименований и такое же количество позиций переходит в статус «нет в наличии»....
08 07 2026 19:15:52
Популярные размеры баннеров. Найти самый топовый из джентльменского набора! Мы провели свое исследование....
07 07 2026 23:46:50
О промдизайне, инсайтах, испытаниях для дизайнеров по мотивам BBC-шоу «Дизайн для жизни» с Филиппом Старком....
06 07 2026 20:54:48
История для заказчиков, которые самостоятельно запускают рекламу...
05 07 2026 20:42:56
Полезный ликбез для новичков и бизнесменов: анкорные и безанкорные ссылки. Чем отличаются, зачем нужны, какое влияние оказывают на раскрутку сайта в интернете? Узнать!...
04 07 2026 10:22:57
Рынок мобильных приложений и его глобальные тренды из исследования App Annie...
03 07 2026 22:33:52
В статье описан ручной и самый безопасный из существующих метод...
02 07 2026 7:54:20
Зная стоимость клика в вашей тематике или регионе, коэффициент конверсии на сайте, вы можете оценить объем необходимых в рекламу инвестиций и прогнозировать стоимость конверсии. Узнать больше!...
01 07 2026 10:54:21
Фубольный клуб. Как увеличить ROMI (возврат маркетинговых инвестиций) в рекламных кампаниях — рассказываем на примере киевского интернет-магазина «Динамо»...
30 06 2026 21:29:46
Обзор полезных сервисов и программ, которые увеличат эффективность работы из дома и улучшат организацию бизнес-комaнды...
29 06 2026 3:57:26
Как увеличить охват и видимость сайта за счет сбора семантического ядра и расширения структуры...
28 06 2026 20:50:25
Опыт контент студии WordFactory и 14 экспертов интернет-маркетинга....
27 06 2026 2:32:47
Аромамаркетинг. Почему В Нью-Йоркских магазинах Samsung пахнет медовой дыней, в British Airways — луговыми травами. Что мы знаем о восприятии нами сенсорной информации, а конкретно — ароматов. Читать дальше!...
26 06 2026 1:39:27
Алгоритм E-A-T теперь следит за экспертностью, авторитетностью и достоверностью контента. Что это значит?...
25 06 2026 6:34:45
Будьте полезны, будьте удобны и будьте везде. Далее подробно — 18 способов собрать базу для email-рассылок. О пользе бесплатного, привлечении внимания, возможных активностях для аудитории, социальных доказательствах, предсказуемости, работе с Facebook и многом другом...
24 06 2026 5:50:42
Если вам нужно быстро изменить небольшой объем контента на сайте без доступа к CMS, можно воспользоваться GTM. Как именно, читайте дальше....
23 06 2026 14:48:44
Всё, что вы хотели знать о функциях вычисляемых полей, но боялись спросить....
22 06 2026 6:28:54
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::