Получение данных из внешних систем Manzana CDP через облачные сервисы S3

Редактировал(а) Татьяна Брыкова 2026/02/12 12:39

Описание принципа работы

Каждый день – в 5-00 (время указано ориентировочное) Московского времени производится выгрузка данных в файлы S3. Файлы – перезаписываемые. Некоторые файлы (такие как chequeitems.csv.gz & bonuses.csv.gz & coupons.csv.gz) содержат инкременты данных. Остальные выгружаются целиком. Все файлы перечисленные ниже денормализованы и очищены. Чеки содержат информацию о бонусах, купонах привязанных к чеку. И наоборот – купоны содержат информацию о чеках , привязанных к купону. Изменение любого атрибута файла чека может повлечь за собой его повторную выгрузку. Поэтому в приемнике необходимо предусмотреть дедубликацию.

Установка и конфигурирование приложения для просмотра данных

Многие программы способны работать с обьектным хранилищем S3. Для примера настроим утилиту WinSCP. Это бесплатная утилита,  которую можно установить на свой компьютер Windows для просмотра содержимого S3 хранилища. ОС Linux & MacOS имеют поддержку S3 на уровне командной строки.

  1. Скачиваем и устанавливаем WinSCP
  2. Создаем соединение:

1767020040254-342.png

3. Выбираем NewSite(1), В выпадающем списке (2) выбираем Amazon S3. Поля Host name, Access key ID & Secret access key будут высланы отдельно.

1767020158651-347.png

4. После подключения к бакету S3 , зайти в директорию содержащую файлы

1767020201266-136.png

5) Все файлы в бакете S3 – это CSV файлы с разделителем comma (,). Некоторые файлы сжаты архиватором GZIP
6) Загружаем к себе на компьютер *.csv.gz файл (кнопка F5)

1767020238198-474.png

7. Разархивируем любым подходящим архиватором – например 7Zip:

1767020277364-150.png

Состав файлов:

Файл contacts.csv.gz

