Как об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. Пользуйтесь с удовольствием.
Комментарии:
Игровой формат отлично работает в email-рассылке. Но какой вид гeймификации интересен любой целевой аудитории? Давайте рассмотрим примеры....
17 04 2026 6:28:25
Как мы недооценили уровень конкуренции в нише, и как пришлось с этим бороться, чтобы принести пользу клиенту....
16 04 2026 4:10:26
Обзор четырех самых популярных сервисов для автоматического продвижения сайтов...
15 04 2026 13:11:43
Необходимый элемент для защиты контента от копирования и в то же время — шанс стать популярным автором. Тем не менее, от водяных знаков отказываются. Узнать больше!...
14 04 2026 15:43:49
Чтобы и клиенту не стыдно было показать и свои ожидания не обмануть....
13 04 2026 11:47:16
Бесплатная регистрация сайта в поисковых системах и каталогах – отличный способ увеличить объемы трафика и раскрутить собственный ресурс....
12 04 2026 18:56:41
Создание успешного стартапа в нише телемедицины. Без дополнительных трат увеличил за 6 месяцев доход на 1983%, а клиентскую базу — более чем на 1000%....
11 04 2026 10:16:30
Facebook раскрывает алгоритм формирования новостной ленты...
10 04 2026 22:12:37
Чтобы увеличить продажи и улучшить их эффективность в новых условиях необходимо применять «социальные доказательства»....
09 04 2026 2:55:45
И как проверить релевантность на своем сайте. Если речь идет о страницах (сайтах), подразумевается соответствие контента запросу. Чем точнее страница отвечает на запрос, решает задачу пользователя, тем (при прочих равных) выше ее позиция в поисковой выдаче....
08 04 2026 19:15:39
Компании и продукты, социальные инициативы, главные проекты и миссия группы. Разложили все о Netpeak Group по полочкам в новом посте....
07 04 2026 10:57:44
О работе, креативности, мотивации и многом другом....
06 04 2026 7:18:18
Анализ данных о 7,6 миллионах поисковых запросов в французском Google...
05 04 2026 14:39:24
Программа знаний и умений, чтобы стать Project Manager в агентстве интернет-маркетинга...
04 04 2026 22:33:58
У каждого сайта в топе есть страница, о существовании которой знают только роботы и... SEO-специалисты. Это robots.txt или индексный файл....
03 04 2026 20:49:45
Flash онлайн объявлений в формат HTML5: нововведение гугл рекламы...
02 04 2026 19:17:12
Подробный алгоритм успешного питча на Product Hunt на примере Serpstat...
01 04 2026 21:54:26
Важно иметь прорывное мышление — о таком подходе к бизнесу написана книга Люка Уильмса «Переворот»....
31 03 2026 15:20:42
Многие специалисты недооценивают эффективность отчетов Яндекс.Метрики. Очень зря. Вот чем они могут быть полезны....
30 03 2026 4:31:39
Расскажем в двух словах о всеми забытой функции «Анализ конкуренции»....
29 03 2026 10:59:28
Те самые проблемы, если бизнес пришел к вам за услугой, но ему не нужен маркетинг в интернете. Мнения экспертов интернет-маркетинга....
28 03 2026 10:52:13
Стратегия контекстной рекламы для лендинга турагенства: увеличение количества онлайн-бронирований на 100%...
27 03 2026 21:50:55
Алгоритм технической подготовки IP-адреса к массовым рассылкам...
26 03 2026 23:50:32
О списках исключенных мест размещения будет интересно узнать тем, кто хочет облегчить себе работу с контекстно-медийными сетями....
25 03 2026 14:48:57
Семнадцать крутых шагов к эффективному бренду Заг — это авторский неологизм от слова зигзаг (англ. zigzag). Он подразумевает движение в другом направлении....
24 03 2026 17:59:11
Как создавать интеpaктивные рассылки-сайты и чем они хороши...
23 03 2026 7:10:37
Ссылки нужно не только наращивать, но и постоянно посещать и мониторить качество уже существующих....
22 03 2026 0:21:11
Регулярный мониторинг позиций необходим для отслеживания истории их изменений после внедрения новых ключевых слов и других работ над сайтом...
21 03 2026 12:22:26
Обучение SEO, PPC, курс по изучению языка R, академии Netpeak Software, Serpstat и другие. Список обновляется....
20 03 2026 5:34:23
Советы специалистов Netpeak: виды фильтров Google, что с этим делать и как снять ручные санкции Google....
19 03 2026 1:57:41
Первая часть иллюстрированного руководства, в котором мы взяли 20 самых важных фактора ранжирования представлены с краткими иллюстрированными примерами. В этом тексте вы найдете первые 10. Узнать больше!...
18 03 2026 6:57:11
Джефф Безос, Стив Джобс, Билл Гeйтс, Джимм Керри и другие. Собрали для вас подборку крутых выступлений людей, которые знают, как добиться ... в общем-то, всего. Читайте их основные тезисы, а главное — послушайте....
17 03 2026 7:59:31
С помощью этой шпаргалки вы легко распределите акценты и начнете последовательно внедрять маркетинговую стратегию по продвижению мобильного приложения...
16 03 2026 3:29:47
Если вы не можете разработать технические задания для себя в виде структурированного текста, вы, скорее всего, плохо понимаете, что хотите от исполнителя...
15 03 2026 15:45:45
Measurement Protocol — метод передачи данных о продажах или любых других взаимодействиях с покупателями на сервера Google ***ytics пpaктически из любого источника: внутренней CRM-системы, базы данных и даже платежного терминала...
14 03 2026 23:52:17
Кейс: SEO для сайта эpoтического массажа — ROMI 980% за 10 месяцев...
13 03 2026 14:26:29
В этой статье я покажу пример визуальной работы с закладкой и пошагово разберу процесс их создания и применения для удобства визуализации данных...
12 03 2026 1:48:10
Нужно ли начинать работу с Google Marketing Platform, и если да, то на каком этапе развития бизнеса?...
11 03 2026 7:10:30
Семинар с примерами юзабилити решений от Twitter, Airbnb, Amazon и других компаний....
10 03 2026 8:34:14
Экс-CEO, а теперь просто сотрудник и «волшебник страны Moz» Рэнд Фишкин поделился с читателями блога рассказом о своем видении будущего SEO, перспективах анонимизации сети и причудах американских клиентов....
09 03 2026 22:19:36
Быстрые ссылки и другие советы на тему того, как эффективно работать в Директ Коммaндере....
08 03 2026 5:45:26
Советы бизнесу от зрителей Big Money и Артема Бородатюка. Предлагаем 11 универсальных, но простых и понятных идей....
07 03 2026 13:48:38
Алгоритм E-A-T теперь следит за экспертностью, авторитетностью и достоверностью контента. Что это значит?...
06 03 2026 14:38:11
Интересные детали интерьера в офисах украинских IT-компаний: от массажного стола и тенниса до звукозаписывающей студии и корпоративной велопарковки. Читать дальше!...
05 03 2026 17:43:23
Инструкция по созданию изображений для сториз, email-рассылок и объявлений в соцсетях...
04 03 2026 11:12:45
Увлекательные истории от специалиста по контекстной рекламе....
03 03 2026 0:52:29
Сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане — цифры за первый квартал 2019 года...
02 03 2026 11:44:48
Давайте больше не будем сливать бюджет, выбирая неправильный параметр....
01 03 2026 21:22:39
Проверяем, есть ли разница в ранжировании при наличии/отсутствии этих слов в метаданных. Эксперимент....
28 02 2026 1:44:22
Какой рекламный инструмент использовать, чтобы получить максимальный результат...
27 02 2026 21:15:57
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::