#
Экспорт сырых данных
CSV
Эта статья описывает CSV-файлы с сырыми событиями Gravity Field: где они лежат, какие поля есть в выгрузке и какие технические ограничения важно учитывать перед импортом в BI.
#
Как получить выгрузку
Сырые данные доступны в S3-совместимом хранилище:
https://s3.gravityfield.ai/
Данные для авторизации можно получить у команды, сопровождающей ваш проект, или через поддержку Gravity Field.
Для доступа можно использовать:
- MinIO Client: min.io/download
- MinIO API и SDK: MinIO SDK documentation
Время подготовки
Пакетная выгрузка может занимать до нескольких часов, если период содержит большой объем событий.
#
Структура папок
Разовые выгрузки по запросу попадают в:
/<section_id>/batch_data/
Ежедневные выгрузки по расписанию попадают в:
/<section_id>/daily_data/
section_id — идентификатор секции/проекта Gravity Field. В каждой папке создается отдельный CSV-файл на дату, например 2026-05-07.csv.
#
Срок хранения
По текущему генератору ежедневных выгрузок файлы в daily_data удаляются, когда они старше 14 дней.
Разовые выгрузки
Для batch_data срок хранения может зависеть от операционной настройки выгрузки. Если вам нужна гарантия хранения разовой выгрузки дольше стандартного окна, скачайте файл после готовности или уточните срок у поддержки.
#
Формат CSV
Каждая строка файла — одно событие. Файл формируется из событийного хранилища Gravity Field и содержит заголовок с фиксированным порядком колонок.
Импорт CSV
CSV использует запятую , как разделитель и стандартное CSV-экранирование. Не импортируйте файл простым split по запятой: поля eventProperties, eventCart, audiences, sku могут содержать вложенные структуры, массивы и запятые внутри значения.
#
Типы событий
#
Колонки CSV
#
Денежные значения и корзина
eventValue и itemPrice внутри eventCart хранятся в minor units. Например:
eventValue = 78900означает789.00в валютеeventCurrencyeventCart = [('sku-1', 2, 19900)]означает 2 единицы товараsku-1по199.00- сумма строки корзины для отчетов:
quantity * itemPriceMinor / 100
Для события purchase-v1:
eventValue— сумма заказа, которую передала интеграцияeventCart— товары заказаuniqueTransactionId— ключ для дедупликации повторно отправленных покупок
Gravity Field не пересчитывает gross/net, НДС, скидки или возвраты из каталога. В отчетах используется значение, которое было отправлено в событии покупки.
#
Как связывать события
Для пользовательского пути используйте:
uid— основной ключ пользователяsessionId— ключ сессииmoscowTime— порядок событий в raw exportuniqueTransactionId— дедупликация заказов
Для A/B-тестов обычно связывают Variation Impression с последующими Event Hit по uid или sessionId в зависимости от настроек теста.
Для рекомендаций обычно связывают Product Click с последующим purchase-v1 по uid, времени, окну атрибуции и совпадению кликнутого sku с товаром в eventCart.
Подробные рецепты и ограничения описаны в статье Как воспроизвести отчеты из raw data.
#
Ограничения текущего raw export
Некоторые внутренние поля платформы не попадают в CSV. Поэтому часть метрик можно воспроизвести только приблизительно или нельзя воспроизвести из raw export без дополнительной выгрузки.
Что не экспортируется
В CSV нет:
exps— внутренний массив привязки purchase-события к A/B-экспериментуgroupIdиeventCartGroupId— нужны для точногоDirect Revenue (All Variants)slots,fallback,empty slots— нужны для точного расчета fallback/empty response метрик- UTC
timestamp— экспортируется толькоmoscowTime sourceId, referrer и UTM-поля
Также важно учитывать:
variationIdиstrategyIdв raw export содержат только первый элемент массива из события- пустые значения и
000000000000000000000000означают, что поле не применимо к событию - события могут приходить с задержкой, поэтому выгрузки, сделанные в разное время, могут немного отличаться на границах периода
#
Рекомендации по импорту
- Используйте CSV-парсер с поддержкой кавычек и вложенных значений.
- Не меняйте разделитель вручную перед импортом, если BI умеет читать стандартный CSV.
- Приводите
moscowTimeк типу datetime сразу на staging-слое. - Нормализуйте
eventCartв отдельную таблицу строк заказа:eventId,uniqueTransactionId,productId,quantity,itemPriceMinor. - Для денежных метрик создайте отдельные поля
eventValue = eventValueMinor / 100иlineRevenue = quantity * itemPriceMinor / 100. - Для заказов используйте дедупликацию по
uniqueTransactionId, а не поeventId.