ПолеОписание
contact_idидентификатор контакта
registration_dtдата/время регистрации контакта в ПЛ
instance_idидентификатор инстанса - системное поле
level_idидентификатор текущего уровня контакта
organization_idидентификатор организации контакта
bd_correctпризнак корректности указанного дня рождения контакта
y_bdгод рождения контакта
md_bdмесяц-день рождения контакта
birth_datetimestamp даты рождения контакта
gender_rusпол контакта
number_of_childколичество детей у контакта
email1email
could_check_emailпризнак возможности отправки коммуникации контакту по email (0=невозможно, 1=возможно)
mobile_phoneмобильный телефон
could_check_mobile_phoneпризнак возможности отправки коммуникации контакту по мобильному телефону, учитывая корректность указания мобильного телефона (0=невозможно, 1=возможно)
could_check_mobile_phone_not_maskпризнак возможности отправки коммуникации контакту по мобильному телефону (0=невозможно, 1=возможно)
contact_crm_guidguid контакта
sum_discсумма со скидкой - одноименное поле в loyalty.contact_cur
max_sale_dateдата последней покупки - без учета типа операции покупки
cheque_countколичество чеков - одноименное поле в loyalty.contact_cur
avg_chequeсредний чек со скидкой контакта в коп. - одноименное поле в loyalty.contact_cur
avg_cheque_without_discсредний чек контакта в коп. - одноименное поле в loyalty.contact_cur
bonus_valueколичество бонусов контакта - одноименное поле в loyalty.contact_cur
status_valueколичество статусных бонусов контакта - одноименное поле в loyalty.contact_cur
active_bonus_valueколичество активных бонусов контакта - одноименное поле в loyalty.contact_cur
active_status_valueколичество активных статусных бонусов контакта - одноименное поле в loyalty.contact_cur
first_nameимя контакта
last_nameфамилия контакта
middle_nameотчество контакта
full_nameполное имя контакта
region_idидентификатор региона регистрации контакта
first_shop_dдата первой покупки контакта
last_shop_dдата последней покупки контакта
first_shop_idидентификатор первого магазина покупки
last_shop_idидентификатор последнего магазина покупки
freq_shop_idидентификатор магазина частой покупки
contact_source_idидентификатор источника информации о контакте
contact_sourceназвание источника информации о контакте
eaРА контакта. MAP(key, value)
push_notificationвозможность отправки push уведомлений
orgunit_idидентификатор магазина регистрации
pref_orgunit_idидентификатор магазина предпочитаемых покупок
freq_orgunit_idидентификатор магазина частых покупок
is_email_verifiedпризнак верифицированного email
state_contactстатус контакта
status_codeисточник анкеты контакта
is_walletналичие карты в Wallet
email_hashхэш email контакта
active_contactпризнак активности контакта
defaultcardкарта по умолчанию
agreetoterms_idидентификатор согласия на обработку персональных данных
agreetotermsсогласие на обработку персональных данных
has_anket_scan_idидентификатор наличия скана анкеты
has_anket_scanналичие скана анкеты
mobileappналичие мобильного приложения
allowerecieptсогласие на электронный чек
is_delпризнак удаления контакта
validity_idидентификатор валидности анкеты контакта
validityвалидность анкеты контакта
registration_dДата регистрации контакта в ПЛ
registration_dateДата регистрации контакта в ПЛ (Тип данных Int64)
years_oldКоличество полных лет
days_to_bdКоличество дней до дня рождения. Отрицательное значение - количество дней после дня рождения
days_to_future_bdКоличество дней до ближайшего дня рождения
contact_source_idID источника информации о контакте
contact_sourceНазвание источника информации о контакте
wallet_bind_dateДата привязки карты в приложении Wallet
wallet_unbind_dateДата отвязки карты из приложения  Wallet
contact_crmguidGUID контакта
allownotificationПризнак разрешения на уведомления
unsubhashХэш ссылки на отписку
last_cardПоследняя привязанная карта
dt_loadДата/время последней обработки записи в DWH
contact_typeТип контакта
city_nameНазвание города контакта
mobileverifiedПризнак верификации телефона
timezoneЧасовой пояс
editable_levelПризнак изменения уровня клиента в ручную
phone_hashХеш телефона
cards_countКоличество карт
donotphoneРазрешение на коммуникацию по телефону
participant_statusСтатус участия
check_valid_emailПроверка валидации e-mail
created_onДата создания записи контакта
preferred_hourПредпочитаемые часы целевого действия
modified_onДата изменения контакта
owner_idОтветственный за изменения
subject_idсубъект правоотношений в ML

Файл cards.csv.gz

ПолеОписание
card_idидентификатор бонусной карты
card_nameномер карты
card_type_idидентификатор типа карты
card_typeтип карты
card_status_idидентификатор статуса карты
card_statusстатус карты
card_state_idидентификатор состояния карты
card_stateсостояние карты
master_account_idидентификатор мастер-аккаунта
is_has_masteraccountпризнак наличия мастер-аккаунта
eaрасширенные атрибуты карты. Массив кортежей (ключ, значение)
last_transaction_dateдата последней транзакции по карте
contact_idID контакта
activation_dateДата активации карты
status_dateДата смены статуса
card_levelID уровня карты
bonus_type_idID вида карты
bonus_typeВид карты
card_start_dateДата выпуска карты
dt_loadДата/время последней обработки записи в DWH
is_delПризнак удаленной карты
card_end_dateДата закрытия карты
first_shop_dДата первой покупки
last_shop_dДата последней покупки
first_shop_idID магазина первой покупки контакта
last_shop_idID магазина последней покупки контакта
secondary_idNFC номер карты
emission_task_idИД задания на выпуск карты
card_registration_dateДата регистрации карты

Файл shops.csv.gz

ПолеОписание
orgunit_idидентификатор магазина регистрации контакта
nameназвание магазина
eaРА магазина
date_openдата открытия
cityидентификатор города
regionидентификатор региона
region_nameназвание региона
characteristicsмассив характеристик магазина
external_idвнешний идентификатор товара
addressадрес магазина
opening_timeВремя открытия магазина
closing_timeВремя открытия магазина

Файл campaigns.csv.gz

