Хранение и обновление данных о транзакциях в Google BigQuery

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

О том, как импортировать данные о транзакциях в Google BigQuery, можно узнать из этой статьи.

Хранение CRM данных

Для хранения данных, выгруженных из CRM, рекомендовано использовать партицированную таблицу Google BigQuery. Этот тип таблицы имеет ряд преимуществ при работе с данными по сравнению со стандартной таблицей Google BigQuery. Подробнее читайте ниже.

1. Обычная таблица Google BigQuery (Standard table) проста в создании и управлении. Однако, по мере накопления данных увеличивается размер таблицы, следовательно, возрастают и затраты на обновление и использование данных. Это объясняется тем, что каждый ваш запрос к данным будет сканировать все строки таблицы перед тем, как отдать вам результат.

2. Партицированная по дате таблица Google BigQuery (Date partitioned table) позволяет организовать данные в отдельные разделы (партиции). При этом ваш запрос будет обращаться только к тем разделам таблицы, в которых хранится запрашиваемая информация. Такой подход в значительной мере сокращает объем данных для обработки и увеличивает скорость работы запросов. Вы, в свою очередь, сможете более эффективно прогнозировать и управлять вашими расходами в Google BigQuery.

Для партицирования таблицы по дате:

  • Cоздайте пустую таблицу с описанием всех полей и их типов согласно определению схемы данных.
  • Добавьте к стандартной схеме данных поле типа DATE.
  • В настройках партициий (Partition and cluster settings) выберите опцию партицирования по полю (Partition by field) и укажите поле типа DATE в качестве критерия партицирования. Данная опция доступна только при условии, что в схеме данных таблицы присутствует поле типа DATE.
  • Загрузите в таблицу данные CRM в соответствии с описанной схемой данных.

Подробную инструкцию читайте в документации Google BigQuery.

Дата в поле DATE должна быть указана в соответствии с временной зоной   Представления Google Analytics, выбранного при создании потока стриминга в OWOX BI.

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

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

  • Сущности таблицы

- User (поля user_id, client_id, user_phone, user_email)

- Transaction (поля transaction_*)

- Product (поля product_* и promo_*)

  • Уровни вложенности:

- у каждого User может быть множество Transaction

- у каждой Transaction может быть множество Product

- Product является наиболее глубоким уровнем детализации

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

Обратите внимание, таблица CRM-данных не содержит параметров уровня Session.

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

Обновление CRM данных

В процессе обработки заказа, данные о транзакции в CRM изменяются. Так, транзакция поступает с сайта со статусом in_progress, после чего может переходить в другие промежуточные статусы пока транзакция не будет считаться выкупленной.

Изменение статусов, списка товаров, их цен или количеств следует добавлять в таблицу выгрузки методом append с указанием даты и времени последних изменений в поле transaction_changed.

Период обновления данных зависит от задач, для которых эти данные будут использоваться. Рекомендованная периодичность составляет 1 раз в сутки. Это позволит синхронизировать актуализацию данных CRM c обновлением данных о расходах и сессионном стриминге в Google BigQuery.

Может быть полезным:
Standard SQL в Google BigQuery: преимущества и примеры использования в маркетинге 

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0
Еще есть вопросы? Отправить запрос

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

Войдите в службу, чтобы оставить комментарий.