Добавьте одну строку SQL для оптимизации ваших таблиц BigQuery
Оптимизируйте таблицы BigQuery с помощью одной SQL-строки
Кластеризация: простой способ группировки схожих строк и предотвращения ненужной обработки данных
В моей предыдущей статье я объяснил, как оптимизировать SQL-запросы с помощью разбиения на части:
Используйте разбиения, Люк! Простой и проверенный способ оптимизации SQL-запросов
Если вы когда-либо писали SQL-запрос, который выполняется очень долго, то эта статья для вас
towardsdatascience.com
Теперь я пишу продолжение! (Шутка для папы, кому-нибудь?)
- Samet удостоен премии ACM SIGSPATIAL Lifetime Impact Award
- Проблема исчезающего и взрывающегося градиента Нейронные сети 101
- «Контролируйте затраты на искусственный интеллект через гибкое управление проектами в области науки о данных»
В этой статье мы рассмотрим кластеризацию: еще одну мощную технику оптимизации, которую можно использовать в BigQuery. Как и разбиение на части, кластеризация может помочь вам написать более производительные запросы, которые выполняются быстрее и дешевле. Если вы хотите развивать свой инструментарий SQL и развивать навыки анализа данных на более высоком уровне, это отличное место для начала.
Что такое кластеризованная таблица?
В BigQuery кластеризованная таблица – это таблица, в которой похожие строки группируются вместе в физических “блоках”.
Например, представьте себе таблицу с именем user_signups
, которая отслеживает всех людей, регистрирующих аккаунт на вымышленном веб-сайте. Она имеет четыре столбца:
registration_date
: дата создания аккаунта пользователяcountry
: страна, где пользователь находитсяtier
: план пользователя (“Бесплатный” или “Платный”)username
: имя пользователя
Если мы хотим, мы можем кластеризовать таблицу по полю country
, чтобы пользователи из одной и той же страны находились рядом друг с другом в таблице:
Как видите, каждый “блок” в таблице содержит пользователей из определенной страны. В кластеризованной таблице данные остаются теми же, просто упорядочены более эффективно.
Кластеризация ускоряет наши запросы, потому что BigQuery должен обрабатывать меньше данных
При выполнении запроса к кластеризованной таблице BigQuery сначала определит необходимые блоки для выполнения запроса. Этот предварительный этап, известный как сокращение блоков, делает ваши запросы более быстрыми и дешевыми, потому что BigQuery…