MDLZ-2059: Документация по API проекта «Matreshka» ¶
1. Расписание и описание реализации потока данных¶
1.1. Общее описание¶
Для предоставления доступа к данным для проекта «Matreshka» используется два API Endpoint'а. Данные возвращаются в формате JSON. Обновление данных на Endpoint'ах происходит на ежедневной основе.
1.2. Сведения о Endpoint'ах¶
-
Авторизация:
- Осуществляется по bearer token:
R9jEc3K7Fy5r5zRpvEXjg6yTzDmxSDua
- Осуществляется по bearer token:
-
ProductBrand:
- URL:
https://mdlz.ics-it.ru/mdlz/api/v1/matreshka/productbrand - Пример выгрузки JSON:
- URL:
[
{
"BrandCode": "ALPEN GOLD BISCUITS",
"BrandName": "RUBSAB"
},
{
"BrandCode": "BARNY",
"BrandName": "RUBSBR"
},
{
"BrandCode": "PLB MARKET",
"BrandName": "RUPSMT"
}
]
- Vendor:
- URL:
https://mdlz.ics-it.ru/mdlz/api/v1/matreshka/vendors - Пример выгрузки JSON:
- URL:
[
{
"VendorCode": "PLRU81",
"VendorName": "JSC \"FM LOGISTICS VOSTOK\" MON’DELEZ RUS LLC",
"TaxNumber": "3321020710",
"VatNumber": null,
"DeletionFlagCentral": null,
"AuthorizationGroupCentral": "ZRED",
"HierarchyALevel3Code": null,
"HierarchyALevel3Name": null,
"HierarchyALevel4Code": null,
"HierarchyALevel4Name": null,
"HierarchyALevel5Code": null,
"HierarchyALevel5Name": null
},
{
"VendorCode": "T6435609",
"VendorName": "ООО АРСЕНАЛ",
"TaxNumber": "5012032327",
"VatNumber": null,
"DeletionFlagCentral": "X",
"AuthorizationGroupCentral": "ZTRD",
"HierarchyALevel3Code": null,
"HierarchyALevel3Name": null,
"HierarchyALevel4Code": null,
"HierarchyALevel4Name": null,
"HierarchyALevel5Code": null,
"HierarchyALevel5Name": null
},
{
"VendorCode": "T6435808",
"VendorName": "ООО ЯРОСЛАВСКИЕ МАГАЗИНЫ",
"TaxNumber": "7604069907",
"VatNumber": null,
"DeletionFlagCentral": "X",
"AuthorizationGroupCentral": "ZTRD",
"HierarchyALevel3Code": "RU20K",
"HierarchyALevel3Name": "TANDER GROUP",
"HierarchyALevel4Code": "RU20103",
"HierarchyALevel4Name": "DIXI",
"HierarchyALevel5Code": "RU2010301",
"HierarchyALevel5Name": "DISCOUNT CENTRE YAROSLAVL"
}
]
2. Условия фильтрации и источники ProductBrand¶
2.1. Источник данных¶
Используется объект: Safir_RU.dbo.dimProductSalesData
2.2. Условия фильтрации¶
- По статусу активности:
- Выбираются только записи со статусом '02' или '03'
- По коду категории:
- Исключаются записи с незаполненной иерархией
3. Условия фильтрации и источники Vendor¶
3.1. I этап. Формирование списка Vendor¶
Объекты-источники:
Safir_RU.dbo.dimVendorsSafir_RU.DataST.dimCountries
Условия фильтрации:
- По коду страны:
- Выбираются только записи со значением
RU
- Выбираются только записи со значением
- По группе авторизации:
- Исключаются записи со значением
PERS,ZEMP
- Исключаются записи со значением
3.2. II этап. Источник данных для Sales иерархии¶
Объекты-источники:
Safir_RU.dbo.dimCustomersSafir_RU.DataST.dimSalesOrganizationsSafir_RU.DataST.dimDistributionChannelsSafir_RU.dbo.dimCustomerSalesData
Условия фильтрации:
- По коду иерархии:
- Выбираются записи со значением
RU20,RU30,RU50,RUEXP10
- Выбираются записи со значением
- По флагу удаления:
- Исключаются записи со значением
X
- Исключаются записи со значением
Выбор иерархии:
- Берется первая иерархия по приоритету
- 1 = SalesOrganizationCode =
Ru01 - 2 = SalesOrganizationCode =
Ru09 - 3 = SalesOrganizationCode like
Ru* - 4 = любая другая
- 1 = SalesOrganizationCode =
- В случае нескольких иерархии внутри одной Sales Organization применяется дополнительная приоритезация:
- 1 = DistributionChannelCode =
20 - 2 = DistributionChannelCode =
40 - 3 = DistributionChannelCode =
30 - 4 = DistributionChannelCode =
99 - 5 = любая другая
- 1 = DistributionChannelCode =
Расшифровка кодов:
- Safir_RU.dbo.dimCustomerSalesData
| HierarchyALevel2Code | Description |
|---|---|
RU20 |
RETAIL |
RU30 |
AFH |
RU50 |
ECOM |
RUEXP10 |
OTHER_EXPORT |
- Safir_RU.DataST.dimSalesOrganizations
| Code | Description |
|---|---|
RU01 |
MI Russia |
RU09 |
MI Russia Export |
- Safir_RU.DataST.dimDistributionChannels
| Code | Description |
|---|---|
20 |
Retail |
30 |
AFH |
40 |
Distributors |
99 |
Inter company |
3.3 Мэппинг Vendor c Customer и Sales иерархией¶
- Связь устанавливается по правилу:
- Из VendorCode и CustomerCode удаляются лидирующие нули: 0000101384 → 101384
- К CustomerCode добавляется префикс 'T'
- Результирующий мэппинг: VendorCode = 'T' + CustomerCode
4. Процесс запуска и источники обновления¶
4.1 Схема потока данных¶

