Урок 1Объекты магазинов и локаций: Store_ID, Store_Name, Region, Country, ChannelОпределите объекты измерений магазинов и локаций для розничного анализа. Научитесь моделировать идентификаторы магазинов, названия, регионы, страны и каналы, и как эти атрибуты поддерживают географическую и канальную отчетность по производительности.
Store_ID as the store business keyStore_Name standards and cleansingRegion and country hierarchiesChannel classification and mappingLocation attributes for filteringУрок 2Ключи, соединения и псевдонимы: техники для конформированных измерений и множественных соединений с одной таблицейМоделируйте ключи, соединения и псевдонимы для поддержки конформированных измерений. Научитесь соединять общие измерения с несколькими фактами, избегать циклов и использовать псевдонимы таблиц для представления разных ролей или путей в схеме universe.
Natural versus surrogate keys in designInner and outer join choicesCreating and using table aliasesResolving join loops with contextsValidating join paths with sample queriesУрок 3Основные объекты universe: Sales_Revenue (sum), Units_Sold (sum), Gross_Margin (sum), Discount_Amount (sum)Спроектируйте основные меры фактов продаж, на которые полагаются пользователи. Научитесь моделировать выручку, количество, маржу и скидки как аддитивные меры, определять поведение агрегации и документировать бизнес-правила для каждой метрики в universe.
Business definition of Sales_RevenueUnits_Sold measure and aggregation rulesGross_Margin calculation and validationDiscount_Amount sourcing and logicMeasure formatting and number scalingУрок 4Производные и рассчитываемые объекты: переменные для Margin_Pct, Stock_Turnover, Days_of_Inventory, Slow_Mover_FlagСоздайте производные и рассчитываемые объекты, инкапсулирующие бизнес-логику. Научитесь строить процент маржи, оборачиваемость запасов, дни запасов и флаги медленно оборачиваемых товаров, сохраняя формулы удобными для обслуживания и хорошо документированными.
Margin_Pct formula and rounding rulesStock_Turnover calculation optionsDays_of_Inventory business definitionSlow_Mover_Flag thresholds and logicValidating derived metrics with samplesУрок 5Дополнительные объекты universe: Selling_Price (detail), Cost_of_Goods_Sold (detail), Stock_Level (snapshot), Stock_Value (calculated)Моделируйте дополнительные детальные и моментальные меры, обогащающие анализ. Научитесь раскрывать цену продажи, себестоимость проданных товаров, уровень запасов и стоимость запасов, а также понимать, когда использовать детальные или агрегированные объекты в отчетах.
Selling_Price as a detail objectCost_of_Goods_Sold sourcing and rulesStock_Level as a snapshot measureStock_Value as a calculated measureChoosing detail versus aggregated objectsУрок 6Работа с несколькими таблицами фактов: типы соединений, контексты и псевдонимы для предотвращения ловушек веера и пропастиБезопасно работайте с несколькими таблицами фактов в одном universe. Изучите стратегии соединений, контексты и псевдонимы для избежания ловушек веера и пропасти, обеспечивая точные, недублированные результаты в комбинированных отчетах продаж и запасов.
Identifying fan and chasm trap patternsJoin strategies for multiple fact tablesUsing contexts to isolate fact combinationsAliases to separate incompatible joinsTesting combined sales and stock queriesУрок 7Объекты измерений: Product_ID, SKU, Product_Category, Product_Subcategory, BrandСпроектируйте надежные объекты измерений продуктов для анализа. Научитесь раскрывать ID, SKU, категории, подкатегории и бренды, управлять медленно изменяющимися атрибутами и обеспечивать последовательные свертки продуктов по всем таблицам фактов.
Product_ID as primary business keySKU granularity and uniquenessProduct_Category hierarchy designProduct_Subcategory relationshipsBrand attributes and reporting useУрок 8Избежание двойного подсчета: определение четкой зернистости, использование контекстов с учетом агрегации, объяснение полуаддитивных мерПоймите, как предотвратить двойной подсчет в агрегированных отчетах. Научитесь определять четкий зернистость факта, использовать объекты и контексты с учетом агрегации, а также правильно обрабатывать полуаддитивные меры, такие как запасы и балансы во времени.
Defining a clear and consistent fact grainAggregate-aware measures and objectsDesigning and using universe contextsSemi-additive measures across timeTesting reports for hidden double countingУрок 9Объекты времени: Calendar_Date, Fiscal_Year, Fiscal_Period, Week, Month_To_Date_FlagСпроектируйте объекты измерений времени для гибкого периодического анализа. Научитесь раскрывать календарные даты, фискальные годы, фискальные периоды, недели и флаги, такие как месяц-на-дату, обеспечивая последовательные временные фильтры и сравнения.
Calendar_Date as the base time keyFiscal_Year and Fiscal_Period mappingWeek and month attributes for groupingMonth_To_Date_Flag logic and usageHandling holidays and special periodsУрок 10Зернистость факта и моделирование: определение факта продаж на уровне транзакций vs моментального факта запасов, последствия зернистостиОпределите и задокументируйте зернистость факта для каждой таблицы. Изучите разницу между фактами продаж на уровне транзакций и моментальными фактами запасов, а также как выбор зернистости влияет на агрегации, пути детализации и производительность отчетов.
Transaction-level sales fact definitionStock snapshot fact grain and timingGrain alignment across related factsImpact of grain on aggregationsDocumenting grain for report designersУрок 11Выявление предметных областей: факт продаж, факт запасов, мастер-данные продуктов, мастер-данные магазинов, измерение календаряОпределите бизнес-субъекты, определяющие дизайн universe. Научитесь, как данные продаж, запасов, продуктов, магазинов и календаря отображаются на таблицы фактов и измерений, и как это разделение поддерживает гибкую, последовательную отчетность.
Sales fact subject area definitionStock fact subject area definitionProduct master as a conformed dimensionStore master and location coverageCalendar dimension business requirementsУрок 12Поля аудита и происхождения: Data_Source, Load_Timestamp, Record_Status для устранения неисправностей и сверкиВнедрите поля аудита и происхождения в universe. Научитесь, как Data_Source, Load_Timestamp и Record_Status поддерживают устранение неисправностей, сверку и доверие пользователей, а также как раскрывать их без запутывания конечных пользователей.
Purpose of Data_Source in reportingUsing Load_Timestamp for recency checksRecord_Status for active or deleted rowsDesigning audit objects for power usersReconciliation techniques using audit data