bigquery что это такое google

Обзор основных функций Google BigQuery и примеры запросов для маркетинг-анализа

Google BigQuery – это быстрое, экономичное и масштабируемое хранилище для работы с Big Data, которое вы можете использовать, если у вас нет возможности или желания содержать собственные серверы. В нем можно писать запросы с помощью SQL-like синтаксиса, стандартных и пользовательских функций (User-defined function).

В статье я расскажу про основные функции BigQuery и покажу их возможности на конкретных примерах. Вы сможете писать базовые запросы, и опробовать их на demo данных.

Что такое SQL и какие у него диалекты

SQL (Structured Query Language) — язык структурированных запросов для работы с базами данных. С его помощью можно получать, добавлять в базу и изменять большие массивы данных. Google BigQuery поддерживает два диалекта: Standard SQL и устаревший Legacy SQL.

Какой диалект выбрать, зависит от ваших предпочтений, но Google рекомендует использовать Standard SQL из-за ряда преимуществ:

По умолчанию запросы в Google BigQuery запускаются на Legacy SQL.

Переключиться на Standard SQL можно несколькими способами:

С чего начать

Чтобы вы смогли потренироваться запускать запросы параллельно с чтением статьи, я подготовила для вас таблицу с demo-данными. Загрузите данные из таблицы в ваш проект Google BigQuery.

Если у вас еще нет проекта в GBQ, создайте его. Для этого понадобится активный биллинг-аккаунт в Google Cloud Platform. Понадобится привязать карту, но без вашего ведома деньги с нее списываться не будут, к тому же при регистрации вы получите 300$ на 12 месяцев, который сможете потратить на хранение и обработку данных.

Функции Google BigQuery

При построении запросов чаще всего используются следующие группы функций: Aggregate function, Date function, String function и Window function. Теперь подробнее о каждой из них.

Функции агрегирования данных (Aggregate function)

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

Вот самые популярные функции из этого раздела:

Legacy SQLStandard SQLЧто делает функция
AVG(field)AVG([DISTINCT] (field))Возвращает среднее значение столбца field.В Standard SQL при добавлении условия DISTINCT среднее считается только для строк с уникальными (не повторяющимися) значениями из столбца field
MAX(field)MAX(field)Возвращает максимальное значение из столбца field
MIN(field)MIN(field)Возвращает минимальное значение из столбца field
SUM(field)SUM(field)Возвращает сумму значений из столбца field
COUNT(field)COUNT(field)Возвращает количество строк в столбце field
EXACT_COUNT_DISTINCT(field)COUNT([DISTINCT] (field))Возвращает количество уникальных строк в столбце field

С перечнем всех функций вы можете ознакомиться в справке: Legacy SQL и Standard SQL.

Давайте посмотрим на примере demo данных, как работают перечисленные функции. Вычислим средний доход по транзакциям, покупки с наибольшей и наименьшей суммой, общий доход и количество всех транзакций. Чтобы проверить, не дублируются ли покупки, рассчитаем также количество уникальных транзакций. Для этого пишем запрос, в котором указываем название своего Google BigQuery проекта, набора данных и таблицы.

В итоге получаем такие результаты:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Проверить результаты расчетов вы можете в исходной таблице с demo данными, используя стандартные функции Google Sheets (SUM, AVG и другие) или сводные таблицы.

Как видим из скриншота выше, количество транзакций и уникальных транзакций отличается.
Это говорит о том, что в нашей таблице есть 2 транзакции, у которых дублируется transactionId:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Поэтому, если вас интересуют именно уникальные транзакции, используйте функцию, которая считает уникальные строки. Либо вы можете сгруппировать данные с помощью выражения GROUP BY, чтобы избавиться от дублей перед тем, как применять функцию агрегации.

Функции для работы с датами (Date function)

Эти функции позволяют обрабатывать даты: менять их формат, выбирать необходимую часть (день, месяц или год), смещать дату на определенный интервал.

Они могут вам пригодится в следующих случаях:

Legacy SQLStandard SQLЧто делает функция
CURRENT_DATE()CURRENT_DATE()Возвращает текущую дату в формате %ГГГГ-%ММ-%ДД
DATE(timestamp)DATE(timestamp)Преобразует дату из формата %ГГГГ-%ММ-%ДД %Ч:%M:%С. в формат %ГГГГ-%ММ-%ДД
DATE_ADD(timestamp, interval, interval_units)DATE_ADD(timestamp, INTERVAL interval interval_units)Возвращает дату timestamp, увеличивая ее на указанный интервал interval.interval_units.

В Legacy SQL может принимать значения YEAR, MONTH, DAY, HOUR, MINUTE и SECOND, а в Standard SQL — YEAR, QUARTER, MONTH, WEEK, DAYDATE_ADD(timestamp, — interval, interval_units)DATE_SUB(timestamp, INTERVAL interval interval_units)Возвращает дату timestamp, уменьшая ее на указанный интервал intervalDATEDIFF(timestamp1, timestamp2)DATE_DIFF(timestamp1, timestamp2, date_part)Возвращает разницу между двумя датами timestamp1 и timestamp2.
В Legacy SQL возвращает разницу в днях, а в Standard SQL — в зависимости от указанного значения date_part (день, неделя, месяц, квартал, год)DAY(timestamp)EXTRACT(DAY FROM timestamp)Возвращает день из даты timestamp. Принимает значения от 1 до 31 включительноMONTH(timestamp)EXTRACT(MONTH FROM timestamp)Возвращает порядковый номер месяца из даты timestamp. Принимает значения от 1 до 12 включительноYEAR(timestamp)EXTRACT(YEAR FROM timestamp)Возвращает год из даты timestamp

Список всех функций – в справке: Legacy SQL и Standard SQL.

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

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

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Функции для работы со строками (String function)

Строковые функции позволяют формировать строку, выделять и заменять подстроки, рассчитывать длину строки и порядковый номер индекса подстроки в исходной строке.

Например, с их помощью можно:

Legacy SQLStandard SQLЧто делает функция
CONCAT(‘str1’, ‘str2’) или’str1’+ ‘str2’CONCAT(‘str1’, ‘str2’)Объединяет несколько строк ‘str1’ и ‘str2’ в одну
‘str1’ CONTAINS ‘str2’REGEXP_CONTAINS(‘str1’, ‘str2’) или ‘str1’ LIKE ‘%str2%’Возвращает true если строка ‘str1’ содержит строку ‘str2’.
В Standard SQL строка ‘str2’ может быть записана в виде регулярного выражения с использованием библиотеки re2
LENGTH(‘str’ )CHAR_LENGTH(‘str’ )
или CHARACTER_LENGTH(‘str’ )
Возвращает длину строки ‘str’ (количество символов в строке)
SUBSTR(‘str’, index [, max_len])SUBSTR(‘str’, index [, max_len])Возвращает подстроку длиной max_len, начиная с символа с индексом index из строки ‘str’
LOWER(‘str’)LOWER(‘str’)Приводит все символы строки ‘str’ к нижнему регистру
UPPER(str)UPPER(str)Приводит все символы строки ‘str’ к верхнему регистру
INSTR(‘str1’, ‘str2’)STRPOS(‘str1’, ‘str2’)Возвращает индекс первого вхождения строки ‘str2’ в строку ‘str1’, иначе — 0
REPLACE(‘str1’, ‘str2’, ‘str3’)REPLACE(‘str1’, ‘str2’, ‘str3’)Заменяет в строке ‘str1’ подстроку ‘str2’ на подстроку ‘str3’

Разберем на примере demo данных, как использовать описанные функции. Предположим, у нас есть 3 отдельных столбца, которые содержат значения дня, месяца и года:
bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google
Работать с датой в таком формате не очень удобно, поэтому объединим ее в один столбец. Чтобы сделать это, используйте SQL-запросы, приведенные ниже, и не забудьте подставить в них название своего проекта, набора данных и таблицы в Google BigQuery.

После выполнения запроса мы получим дату в одном столбце:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Часто при загрузке определенной страницы на сайте в URL записываются значения переменных, которые выбрал пользователь. Это может быть способ оплаты или доставки, номер транзакции, индекс физического магазина, в котором покупатель хочет забрать товар и т. д. С помощью SQL-запроса можно выделить эти параметры из адреса страницы.