4.2 Сервер arrumosapp17¶
4.2.1. Расписание импорта¶
Импорт данных из базы Safir_RU выполняется с помощью задачи (Job) в SQL Agent Job: DWH_CSL_ETL в шаге Import Matreshka Data. Запуск производится после завершения основного ETL процесса (~ 05:00 по московскому времени / GMT+3)
4.2.2. Импорт данных из базы Safir_RU в базу DCore_DWH_SA¶
| Объекты в Safir_RU | Объекты в DCore_DWH_SA | |
|---|---|---|
dbo.dimVendors |
→ | safirru.dbo_dimVendors |
dbo.dimProductSalesData |
→ | safirru.dbo_dimProductSalesData |
dbo.dimCustomerSalesData |
→ | safirru.dbo_dimCustomerSalesData |
dbo.dimCustomers |
→ | safirru.dbo_dimCustomers |
datast.dimDistributionChannels |
→ | safirru.datast_dimDistributionChannels |
datast.dimCountries |
→ | safirru.datast_dimCountries |
datast.dimSalesOrganizations |
→ | safirru.datast_dimSalesOrganizations |
4.2.3. Импорт данных в HistoryArea в режиме "добавление и обновление"¶
- Объекты в DCore_DWH_HA:
safirru.dbo_dimVendorssafirru.dbo_dimProductSalesDatasafirru.dbo_dimCustomerSalesDatasafirru.dbo_dimCustomerssafirru.datast_dimDistributionChannelssafirru.datast_dimCountriessafirru.datast_dimSalesOrganizations
4.2.4. Формирование набора данных для передачи на сервер PhotoTool¶
- Представления в базе DCore_DWH:
matreshka.vw_Vendorsmatreshka.vw_ProductBrand
4.2.5. Экспорт данных на сервер PhotoTool¶
Экспорт данных выполняется в автоматическом режиме ежедневно в 17:00 по московскому времени (GMT+3) с помощью задачи (Job) в SQL Server Agent: DWH_Export_MD_to_PhotoTool в шаге Export Matreshka Data
4.3 Сервер Phototool¶
4.3.1. Формирование Endpoint'ов API с авторизацией по bearer token для экспорта¶
https://mdlz.ics-it.ru/mdlz/api/v1/matreshka/productbrandhttps://mdlz.ics-it.ru/mdlz/api/v1/matreshka/vendors