16 KiB
16 KiB
База знаний: полная структура SQL (mag_pbi) и Power BI
Извлечено из
analytics/sql_db_mag_pbi/mag_pbi_schema.sqlиanalytics/pbi/. Независимый справочник для трассировки метрик и работы с данными.
1. Схемы базы данных mag_pbi
| Схема | Назначение |
|---|---|
pbi |
Основные таблицы и представления для Power BI |
analytics |
Дефицит, прогноз, аналитика за 365 дней |
pbiProd |
Сводная себестоимость, производство |
ostatki |
Резервы, очереди сборок, склад |
sebest |
Себестоимость до 2022 |
stg |
Staging (загрузка прогноза) |
artem |
Дополнительные данные |
dbo |
Стандартные таблицы |
2. Таблицы (CREATE TABLE)
2.1 Схема pbi
| Таблица | Ключевые колонки |
|---|---|
pbi.pricelist |
Цена, Вид цены, 1c_id, artic_id, Дата, _Period |
pbi.Себестоимость |
id, Период, Статья, Вид операции, artic_id, Количество, Сумма, Закупка, Учетная цена, Номер заказа |
pbi.СебестоимостьПродажи |
id, 1c_id, artic_id, Количество, Закупка, sebes_id |
pbi.ostatki_short |
artic_id, 1c_id, Code, sklad, Категория склада, upakovok, quantity, date |
pbi.enums |
— |
pbi.nomenclature |
artic_id, 1c_id, code, description, group_id, Цена учетная руб/usd, minAvailableQty |
pbi.groups |
group_id, path, 1c_id |
pbi.w_ostatok_da_net |
dt, _IDRREF, artic_id, quantity, upakovok, ostatok, sellable_stock |
pbi.content_rating |
— |
pbi.direct_adv_costs |
— |
pbi.direct_orders |
— |
pbi.nomenclatureVolumeStorehouse |
— |
pbi.ostatki |
Остатки полные |
pbi.ostatki_mp |
Остатки МП |
pbi.Turnover |
— |
pbi.Себестоимость2023, Себестоимость2024 |
— |
pbi.СебестоимостьДо2022Тест |
— |
pbi.СебестоимостьСводныйОт2022Тестовый |
— |
pbi.СебестоимостьПродажиОт2022 |
— |
pbi.СебестоимостьПродажиТест, СебестоимостьТест |
— |
2.2 Схема analytics
| Таблица | Ключевые колонки |
|---|---|
analytics.forecast |
id, scenario_id, 1c_id, code, month, value |
analytics.forecast_scenarios |
scenario_id, name |
analytics.deficit_proposal |
scenario_id, 1c_id, code, place_month, arrival_month, order_qty, projected_stock_at_T |
analytics.stock_plan_by_arrival |
— |
analytics.аналитика за 365 дн. |
Агрегаты ROIC, ТН, средний остаток |
analytics.manufacturers |
— |
analytics.manufacturer_payment_stage |
— |
analytics.manufacturer_counterparty_map |
— |
analytics.deficit_money_request |
scenario_id, manufacturer_id, contractor_1c_id, arrival_month, amount_rub/usd |
analytics.forecast_history |
— |
analytics.load_log_w_ostatok_da_net |
— |
analytics.sales_weekly_features |
— |
analytics.seasonality_groups |
— |
analytics.seasonality_groups_summ_1 |
— |
analytics.stock_balance |
— |
analytics.прогноз из excel |
— |
analytics.срез учетных цен |
— |
2.3 Схема pbiProd
| Таблица | Назначение |
|---|---|
pbiProd.СебестоимостьСводныйОт2022 |
Сводная себестоимость |
pbiProd.СебестоимостьОт2022 |
Себестоимость от 2022 |
pbiProd.СебестоимостьДо2022 |
До 2022 |
pbiProd.СебестоимостьПроизводствоОт2022 |
Производство |
pbiProd.СебестоимостьИтогиДо2022 |
— |
pbiProd.УчетнаяЦенаПоСебестоимости |
— |
pbiProd.GroupsOfNomenclature |
— |
pbiProd.НоменклатураВПроизводствеПоУровням |
— |
2.4 Схема stg
| Таблица | Назначение |
|---|---|
stg.forecast_load |
Staging загрузки прогноза из Excel |
2.5 Схема dbo
| Таблица | Назначение |
|---|---|
dbo.content_rating, grades_quartal |
— |
dbo.lineage_edges, lineage_objects |
— |
dbo.order_source, site_product |
— |
dbo.Turnover |
— |
dbo.yandex_direct_criteria_stats |
— |
3. Представления (CREATE VIEW)
3.1 Схема pbi
| View | Источник / логика |
|---|---|
pbi.[Себестоимость+СебестоимостьПродаж] |
pbi.Себестоимость + СебестоимостьПродажи, подстановка цен из pricelist |
pbi.ОстаткиTotal |
ostatki_short, накопительный итог по складу/artic_id |
pbi.БазоваяУпаковка |
Габариты из MAG_2019 |
pbi.Заказы_тех |
Заказы поставщику |
pbi.РекламаМаркетплейсы |
Реклама МП |
pbi.Стоимость обработки заказа |
Стоимость МП |
pbi.Резервы |
Резервы |
pbi.Заказы |
Заказы |
pbi.Заявки_на_оплату |
Заявки |
pbi.Внешние остатки |
Внешние остатки |
pbi.Расходы по годам |
Расходы |
pbi.node_mp |
Узлы МП |
pbi.Внешние продажи |
Продажи МП |
pbi.nomeclature_for_pbi |
Номенклатура для PBI |
pbi.Заказы в заявках |
— |
pbi.[Себестоимость+СебестоимостьПродажОт2022] |
— |
pbi.Сборки, Сборки_комплекты |
— |
pbi.значения доп реквизитов номенклатуры |
— |
pbi.Сохраненные настройки 1С для PowerBI |
— |
3.2 Схема analytics
| View | Назначение |
|---|---|
analytics.get_forecast_by_group |
Прогноз по группе (forecast + nomenclature + groups) |
analytics.get_forecast_scenarios |
Сценарии |
analytics.get_orders_list |
Список заказов |
analytics.get_analytics_by_group |
Аналитика по группе |
analytics.get_orders_by_group |
Заказы по группе (входящие) |
analytics.deficit_orders |
deficit_proposal + nomenclature (цена, сумма) |
analytics.nomenclature |
— |
analytics.Внешние остатки |
— |
analytics.Остатки МП |
— |
analytics.Где товар |
— |
analytics.Заявки_на_оплату |
— |
analytics.Заявки_без_проекта_неоплачено |
— |
analytics.Ожидаемый расход |
— |
analytics.Ожидаемое_поступление |
— |
analytics.ForecastBasesKs |
Базы прогноза |
analytics.doprekvizit, doprekvizitvalues |
— |
analytics.images |
— |
analytics.Курсы валют на сегодня |
— |
analytics.Проекты |
— |
analytics.v_manufacturers_roi_compat |
— |
analytics.v_contractors, v_producers |
— |
analytics.v_manufacturer_counterparty_mapping |
— |
3.3 Схема pbiProd
| View | Назначение |
|---|---|
pbiProd.[СводныйСебестоимость Для PBI] |
Основной источник Себестоимости в PBI |
pbiProd.СводныйСебестоимость |
— |
pbiProd.ИтогСебестоимостьПродажОт2022 |
— |
3.4 Схема ostatki
| View | Назначение |
|---|---|
ostatki.РезервыМПиОПТ |
Резервы МП и ОПТ |
ostatki.OstatkiMarketSklad |
— |
ostatki.МаркировкаОчередьВРАботе |
— |
ostatki.НаСогласовании |
— |
ostatki.ОчередьНаСборкуРазборку |
— |
ostatki.СборкиРазборкиВРаботе |
— |
ostatki.СобираетсяИКСборке |
— |
ostatki.СобраноНеОплачено |
— |
ostatki.ТоварыВПеремещении |
— |
4. Хранимые процедуры
4.1 analytics — дефицит и прогноз
| Процедура | Назначение |
|---|---|
analytics.sp_build_deficit_proposal |
Расчёт дефицита и рекомендаций к заказу |
analytics.sp_fill_deficit_money_request |
Заполнение заявок на оплату по дефициту (manufacturers + contractor) |
analytics.sp_rebuild_stock_plan_by_arrival |
План остатков по месяцам прихода |
analytics.sp_run_deficit_all_skus |
Пересчёт дефицита по всем SKU |
analytics.sp_build_forecast_s4_by_group |
Прогноз по группе |
analytics.sp_загрузка_прогноза_закупки |
Загрузка прогноза из Excel |
analytics.create_seasonality_groups |
Сезонность по группам |
analytics.sp_create_analytics_365 |
Аналитика за 365 дней |
analytics.sp_load_koef_groups |
Коэффициенты групп |
analytics.sp_recalc_roic |
Пересчёт ROIC |
analytics.sp_report_ROI |
Отчёт ROI |
analytics.Подготовка таблицы продаж к прогнозу |
Подготовка продаж |
4.2 pbi — миграция
| Процедура | Назначение |
|---|---|
pbi.migrate_ostatki |
Миграция остатков |
pbi.migrate_nomenclature |
Миграция номенклатуры |
pbi.migrate_groups |
Миграция групп |
pbi.migrate_pricelist |
Миграция прайс-листа |
pbi.migrate_stock_balance |
— |
pbi.migrate_max_year_quantity |
— |
pbi.migrate_uchet_summa |
— |
pbi.создание среза учетных цен |
Срез учётных цен |
pbi.[Заполнить себестоимостьОт2022(закупки+продажи)] |
— |
pbi.[Заполнить себестоимостьОт2022(СкладХранение)] |
— |
pbi.РасчетСебестоимостиОт2022 |
— |
4.3 pbiProd — себестоимость
| Процедура | Назначение |
|---|---|
pbiProd.ЗаполнитьСебестоимостьСводныйОт2022 |
— |
pbiProd.[Пакетное: ...] |
Различные этапы заполнения себестоимости |
pbiProd.[Подготовка Производство: ...] |
Подготовка производства |
4.4 sebest — себестоимость до 2022
| Процедура | Назначение |
|---|---|
sebest.Заполнить себестоимость до 2022 |
— |
sebest.Заполнить себестоимость закупкой/продажей |
— |
sebest.Расчет себестомисти |
— |
5. Power BI — таблицы и источники
5.1 Таблицы модели (из TMDL)
| Таблица PBI | Режим | SQL источник |
|---|---|---|
| Номенклатура | import | pbi.nomeclature_for_pbi |
| Партнер | import | pbi.Партнеры |
| Стоимость МП | import | pbi.[Стоимость обработки заказа] |
| Себестоимость | import | pbiProd.[СводныйСебестоимость Для PBI] |
| Основной отчет | import | Calculated (placeholder) |
| Группы | import | pbi.groups |
| Остатки | import | pbi.ostatki_short |
| Заявки на оплату | import | pbi.Заявки_на_оплату |
| План продаж менеджеров | import | pbi.ПланПродажМенеджеров |
| План продаж по группам | import | pbi.ПланыПродажПоГруппам |
| Менеджеры | import | pbi.users_1C |
| mp остатки | import | pbi.Внешние остатки |
| mp аналитика продаж | import | pbi.[Внешние продажи] |
| ПРАЙСлист | import | pbi.pricelist |
| Упущенные продажи | import | pbi.w_ostatok_da_net (+ трансформации) |
| Заказы все | import | pbi.Заказы |
| mp реклама | import | pbi.РекламаМаркетплейсы |
| План маркеты | import | — |
| Резервы | import | pbi.Резервы |
| Расходы по годам | import | pbi.[Расходы по годам] |
| Я.Директ расходы | import | pbi.direct_adv_costs |
| Я.Директ заказы | import | pbi.direct_orders |
| mp узел | import | pbi.node_mp |
| mp оборот | import | pbi.[Внешний оборот] |
| .Календарь | calculated | Calendar |
| LocalDateTable_* | calculated | Calendar по диапазону полей |
| Организация | calculated | VALUES(Себестоимость[Организация]) |
| Закупки | calculated | — |
| Параметр цена продажи, % | calculated | GENERATESERIES(-20, 20, 0.5) |
5.2 Сервер
- Sql.Database("prdsql", "mag_pbi") — основной источник
- Sql.Databases("prdsql") → mag_pbi — альтернативный доступ
5.3 Связи (relationships.tmdl)
- artic_id → Номенклатура._artic_id (Себестоимость, Остатки, mp остатки, Заказы все и др.)
- Период/Дата → .Календарь.Дата
- Номенклатура._group_id → Группы.group_id (bothDirections)
- Остатки.Дата → LocalDateTable (variation)
6. Цепочка дефицита и прогноза
forecast (analytics.forecast)
↓
sp_build_deficit_proposal → deficit_proposal
↓
sp_fill_deficit_money_request → deficit_money_request (заявки на оплату по производителям)
↓
sp_rebuild_stock_plan_by_arrival → stock_plan_by_arrival
Формула: closing = opening + inbound_confirmed + inbound_deficit - forecast_demand
Источники:
- opening_qty — pbi.w_ostatok_da_net (остаток на дату)
- Входящие заказы — статусы: В пути, В производстве, Выгружен на складе, Согласован
- Stock quantity — только
quantity(не sellable_stock)
7. Ключевые таблицы для остатков
| Объект | Роль |
|---|---|
pbi.ostatki_short |
Остатки для PBI (date, sklad, artic_id, quantity, upakovok) |
pbi.w_ostatok_da_net |
Остаток на дату, opening_qty, availability (ostatok) |
pbi.ostatki |
Полные остатки (накопительная) |
| Фильтр | [Категория склада] <> 'Виртуальный' — исключение МП из складского остатка |
Справочник сформирован по mag_pbi_schema.sql и analytics/pbi.