Рассмотрим два примера, как и зачем это делать.

Пример 1. Предположим, мы хотим узнать количество покупок, при которых пользователи забирают товар из физических магазинов. Для этого нужно посчитать количество транзакций, отправленных со страниц, в URL которых есть подстрока shop_id (индекс физического магазина). Делаем это с помощью следующих запросов:

Из полученной в результате таблицы мы видим, что со страниц, содержащих shop_id, отправлено 5502 транзакции (check = true):

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Пример 2. Допустим, вы присвоили каждому способу доставки свой delivery_id и прописываете значение этого параметра в URL страницы. Чтобы узнать, какой способ доставки выбрал пользователь, нужно выделить delivery_id в отдельный столбец.
Используем для этого следующие запросы:

В результате получаем в Google BigQuery такую таблицу:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Функции для работы с подмножествами данных или оконные функции (Window function)

Эти функции похожи на функции агрегирования, которые мы рассмотрели выше. Их основное отличие заключается в том, что вычисления проводятся не на всем множестве данных, выбранных с помощью запроса, а на его части — подмножестве или окне.

С помощью оконных функций вы можете агрегировать данные в разрезе групп, не используя оператор JOIN для объединения нескольких запросов. Например, рассчитать средний доход в разрезе рекламных кампаний, количество транзакций в разрезе устройств. Добавив еще одно поле в отчет, вы сможете легко узнать, к примеру, долю дохода от рекламной кампании на Black Friday или долю транзакций, сделанных из мобильного приложения.

Вместе с каждой функцией в запросе необходимо прописывать выражение OVER, которое определяет границы окна. OVER содержит 3 компоненты, с которыми вы можете работать:

Legacy SQLStandard SQLЧто делает функция
AVG(field)
COUNT(field)
COUNT(DISTINCT field)
MAX()
MIN()
SUM()
AVG([DISTINCT] (field))
COUNT(field)
COUNT([DISTINCT] (field))
MAX(field)
MIN(field)
SUM(field)
Возвращает среднее значение, количество, максимальное, минимальное и суммарное значение из столбца field в рамках выбранного подмножества.

DISTINCT используется, если нужно посчитать только уникальные (неповторяющиеся) значения‘str1’ CONTAINS ‘str2’REGEXP_CONTAINS(‘str1’, ‘str2’) или ‘str1’ LIKE ‘%str2%’Возвращает true если строка ‘str1’ содержит строку ‘str2’.
В Standard SQL строка ‘str2’ может быть записана в виде регулярного выражения с использованием библиотеки re2DENSE_RANK()DENSE_RANK()Возвращает номер строки в рамках подмножестваFIRST_VALUE(field)FIRST_VALUE (field[ NULLS])Возвращает значение первой строки из столбца field в рамках подмножества.

По умолчанию строки с пустыми значениями из столбца field включаются в расчет. RESPECT или IGNORE NULLS определяет, включать или игнорировать строки со значением NULLLAST_VALUE(field)LAST_VALUE (field [ NULLS])Возвращает значение последней строки из столбца field в рамках подмножества.

По умолчанию строки с пустыми значениями из столбца field включаются в расчет. RESPECT или IGNORE NULLS определяет, включать или игнорировать строки со значением NULLLAG(field)LAG (field[, offset [, default_expression]])Возвращает значение предыдущей строки по отношению к текущей из столбца field в рамках подмножества.

Offset определяет количество строк, на которое необходимо смещаться вниз по отношению к текущей строке. Является целым числом.

Default_expression — значение, которое будет возвращать функция, если в рамках подмножества нет необходимой строкиLEAD(field)LEAD (field[, offset [, default_expression]])Возвращает значение следующей строки по отношению к текущей из столбца field в рамках подмножества.

Offset определяет количество строк, на которое необходимо смещаться вверх по отношению к текущей строке. Является целым числом.

Default_expression — значение, которое будет возвращать функция, если в рамках текущего подмножества нет необходимой строки

Список всех функций вы можете посмотреть в справке для Legacy SQL и для Standard SQL: Aggregate Analytic Functions, Navigation Functions.

