NetPeak Biz Tech    


Партиционирование таблиц в Google BigQuery — понятная инструкция

Партиционирование таблиц в Google BigQuery — понятная инструкция

< >

Знаете, как максимально продуктивно и экономно работать с данными в Google BigQuery с помощью разделения больших таблиц на партиции? В этой статье я расскажу, как создавать партиции и обращаться к конкретной партиции на обоих SQL-диалектах BigQuery.

Google BigQuery — это облачная база данных для хранения и быстрой обработки больших объемов информации. Как правило, стоимость использования облачной базы данных не превышает $5 в месяц даже при хранении и обработке достаточно больших объемов данных. Но при неправильном и неэффективном использовании инструментария оплата обходится в сумму в десять раз большую, чем вы ожидали.

Партиционирование — это разделение большой таблицы на части (партиции). Логически вы работаете с таблицей разбитой на партиции точно так же, как и с обычной, но физически эта таблица состоит из отдельных файлов (разделов) и в нужный момент вы получаете данные из тех разделов, в которых хранится запрашиваемая информация.

Такое разделение таблицы нужно для экономии ресурсов и ускорения работы запросов, а в случае с BigQuery — еще и для экономии денег за оплату обработанных данных.

Если вы не делите таблицу на партиции, то запрос будет сканировать все строки таблицы перед тем, как отдать вам результат. Если таблица разделена на партиции, и вам необходимо обработать данные из нескольких партиций, то запрос обратится за данными именно к этим частям таблицы, и объем данных для обработки будет значительно меньше.

Как создать таблицу с партициями в Google BigQuery

Создать таблицу из нескольких частей очень просто. Для этого в интерфейсе BigQuery при создании новой таблицы в опциях укажите формирование партиций по дням.

Таблица с такой опцией будет содержать дополнительный столбец _PARTITIONTIME с датой записи строки в таблицу. Именно по значению этого поля автоматически сформируются партиции.

Название поля _PARTITIONTIME — зарезервированное. Поэтому обратиться к нему без присвоения псевдонима нельзя. Воспользуйтесь комaндой AS, чтобы получить значения данного поля.

Пример запроса:

SELECT _PARTITIONTIME AS pt, id, value FROM Test_WF.part_test

Пример результата выполнения запроса:

По результату запроса видно, что столбец pt (это переименованный с помощью комaнды AS виртуальный столбец _PARTITIONTIME) содержит два значения: «2017-12-13 00:00:00 UTC» и «2017-12-14 00:00:00 UTC».

Таблица Test_WF.part_test на данный момент разделена на две партиции:

  • строки с id 1-5 и значением «2017-12-13 00:00:00 UTC» — первая часть (эти данные загружены в таблицу 13 декабря 2017 года) ;
  • строки с id 6-10 и значением «2017-12-14 00:00:00 UTC» входят во вторую партицию (данные загружены в таблицу 14 декабря 2017 года).

На первый взгляд, для пользователя это обычная таблица с физическим разделением (данные хранятся в разных файлах), но пользователь работает со всеми частями точно так же, как и работал бы с одной.

По умолчанию вся информация будет записываться в партицию, которая соответствует дате загрузки данных в таблицу. Для загрузки информации в партиции, сформированные в прошлом периоде, укажите партицию вместе с названием набора данных и таблицы через специальный знак разделитель $.

Например, для добавления записи в таблицу партиции от 1 декабря 2017 года запишем в Test_WF.part_test$20171201.

Как обращаться к партициям

BigQuery поддерживает два SQL-диалекта, поэтому рассмотрим, как обращаться к конкретной партиции на обоих диалектах.

В Legacy SQL укажите нужную партицию после имени таблицы через знак $.

Пример запроса:

SELECT *FROM Test_WF.part_test$20171213

Пример результата выполнения запроса:

Этот запрос вернул все строки из партиции, в которую были загружены данные 13 декабря 2017 года.

В стандартном SQL вы можете обращаться к партициям в блоке WHERE.

Пример запроса:

SELECT * FROM Test_WF.part_test WHERE _PARTITIONTIME = \"2017-12-13\"

Пример результата выполнения запроса:

Чтобы получить данные сразу из нескольких партиций, обратитесь к полю _PARTITIONTIME в блоке WHERE. Этот способ работает как в Standart ,так и в Legacy SQL.