ПолеОписание
campaign_idидентификатор кампании
campaign_nameназвание кампании
actual_startдата начала кампании
actual_endдата окончания кампании
external_idрасширеный аттрибут кампании
is_activeпризнак активности кампании

Файл rules.csv.gz

ПолеОписание
rule_idидентификатор правила
rule_nameназвание правила
campaign_idID компании
campaign_nameНазвание кампании
date_fromДата начала акции
date_to,Дата окончания акции
owner_idID владельца
is_activeСтатус правила
bonus_typeТип начисляемых бонусов
use_commodity_campaign-
use_personal_campaignСтатус применения персонального предложения
use_certificateСтатус применения сертификата
use_articlesetСтатус применения списка товаров
external_idВнешний идентификатор правила

​​​​​​​Файл articles.csv.gz

ПолеОписание
idидентификатор товара
article_nameназвание товара
extgroup_nameгруппа товара
subgroup_nameподгруппа товара
subcategory_nameподкатегория товара
category_nameкатегория товара
brand_nameбренд товара
ch1характеристика товара 1
ch2характеристика товара 2
ch3характеристика товара 3
ch4характеристика товара 4
external_idвнешний идентификатор товара
extgroup_pidХЭШ группы товара
subcategory_pidХЭШ подгруппы товара
category_pidХЭШ категории товара
extgroup_external_idВнешний ид группы
subgroup_external_idВнешний ид подгруппы
subcategory_external_idВнешний ид подкатегории
category_external_idВнешний ид категории
string1Строковый параметр 1 (параметр относящийся к товару)
source_idИдентификатор не в хэш вариант
min_calc_priceМинимальная расчетная цена (параметр относящийся к товару)
manufacturer_idID Производителя
manufacturer_nameНазвание производителя
icon_urlЗначек URL
guidGUID
source_tableАтрибут таблицы источника данных

​​​​​​​Файл chequeitems_дата_время.csv.gz