Пример 1. Допустим, мы хотим проанализировать активность покупателей в рабочее и нерабочее время. Для этого необходимо разделить транзакции на 2 группы и рассчитать интересующие нас метрики:

Подмножество (окно)clientIdDayTime
1 окноclientId 1Рабочее время
2 окноclientId 2Нерабочее время
3 окноclientId 3Рабочее время
4 окноclientId 4Нерабочее время
N окноclientId NРабочее время
N+1 окноclientId N+1Нерабочее время

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

Посмотрим, что получилось в результате, на примере одного из пользователей с clientId=’102041117.1428132012′. В исходной таблице по этому пользователю у нас были следующие данные:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Применив запрос, мы получили отчет, который содержит средний, минимальный, максимальный и суммарный доход с этого пользователя, а также количество транзакций. Как видно на скриншоте ниже, обе транзакции пользователь совершил в рабочее время:
bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Пример 2. Теперь немного усложним задачу:

Результаты расчетов проверим на примере уже знакомого нам пользователя с clientId=’102041117.1428132012′:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Из скриншота выше мы видим, что:

Выводы

В этой статье мы рассмотрели самые популярные функции из разделов Aggregate function, Date function, String function, Window function. Однако в Google BigQuery есть еще много полезных функций, например:

Источник

Обзор основных функций Google&nbspBigQuery — тренируемся писать запросы для&nbspмаркетинг-анализа

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Соберите все данные для сквозной аналитики вместе с OWOX BI

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое googlebigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое googlebigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое googlebigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Соберите все данные для сквозной аналитики вместе с OWOX BI

Чем больше информации накапливает бизнес, тем острее встает вопрос, где ее хранить. Если у вас нет возможности или желания содержать собственные серверы, выручит Google BigQuery. Это быстрое, экономичное и масштабируемое хранилище для работы с Big Data, в котором можно писать запросы с помощью SQL-like синтаксиса, стандартных и пользовательских функций (User-defined function).

В этой статье мы рассмотрим основные функции BigQuery и покажем их возможности на конкретных примерах. Вы узнаете, как писать базовые запросы, и сможете опробовать их на demo данных.

Стройте отчеты на данных GBQ без технической подготовки и знаний SQL

Вам регулярно нужны отчеты по рекламным кампаниям, но нет времени изучать SQL? C OWOX BI Smart Data вам не нужно разбираться в структуре данных. Просто выберите в конструкторе отчетов параметры и показатели, которые хотите видеть в отчете. Сервис мгновенно выдаст в ответ понятный график и таблицу.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Содержание

Что такое SQL и какие у него диалекты

SQL (Structured Query Language) — язык структурированных запросов для работы с базами данных. С его помощью можно получать, добавлять в базу и изменять большие массивы данных. Google BigQuery поддерживает два диалекта: Standard SQL и устаревший Legacy SQL.

Какой диалект выбрать, зависит от ваших предпочтений, но Google рекомендует использовать Standard SQL, так как он обладает преимуществами:

Подробнее о разнице между диалектами вы можете узнать в справке.

Читайте также: в чем преимущества нового SQL-диалекта Google BigQuery перед старым, и какие бизнес-задачи вы сможете решать с его помощью.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

По умолчанию запросы в Google BigQuery запускаются на Legacy SQL.

Переключиться на Standard SQL можно несколькими способами:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

С чего начать

Чтобы вы могли параллельно тренироваться и запускать запросы вместе с нами, мы подготовили таблицу с demo данными. Заполните форму, и мы пришлем таблицу вам на email.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

бонус для читателей

Набор demo данных для тренировки с SQL запросами

Скачайте demo данные и загрузите их в ваш проект Google BigQuery. Проще всего это сделать с помощью аддона OWOX BI BigQuery Reports.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Если у вас еще нет проекта в GBQ, создайте его. Для этого понадобится активный биллинг-аккаунт в Google Cloud Platform. Пусть вас не пугает, что нужно привязать банковскую карту — без вашего ведома ничего с нее не спишется. Кроме того, при регистрации вы получите 300$ на 12 месяцев, который сможете потратить на хранение и обработку данных.