SELECT * FROM TABLE_DATE_RANGE(Test_WF.my_table, TIMESTAMP(\"2017-12-13\"), TIMESTAMP(\"2017-12-14\"))

Пример результата выполнения запроса:

Функции подстановки таблиц (Table Wildcard Function) поддерживаются только в Legacy SQL. Используйте виртуальное поле _TABLE_SUFFIX для обращения к отдельным партициям из таблицы, разбитой на разделы описанном в этом блоке способом.

Пример запроса:

SELECT * FROM `Test_WF.my_table*` WHERE _TABLE_SUFFIX BETWEEN \"20171213\" AND \"20171214\"

Пример результата выполнения запроса:

Для перечисления любых суффиксов таблиц используйте поле _TABLE_SUFFIX и оператор IN.

Пример запроса:

SELECT * FROM `Test_WF.my_table*` WHERE _TABLE_SUFFIX IN (\"20171213\", \"20171214\")

Пример результата выполнения запроса:

Название партиции удобно выводить в результате запроса.

Пример запроса:

SELECT *, _TABLE_SUFFIX as TableSuffix FROM `Test_WF.my_table*` WHERE _TABLE_SUFFIX BETWEEN \"20171213\" AND \"20171214\"

Пример результата выполнения запроса:

Как пользоваться партиционированием таблиц

Партиции здорово помогают при составлении оперативной отчетности за фиксированный период, например, за последние 7 или 30 дней.

Для экономии ресурсов вы можете создать представление, которое будет возвращать данные за определенное количество дней, например за последние 7 или 30 дней.

Представление в SQL — это виртуальная таблица без данных с текстом SQL-запроса. Вы можете работать с результатом выполнения этого запроса, как с обычной таблицей базы данных.

Для создания представления в Google BigQuery напишите в редакторе запросов текст SQL-запроса и нажмите «Save View».

Укажите DataSet, в котором будет создано представление, и задайте имя представления.

Готово! Созданное вами представление появится в указанном наборе данных и вы сможете обращаться к нему, как обычной таблице.

Преимущество такого подхода очевидно: хранение данных в партициях, к которым вы не обращались более 90 дней, стоит в BigQuery на 50% дешевле. При этом счетчик времени сбрасывается при любом обращении к партиции: будь-то запрос, изменение, запись или копирование данных.

Для реализации подхода и получения данных за последние 7 дней воспользуйтесь примерами запросов для Legacy- и Standart-диалектов.

В Legacy SQL запрос будет выглядеть так:

SELECT * FROM Test_WF.part_test WHERE _PARTITIONTIME BETWEEN TIMESTAMP(UTC_USEC_TO_DAY(NOW() - 7 * 60 * 60 * 24 * 1000000)) AND TIMESTAMP(UTC_USEC_TO_DAY(CURRENT_TIMESTAMP()))

В Standart SQL условие WHERE будет выглядеть немного иначе:

SELECT * FROM Test_WF.part_test WHERE _PARTITIONTIME BETWEEN TIMESTAMP_TRUNC(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 * 24 HOUR),DAY) AND TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(),DAY)

Выводы

Партиционировать таблицы очень просто. Для этого в интерфейсе BigQuery при создании новой таблицы в опциях укажите формирование партиций по дням. Затем при запросе данных из таблицы с помощью соответствующего SQL-диалекта задайте нужную партицию после имени таблицы через символ $ или дату в формате ГГГГММДД.

При работе с партициями учитывайте ограничения:

  • одна таблица может иметь не более 2500 разделов (партиций) ;
  • партицию можно обновлять не более 2000 раз в сутки;
  • частота обновлении партиции не более 50 обновлений в течении 10 секунд.

Партиционирование для таблиц с большим количеством строк сэкономит ваши деньги и повысит производительность выполнения запросов к данным. Стоимость хранения разделов, которые не обновлялись более 90 дней на 50% дешевле, чем хранение данных, которыми вы пользуетесь регулярно.

Этот пост впервые опубликован в 2018 году. Обновлен в 2021-ом. Если вы обнаружили здесь неактуальную информацию, напишите об этом в комментариях.



Комментарии:

Зачем заказывать сбор семантического ядра у агентства

Зачем заказывать сбор семантического ядра у агентства Когда и зачем нужно заказывать сбор семантического ядра, на какие этапы разбит процесс и какие результаты можно получить...

16 07 2026 3:48:46

Почему Google Merchant Center может заблокировать аккаунт

Почему Google Merchant Center может заблокировать аккаунт На что обращает внимание система и менеджеры Google при проверке сайта и аккаунта....

15 07 2026 7:51:19

Как привлечь на 174% больше звонков с помощью видеорекламы — кейс клиники лазерной косметологии Goldlaser.com.ua

Как привлечь на 174% больше звонков с помощью видеорекламы — кейс клиники лазерной косметологии Goldlaser.com.ua Клиникка использует лазеры и нуждается в продвижении. В специфических сферах привлечь потребителя впервые бывает сложнее и дороже, чем удержать его. Этот кейс о том, как повысить количество обращений новых клиентов с помощью видеорекламы...

14 07 2026 5:31:36

Сколько стоил клик Яндекс.Директ и Google Ads в Казахстане в четвертом квартале 2017 года

Сколько стоил клик Яндекс.Директ и Google Ads в Казахстане в четвертом квартале 2017 года Почти 3 миллиона клика в 24 тематиках в 15 городах Казахстана. Читайте новое исследование нашего аналитика....

13 07 2026 21:23:14

Спарта, поза гирлянды и микрочип: реклама июня-2021

Спарта, поза гирлянды и микрочип: реклама июня-2021 Чем удивляла, радовала и смешила реклама в социальных сетях в июне 2021 года...

12 07 2026 4:47:37

Какие списки ремаркетинга выбрать — исследование

Какие списки ремаркетинга выбрать — исследование Что мы узнали после 19 миллионов показов рекламных объявлений по разным спискам ремаркетинга....

11 07 2026 22:55:26

Рекламные кампании для масштабирования бизнеса в интернете

Рекламные кампании для масштабирования бизнеса в интернете Главные вопросы при запуске и настройке любых кампаний: «чего я хочу достичь?», «помогает ли текущая кампания достичь желаемых результатов?», «влияет ли кампания на эффективность других кампаний и источников?». Узнать больше....

10 07 2026 20:47:56

Как делать картинки для соцсетей в Canva

Как делать картинки для соцсетей в Canva Как быстро залить изображение, сделать красивую иллюстрацию, наложить надпись к любому тексту онлайн?...

09 07 2026 17:36:36

Ремаркетинг в поисковой сети Google для ecommerce проекта: ROMI 514%

Ремаркетинг в поисковой сети Google для ecommerce проекта: ROMI 514% В аккаунте ***ytics появилась возможность подключения ремаркетинга в поисковой сети Google. Расскажем о результатах применения инструмента на примере кейса крупного проекта ecommerce....

08 07 2026 20:59:35

Первопроходцы в нише ремонта мобильных телефонов в Казахстане — история Satel.kz

Первопроходцы в нише ремонта мобильных телефонов в Казахстане — история Satel.kz Satel является одним из топовых игроков онлайн-маркета, но на старте интернет в качестве канала продаж не рассматривался. Когда онлайн запустили на полную? Узнать!...

07 07 2026 15:20:17

Язык R в интернет-маркетинге — дайджест полезных публикаций

Язык R в интернет-маркетинге — дайджест полезных публикаций Как сэкономить время, ресурсы, и сделать онлайн-маркетинг эффективнее с помощью языка R...

06 07 2026 14:19:31

Как стать партнером Netpeak Alliance

Как стать партнером Netpeak Alliance Новая партнерская программа Netpeak agency. Как получить теплого лида, стабильный пассивный доход, разместить свой логотип и ссылку на сайт на сайте Netpeak и другие бонусы партнерской программы. Узнать больше!...

05 07 2026 2:32:10

Как быстро найти ошибки на сайте — проверка важных тегов с помощью Google Tag Manager и таблиц Google

Как быстро найти ошибки на сайте — проверка важных тегов с помощью Google Tag Manager и таблиц Google Тестирования наличия важных тегов на целевых страница — бесплатный скрипт и алгоритм...

04 07 2026 9:25:11

Стили управления по Ицхаку Адизесу

Стили управления по Ицхаку Адизесу Менеджмент и лидерство: 4 разных типа руководства организацией и нескучные иллюстрации в стиле South park....

03 07 2026 14:51:47

Редакционная политика Netpeak Journal — как писать так, чтобы вас хотели читать, а не править

Редакционная политика Netpeak Journal — как писать так, чтобы вас хотели читать, а не править Редполитика Netpeak Journal (ex блог Netpeak) — руководство по написанию понятных, полезных, продающих и удобочитаемых текстов. Документ для внутреннего использования в открытом доступе. Применяйте, адаптируйте. Читать!...

02 07 2026 13:38:35

Авторские права на веб-сайт — как защитить свой ресурс

Авторские права на веб-сайт — как защитить свой ресурс Надежный сайт позволит вести успешную деятельность, защитить плоды собственного труда и результаты работы исполнителей, с которыми вы сотрудничали. Для реализации задумки вам понадобятся авторские права....

01 07 2026 11:21:13

Как увеличить продажи на 75% с помощью внутренней оптимизации сайта — кейс maxi.az

Как увеличить продажи на 75% с помощью внутренней оптимизации сайта — кейс maxi.az Увеличение трафика из поисковых систем Азербайджана на 30% за три месяца. И он продолжает расти...

30 06 2026 22:56:12

Сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане в четвертом квартале 2018 года

Сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане в четвертом квартале 2018 года Новое исследование стоимости клика в Казахстане в четвертом квартале 2018 года...

29 06 2026 2:39:32

Кейс: заказ цветов с доставкой, SEO-продвижение сайта с ROMI 132%

Кейс: заказ цветов с доставкой, SEO-продвижение сайта с ROMI 132% SEO-продвижение интернет-сайта, где можно заказать доставку цветов. Оплатой за трафик под Россию, Украину, Казахстан, Армению, Грузию...

28 06 2026 1:55:59

Главные требования к мобильной версии сайта

Главные требования к мобильной версии сайта Если у интернет-магазина, форума да и любого другого сайта нет мобильной версии, почти 40 процентов пользователей будут искать другой ресурс. Как удержать их? Узнать!...

27 06 2026 22:35:18

Как показать пользователю статистику Google ***ytics, не открывая доступ? Мануал

Как показать пользователю статистику Google ***ytics, не открывая доступ? Мануал Вам тоже нужно предоставлять отчеты о работе рекламной кампании, посещение сайтов? Держите три примера работы с Google ***ytics и понятных отчета по ним, которые можно продемонстрировать, не открывая доступ к аккаунту....

26 06 2026 10:41:38

Как анализировать личные расходы с помощью Airtable R и PowerBI

Как анализировать личные расходы с помощью Airtable R и PowerBI Создать BI-систему собственного кошелька. Для ввода и хранения данных выбор стоял между Google Forms и Google Sheets или Airtable.Читайте дальше, что выбрал автор, чтобы оптимизировать расход, планировать траты на месяц и контролировать результаты в PowerBI....

25 06 2026 8:24:57

Тактики видеомаркетинга — как покорить алгоритм YouTube

Тактики видеомаркетинга — как покорить алгоритм YouTube Отмена видео-сниппетов в выдаче Google, удаление страницы с тегами и инструмента подсказки ключевых слов в YouTube — все события последних месяцев свидетельствуют: Google всерьёз взялся за видеохостинги и решил изменить правила игры для видеомаркетинга в...

24 06 2026 2:47:23

93 шага к идеальному интернет-магазину — детальный чек-лист

93 шага к идеальному интернет-магазину — детальный чек-лист Открытие проверенных действий по увеличению продаж...

23 06 2026 20:22:41

Как покорить Бразилию — советы Depositphotos

Как покорить Бразилию — советы Depositphotos Идем в Бразилию: опыт Depositphotos + полезные факты....

22 06 2026 11:44:54

Настраиваем эффективную рекламу в контекстно-медийной сети Google — шесть полезных советов

Настраиваем эффективную рекламу в контекстно-медийной сети Google — шесть полезных советов кмс Google: как достичь поставленной цели с помощью рекламы? Делимся советам по настройке КМС-кампаний....

21 06 2026 5:32:50

5 фишек Google ***ytics для SEO-специалистов

5 фишек Google ***ytics для SEO-специалистов Как прокачать свои знания и навыки использования GA, чтобы оптимизировать сайт и получать больше (намного больше, чем сейчас) трафика, конверсий, вовлечения. Больше!...

20 06 2026 21:55:43

Сeкc и эpoтика, магия, тренер-олень, и даже ребус! Апрельская реклама с блоком 18+

Чем шокировала, радовала и удивляла реклама в социальных сетях и контекстная в Google в апреле 2021 года...

19 06 2026 19:45:57

Что такое SMM и как работает маркетинг в социальных сетях

Всё что нужно знать про SMM...

18 06 2026 13:43:52

Продвижение мобильного приложения — шпаргалка для строителей воронок продаж

Продвижение мобильного приложения — шпаргалка для строителей воронок продаж С помощью этой шпаргалки вы легко распределите акценты и начнете последовательно внедрять маркетинговую стратегию по продвижению мобильного приложения...

17 06 2026 15:25:22

Как установить пиксель Facebook и Instagram — отслеживаем целевые действия

Как установить пиксель Facebook и Instagram — отслеживаем целевые действия Пиксель Facebook — инструмент аналитики рекламной системы, который можно использовать и для Instagram....

16 06 2026 20:36:12

Увольнение сотрудника. Алгоритм действий от Netpeak

Сотрудник не справляется? Значит с ним пора прощаться. Эмоции в сторону, действуем по алгоритму....

15 06 2026 11:10:39

На что обратить внимание при выборе движка для сайта

На что обратить внимание при выборе движка для сайта Готовые коробочные решения — отличная идея, которая решает много задач, а ещё это относительно недорого. Но такой вариант подойдет далеко не всем. Узнать больше!...

14 06 2026 17:47:51

Как оптимизировать YouTube-канал

Как оптимизировать YouTube-канал Инструкция по технической подготовке к продвижению...

13 06 2026 14:36:30

Семь улучшений Netpeak: пять стратегий по контекстной рекламе, три по SEO и три новых курса Академии блога

Семь улучшений Netpeak: пять стратегий по контекстной рекламе, три по SEO и три новых курса Академии блога Информация для бизнесменов, интернет-маркетологов и всех, кто интересуется продвижением бизнеса в интернете....

11 06 2026 1:35:28

Outreach — что это такое и как наладить процесс продвижения

Кратко об аутрич-продвижении? Размещайте полезный контент с ссылками на ваш сайт на качественных ресурсах. Хотите подробности — читайте новую статью....

10 06 2026 13:52:31

Малкольм Гладуэлл о гениях и аутсайдерах

Малкольм Гладуэлл о гениях и аутсайдерах Миллионы решили купить книгу гении и аутсайдеры на Amazon: удивительное исследование канадского журналиста...

09 06 2026 19:37:48

Как сделать отчет для поиска перспективных товаров

Как сделать отчет для поиска перспективных товаров Как регулярно мониторить перспективные товары, по которым можно запускать контекстную рекламу...

08 06 2026 20:26:58

Как быстро и бесплатно импортировать в Google Таблицы статистику из Facebook

Понадобится всего пару минут, чтобы создать отчет о тратах, количестве конверсий или любых других важных показателях. Понятная инструкция для PPC-специалистов и про возможности и ограничения бесплатной версии расширения. Читайте дальше!...

07 06 2026 18:43:15

Как успешно вести блог в Instagram

Как успешно вести блог в Instagram Успешный блог помогает продавать товары и услуги, формировать сильный личный бренд, делиться своим опытом и задавать тренды. Осталось выбрать цель. Узнать как!...

06 06 2026 17:52:55

От идеи роутера для цифровых кочевников до продаж на Amazon — история Nommi и фаундеров компании

От идеи роутера для цифровых кочевников до продаж на Amazon — история Nommi и фаундеров компании Nommi — сокращение от nomadic MiFi: роутер для современных цифровых кочевников...

04 06 2026 10:38:31

Мобильные приложения: как собрать данные на этапе MVP, чтобы было с чем идти к инвестору

Мобильные приложения: как собрать данные на этапе MVP, чтобы было с чем идти к инвестору Как протестировать MVP мобильного приложения, получить обратную связь и сформировать гипотезы...

03 06 2026 17:48:22

Как определить ключевую метрику LTV перед запуском Apple Search Ads

Как определить ключевую метрику LTV перед запуском Apple Search Ads Расчет прогноза по LTV позволит более точно задать параметры рекламной кампании в Apple Search Ads на начальном этапе. Как это делают в RadASO, читайте в статье....

02 06 2026 14:47:59

Как международному бренду занять свое место на новом рынке и в перегретой нише — SEO-кейс Domino’s Pizza

Как международному бренду занять свое место на новом рынке и в перегретой нише — SEO-кейс Domino’s Pizza Для одной компании смена description это что-то пустяковое. Здесь же — настоящий бренд-менеджмент....

01 06 2026 0:11:34

Как готовить баннеры для мобильной рекламы

Как готовить баннеры для мобильной рекламы Как сделать креативный мобильный баннер. Зачем нужны особенные баннеры для мобильных? Что делать с картинкой? Что делать с текстом? Что делать с другими рекламными форматами? Дополнительные элементы. Обо всем этом детально и спримерами...

31 05 2026 10:35:14

Новая реальность: боты принимают на работу и ходят на свидания

Новая реальность: боты принимают на работу и ходят на свидания История свидания двух ботов как иллюстрация развития искусственного интеллекта...

30 05 2026 11:57:31

TikTok, Banda, Rocket, I am IDEA и McCann Kyiv — идеи для видеоконтента

TikTok, Banda, Rocket, I am IDEA и McCann Kyiv — идеи для видеоконтента Инсайты Диви Конф 2021, онлайн-конференции о видеомаркетинге....

29 05 2026 1:57:19

Что такое 500 Internal Server Error

Что такое 500 Internal Server Error Ошибка, которая может привести к полной потере контроля над вашим сайтом. Рассказываем, что это такое, какие могут быть причины поломки и как исправить. Узнать больше!...

28 05 2026 22:33:23

Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::