ПолеОписание
ch_numberномер чека
dtдата чека
oper_typeтип операции чека. 1=Продажа, 2=Возврат
article_idидентификатор артикула позиции чека
priceцена позиции чека в копейках
quantityколичество товаров позиции чека
summdiscсумма со скидкой позиции чека в копейках
summсумма позиции чека в копейках
discountсумма скидки позиции чека в копейках
cheque_idидентификатор чека
chequeitem_idидентификатор позиции чека
card_idидентификатор карты чека
coupon_numмассив номеров купона чека
ea_chРА чека. Массив кортежей (ключ, значение)
ea_ciРА позиции чека. Массив кортежей (ключ, значение)
bo_chбонус чека. Массив кортежей (сумма бонуса, правило бонуса, кампания бонуса, идентификатор бонуса, признак статусности бонуса, тип бонуса)
bo_ciбонус позиции чека. Массив кортежей (сумма бонуса, правило бонуса, кампания бонуса, идентификатор бонуса, признак статусности бонуса, тип бонуса
shop_idидентификатор магазина
pos_idидентификатор кассового терминала
is_delпризнак удаления позиции чека
contact_idидентификатор контакта на момент покупки. На момент построения отчета может быть неактуальным
oper_type_nameназвание операции чека
position_numberномер позиции чека
dДата
ymДата/время
campaign_idМассив ID кампаний чека/позиции чека
summ_chОбщая сумма чека. Только для фильтрации
summdisc_chОбщая сумма позиции чека. Только для фильтрации
partition_idID партиций
dt_loadДата/время последней обработки позиции чека в DWH
d_loadДата последней обработки позиции чека в DWH
start_of_week_from_thursdayДата начала четверговой недели чека
start_of_monthДата начала месяца чека
paid_by_bonusОплачено бонусами в рублях
mcpМинимальная розничная цена товара
payment_typeМассив из типов и сумм платежей
card_type_idID типа карты
state_contactСтатус контакта - state_contact = 0 условие фильтра, отбирает только активные контакты
is_del_contactПризнак удаления контакта
freq_shopМагазин частых покупок
agreetotermsСогласие контакта на обработку персональных данных
smsМобильный телефон
emailЕ-мэйл
sms_sendРазрешение на коммуникацию по SMS
bonus_balanceБаланс бонусов
max_sale_dateДата последней покупки
region_nameНазвание региона
brand_nameБренд
article_external_idВнешний идентификатор товара

​​​​​​​​​​​​Файл bonuses_дата_время.csv.gz

ПолеОписание
bonus_idидентификатор бонуса начисления
is_deleteпризнак удаления бонуса начисления или списания
valueсумма в копейках бонуса начисления или списания
dt_createdдата/время создания бонуса начисления или списания
d_createdдата создания бонуса начисления или списания
parent_type_idparent_type_id бонуса начисления или списания
rule_idправило бонуса начисления или списания
campaign_idкампания бонуса начисления или списания
is_statusпризнак статусности бонуса начисления или списания
oper_typeтип чека привязанного к бонусу начисления или списания. 1 = продажа, 2 = возврат
chequeitem_idидентификатор позиции чека бонуса начисления или списания
article_idартикул позиции чека бонуса начисления или списания
ea_ciРА позиции чека бонуса начисления или списания. Массив кортежей (ключ, значение)
cheque_idидентификатор чека бонуса начисления или списания
shop_idидентификатор магазина чека бонуса начисления или списания
card_idидентификатор карты бонуса начисления или списания
is_orderпризнак заказа (холдирования) бонуса начисления или списания
source_tableТаблица источник
parent_idID типа баллов
credit_bonus_idID бонуса списания
dt_start_dateДата и время начала действия бонусов ( в секундах) системное поле
d_start_dateДата начала действия бонуса  системное поле
dt_finish_dateДата и время окончания действия бонусов ( в секундах) системное поле
d_finish_dateДата окончания действия бонуса  системное поле
RemainderАктивная порция бонусов (кол-во)
dt_loadДата/время последней обработки записи в DWH
cheque_summСумма чека
cheque_summdiscountedСумма чека со скидкой
ci_quantityКоличество товаров
ci_summСумма позиций в копейках
ci_summdiscountedСумма позиций со скидкой в копейках

​​​​​​​Файл coupons_дата_время.csv.gz​​​​​​​

ПолеОписание
coupon_idидентификатор купона
cu_pbдата начала действия купона
cu_peдата окончания действия купона
cu_created_dдата создания купона
is_activeпризнак активности купона - одноименное поле из лояльности
is_on_bonusпризнак покупки за бонусы - одноименное поле из лояльности
offer_rule_idидентификатор правила предложения
charge_rule_idидентификатор правила начисления
charge_rule_nameназвание правила начисления
emission_task_idидентификатор задания на выпуска купона
emission_task_nameназвание задания на выпуск купона
scheduled_task_idидентификатор задания по расписанию
scheduled_task_nameназвание задания по расписанию
emission_idидентификатор выпуска купона
emission_nameназвание выпуска купона
maskназвание маски
cu_type_nameназвание типа купона
cu_numberномер купона
cu_stateидентификатор статуса купона
cu_state_nameназвание статуса купона
cheque_idидентификатор чека гашения купона
createdon_ch_idидентификатор чека выпуска купона
ch_dдата чека гашения купона
ch_numberномер чека гашения купона
ch_campaign_idидентификатор кампании чека гашения
ch_summсумма чека гашения в копейках
ch_summdсумма чека гашения со скидкой в копейках
ch_orgunit_idидентификатор магазина гашения купона
ch_pos_idидентификатор терминала гашения купона
ch_card_idидентификатор карты лояльности из чека гашения
cu_card_idидентификатор карты лояльности из купона
cu_contact_idидентификатор контакта из купона
campaign_nameназвание кампании
cu_is_delпризнак удаления купона
ch_is_delпризнак удаления чека гашения
template_nameНазвание шаблона
bonus_paidСтоимость купона
cu_cancellation_dtДата и время гашения купона (не из чека)
cu_orgunit_idID магазина выпуска купона
dt_loadдата загрузки строки в витрину (дефолтное значение)
bonus_status_typeТип бонусов (статусные и бонусные)
benefit_typeТип бенефита
benefit_valueЗначение бенефита