OWOX BI поможет вам объединить в BigQuery данные из разных систем: действия пользователей на сайте, звонки и заказы из CRM, email-рассылки и расходы на рекламу. Вы сможете настроить сквозную аналитику и автоматизировать отчеты любой сложности.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Прежде, чем переходить к функциям Google BigQuery, давайте вспомним, как выглядят базовые запросы в зависимости от диалекта:

ВопросыLegacy SQLStandard SQL
Какие поля выбрать из таблицыSELECT field​1,field2SELECT field​1,field2
Из какой таблицы выбрать поляFROM [projectID:dataSet.tableName]FROM `projectID.dataSet.tableName`
По какому параметру отфильтровать значенияWHERE field​1=valueWHERE field​1​=value
По каким полям сгруппировать результатыGROUP BY field​1, field2GROUP BY field​1, field2
В каком порядке сортировать результатыORDER BY field1 ASC (по возрастанию)
или DESC (по убыванию)
ORDER BY field1 ASC (по возрастанию)
или DESC (по убыванию)

Функции Google BigQuery

При построении запросов чаще всего используются следующие группы функций: Aggregate function, Date function, String function и Window function. Рассмотрим каждую группу подробнее.

Читайте также: как начать работу с облачным хранилищем — создаем набор данных и таблицы, настраиваем импорт и экспорт данных в Google BigQuery.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Функции агрегирования данных (Aggregate function)

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

В таблице мы привели самые популярные функции из этого раздела:

Legacy SQLStandard SQLЧто делает функция
AVG(field)AVG([DISTINCT] (field))Возвращает среднее значение столбца field.В Standard SQL при добавлении условия DISTINCT среднее считается только для строк с уникальными (не повторяющимися) значениями из столбца field
MAX(field)MAX(field)Возвращает максимальное значение из столбца field
MIN(field)MIN(field)Возвращает минимальное значение из столбца field
SUM(field)SUM(field)Возвращает сумму значений из столбца field
COUNT(field)COUNT(field)Возвращает количество строк в столбце field
EXACT_COUNT_DISTINCT(field)COUNT([DISTINCT] (field))Возвращает количество уникальных строк в столбце field

С перечнем всех функций вы можете ознакомиться в справке: Legacy SQL и Standard SQL.

Давайте посмотрим на примере demo данных, как работают перечисленные функции. Вычислим средний доход по транзакциям, покупки с наибольшей и наименьшей суммой, общий доход и количество всех транзакций. Чтобы проверить, не дублируются ли покупки, рассчитаем также количество уникальных транзакций. Для этого пишем запрос, в котором указываем название своего Google BigQuery проекта, набора данных и таблицы.

В итоге получаем такие результаты:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Проверить результаты расчетов вы можете в исходной таблице с demo данными, используя стандартные функции Google Sheets (SUM, AVG и другие) или сводные таблицы.

Как видим из скриншота выше, количество транзакций и уникальных транзакций отличается. Это говорит о том, что в нашей таблице есть 2 транзакции, у которых дублируется transactionId:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Поэтому, если вас интересуют именно уникальные транзакции, используйте функцию, которая считает уникальные строки. Либо вы можете сгруппировать данные с помощью выражения GROUP BY, чтобы избавиться от дублей перед тем, как применять функцию агрегации.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

бонус для читателей

Набор demo данных для тренировки с SQL запросами

Функции для работы с датами (Date function)

Эти функции позволяют обрабатывать даты: менять их формат, выбирать необходимую часть (день, месяц или год), смещать дату на определенный интервал.

Они могут вам пригодится в следующих случаях:

Функции для работы с датами, используемые чаще всего:

Список всех функций вы найдете в справке: Legacy SQL и Standard SQL.

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

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

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Читайте также: примеры отчетов, которые можно построить с помощью SQL-запросов к данным в Google BigQuery. А также, какими уникальными метриками можно дополнить данные Google Analytics благодаря OWOX BI.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Функции для работы со строками (String function)

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

Самые популярные функции для работы со строками:

Legacy SQLStandard SQLОписание функции
CONCAT(‘str1’, ‘str2’) или’str1’+ ‘str2’CONCAT(‘str1’, ‘str2’)Объединяет несколько строк ‘str1’ и ‘str2’ в одну
‘str1’ CONTAINS ‘str2’REGEXP_CONTAINS(‘str1’, ‘str2’) или ‘str1’ LIKE ‘%str2%’Возвращает true если строка ‘str1’ содержит строку ‘str2’.
В Standard SQL строка ‘str2’ может быть записана в виде регулярного выражения с использованием библиотеки re2
LENGTH(‘str’ )CHAR_LENGTH(‘str’ )
или CHARACTER_LENGTH(‘str’ )
Возвращает длину строки ‘str’ (количество символов в строке)
SUBSTR(‘str’, index [, max_len])SUBSTR(‘str’, index [, max_len])Возвращает подстроку длиной max_len, начиная с символа с индексом index из строки ‘str’
LOWER(‘str’)LOWER(‘str’)Приводит все символы строки ‘str’ к нижнему регистру
UPPER(str)UPPER(str)Приводит все символы строки ‘str’ к верхнему регистру
INSTR(‘str1’, ‘str2’)STRPOS(‘str1’, ‘str2’)Возвращает индекс первого вхождения строки ‘str2’ в строку ‘str1’, иначе — 0
REPLACE(‘str1’, ‘str2’, ‘str3’)REPLACE(‘str1’, ‘str2’, ‘str3’)Заменяет в строке ‘str1’ подстроку ‘str2’ на подстроку ‘str3’

Детальнее со всеми строковыми функциями вы можете ознакомиться в справке: Legacy SQL и Standard SQL.

Разберем на примере demo данных, как использовать описанные функции. Предположим, у нас есть 3 отдельных столбца, которые содержат значения дня, месяца и года:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Работать с датой в таком формате не очень удобно, поэтому объединим ее в один столбец. Чтобы сделать это, используйте SQL-запросы, приведенные ниже, и не забудьте подставить в них название своего проекта, набора данных и таблицы в Google BigQuery.

После выполнения запроса мы получим дату в одном столбце:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Часто при загрузке определенной страницы на сайте в URL записываются значения переменных, которые выбрал пользователь. Это может быть способ оплаты или доставки, номер транзакции, индекс физического магазина, в котором покупатель хочет забрать товар и т. д. С помощью SQL-запроса можно выделить эти параметры из адреса страницы. Рассмотрим два примера, как и зачем это делать.

Пример 1. Предположим, мы хотим узнать количество покупок, при которых пользователи забирают товар из физических магазинов. Для этого нужно посчитать количество транзакций, отправленных со страниц, в URL которых есть подстрока shop_id (индекс физического магазина). Делаем это с помощью следующих запросов:

Из полученной в результате таблицы мы видим, что со страниц, содержащих shop_id, отправлено 5502 транзакции (check = true):

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Пример 2. Допустим, вы присвоили каждому способу доставки свой delivery_id и прописываете значение этого параметра в URL страницы. Чтобы узнать, какой способ доставки выбрал пользователь, нужно выделить delivery_id в отдельный столбец.

Используем для этого следующие запросы:

В результате получим в Google BigQuery такую таблицу:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

бонус для читателей

Набор demo данных для тренировки с SQL запросами

Функции для работы с подмножествами данных или оконные функции (Window function)

Эти функции похожи на функции агрегирования, которые мы рассмотрели выше. Их основное отличие заключается в том, что вычисления проводятся не на всем множестве данных, выбранных с помощью запроса, а на его части — подмножестве или окне.

С помощью оконных функций вы можете агрегировать данные в разрезе групп, не используя оператор JOIN для объединения нескольких запросов. Например, рассчитать средний доход в разрезе рекламных кампаний, количество транзакций в разрезе устройств. Добавив еще одно поле в отчет, вы сможете легко узнать, к примеру, долю дохода от рекламной кампании на Black Friday или долю транзакций, сделанных из мобильного приложения.

Вместе с каждой функцией в запросе необходимо прописывать выражение OVER, которое определяет границы окна. OVER содержит 3 компоненты, с которыми вы можете работать:

В этой таблице мы собрали оконные функции, используемые чаще всего:

Legacy SQLStandard SQLОписание функции
AVG(field)
COUNT(field)
COUNT(DISTINCT field)
MAX()
MIN()
SUM()
AVG([DISTINCT] (field))
COUNT(field)
COUNT([DISTINCT] (field))
MAX(field)
MIN(field)
SUM(field)
Возвращает среднее значение, количество, максимальное, минимальное и суммарное значение из столбца field в рамках выбранного подмножества.

DISTINCT используется, если нужно посчитать только уникальные (неповторяющиеся) значения

DENSE_RANK()DENSE_RANK()Возвращает номер строки в рамках подмножества
FIRST_VALUE(field)FIRST_VALUE (field[ NULLS])Возвращает значение первой строки из столбца field в рамках подмножества.

По умолчанию строки с пустыми значениями из столбца field включаются в расчет. RESPECT или IGNORE NULLS определяет, включать или игнорировать строки со значением NULL

LAST_VALUE(field)LAST_VALUE (field [ NULLS])Возвращает значение последней строки из столбца field в рамках подмножества.

По умолчанию строки с пустыми значениями из столбца field включаются в расчет. RESPECT или IGNORE NULLS определяет, включать или игнорировать строки со значением NULL

LAG(field)LAG (field[, offset [, default_expression]])Возвращает значение предыдущей строки по отношению к текущей из столбца field в рамках подмножества.

Offset определяет количество строк, на которое необходимо смещаться вниз по отношению к текущей строке. Является целым числом.

Default_expression — значение, которое будет возвращать функция, если в рамках подмножества нет необходимой строки

LEAD(field)LEAD (field[, offset [, default_expression]])Возвращает значение следующей строки по отношению к текущей из столбца field в рамках подмножества.

Offset определяет количество строк, на которое необходимо смещаться вверх по отношению к текущей строке. Является целым числом.

Default_expression — значение, которое будет возвращать функция, если в рамках текущего подмножества нет необходимой строки

Список всех функций вы можете посмотреть в справке для Legacy SQL и для Standard SQL: Aggregate Analytic Functions, Navigation Functions.

Пример 1. Допустим, мы хотим проанализировать активность покупателей в рабочее и нерабочее время. Для этого необходимо разделить транзакции на 2 группы и рассчитать интересующие нас метрики:

Кроме рабочего и нерабочего времени, еще одним признаком для формирования окна будет clientId, то есть на каждого пользователя у нас получится по два окна:

Подмножество (окно)clientIdDayTime
1 окноclientId 1Рабочее время
2 окноclientId 2Нерабочее время
3 окноclientId 3Рабочее время
4 окноclientId 4Нерабочее время
N окноclientId NРабочее время
N+1 окноclientId N+1Нерабочее время

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

Посмотрим, что получилось в результате, на примере одного из пользователей с clientId=’102041117.1428132012′. В исходной таблице по этому пользователю у нас были следующие данные:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

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

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Пример 2. Теперь немного усложним задачу:

Для этого используем следующие запросы:

Результаты расчетов проверим на примере уже знакомого нам пользователя с clientId=’102041117.1428132012′:

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Из скриншота выше мы видим, что:

Полезные статьи о Google BigQuery:

Если вы хотите собирать несемплированные данные с сайта в Google BigQuery, но не знаете с чего начать, запишитесь на демо. Мы расскажем вам о всех возможностях, которые вы получите с BigQuery и OWOX BI.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

Наши клиенты
растут на

Растите быстрее, анализируя, что лучше сработает в вашем маркетинге

Измеряйте KPI, находите зоны роста и увеличивайте свой ROI

Выводы

В этой статье мы рассмотрели самые популярные функции из разделов Aggregate function, Date function, String function, Window function. Однако в Google BigQuery есть еще много полезных функций, например:

О них мы обязательно еще напишем в нашем блоге, а пока вы можете опробовать на demo данных все функции, описанные в этой статье.

bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google bigquery что это такое google. Смотреть фото bigquery что это такое google. Смотреть картинку bigquery что это такое google. Картинка про bigquery что это такое google. Фото bigquery что это такое google

бонус для читателей

Набор demo данных для тренировки с SQL запросами

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *