УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43...

40
УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot для Excel / пер. с анг. А. Ю. Гинько. – М.: ДМК Пресс, 2020. – 288 с.: ил. ISBN 978-5-97060-858-6 УДК 004.424 ББК 32.372 В этой книге представлены базовые техники моделирования данных в Excel и Power BI. Авторы, специалисты в области бизнес-аналитики, делают акцент на реальных ситуациях, с которыми регулярно сталкиваются как консультан- ты. Они продемонстрируют общие техники моделирования, научат читателя производить расчеты с календарем, расскажут об использовании снимков для подсчета количества товаров в наличии, о том, как работать с несколькими валютами одновременно, и подробно объяснят на примерах многие другие полезные операции. Издание предназначено как для новичков, так и для специалистов в области моделирования данных, желающих получить советы экспертов. Для изучения материала требуется владение Excel на среднем или продвинутом уровне. Все права защищены. Любая часть этой книги не может быть воспро- изведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Copyright Authorized translation from the English language edition, entitled ANALYZING DATA WITH POWER BI AND POWER PIVOT FOR EXCEL, 1st Edition by ALBERTO FERRARI; MARCO RUSSO, published by Pearson Education, Inc, publishing as Microsoft Press, Copyright ©2017 RUSSIAN language edition published by DMK PRESS PUBLISHING LTD., Copyright © [2020]. ISBN (анг.) 978-1-5093-0276-5 © 2017 by Alberto Ferrari and Marco Russo ISBN (рус.) 978-5-97060-858-6 © Оформление, издание, перевод, ДМК Пресс, 2020

Upload: others

Post on 25-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

УДК 004.424ББК 32.372

Ф43

АльбертоФеррарииМаркоРуссоФ43 АнализданныхприпомощиMicrosoftPowerBIиPowerPivotдляExcel /пер.

с анг.А. Ю. Гинько. –М.:ДМКПресс,2020. –288 с.: ил.

ISBN978-5-97060-858-6

УДК 004.424ББК 32.372

ВэтойкнигепредставленыбазовыетехникимоделированияданныхвExcelиPowerBI.Авторы,специалистывобластибизнес-аналитики,делаютакцентнареальныхситуациях,скоторымирегулярносталкиваютсякакконсультан-ты.Онипродемонстрируютобщиетехникимоделирования,научатчитателяпроизводитьрасчетыскалендарем,расскажутобиспользованииснимковдляподсчетаколичестватовароввналичии,отом,какработатьснесколькимивалютамиодновременно,иподробнообъяснятнапримерахмногиедругиеполезныеоперации.

Изданиепредназначенокакдляновичков,такидляспециалистоввобластимоделированияданных,желающихполучитьсоветыэкспертов.ДляизученияматериалатребуетсявладениеExcelнасреднемилипродвинутомуровне.

Всеправазащищены.Любаячастьэтойкнигине можетбытьвоспро-изведенав какойбытонибылоформеи какимибытонибылосредствамибезписьменногоразрешениявладельцевавторскихправ.

CopyrightAuthorized translation fromtheEnglish languageedition,entitledANALYZINGDATAWITHPOWERBIAND

POWERPIVOTFOREXCEL,1stEditionbyALBERTOFERRARI;MARCORUSSO,publishedbyPearsonEducation, Inc,publishingasMicrosoftPress,Copyright©2017

RUSSIAN language edition published byDMKPRESS PUBLISHING LTD.,Copyright©[2020].

ISBN(анг.)978-1-5093-0276-5© 2017byAlbertoFerrariandMarcoRussoISBN(рус.)978-5-97060-858-6© Оформление,издание,перевод,

ДМКПресс,2020

Page 2: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Оглавление

Рецензия ................................................................................................................. 9

Предисловие от издательства .............................................................10

Введение ...............................................................................................................11

Длякогопредназначенаэтакнига?........................................... 11Какмыпредставляемсебенашегочитателя?........................... 11Структуракниги.......................................................................... 12Условныеобозначения................................................................ 14Сопутствующийконтент............................................................. 14Благодарности.............................................................................. 14Списокопечатоки поддержка.................................................... 14Обратнаясвязь............................................................................. 15Оставайтесьс нами...................................................................... 15

Глава 1. Введение в моделирование данных .........................17

Работас однойтаблицей............................................................. 18Введениев модельданных......................................................... 25Введениев схему«звезда».......................................................... 33Пониманиеважностиименованияобъектов............................ 40Заключение.................................................................................. 42

Глава 2. Использование главной/подчиненной таблицы ........................................................45

Введениев модельданныхс главнойи подчиненнойтаблицами.................................................................................... 45Агрегированиемеризглавнойтаблицы....................................47Выравниваниеглавнойи подчиненнойтаблиц........................ 55Заключение.................................................................................. 58

Глава 3. Использование множественных таблиц фактов ..................................................................................................59

Использованиеденормализованныхтаблицфактов................ 59Фильтрациячерезизмерения.................................................... 66Пониманиенеоднозначностимоделиданных.......................... 69

Page 3: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Работас заказамии счетами...................................................... 72Расчетполнойсуммыпосчетамдляпокупателя..................77Расчетсуммыпосчетам,включающимданныйзаказотконкретногопокупателя........................................... 78Расчетсуммызаказов,включенныхв счета.......................... 78

Заключение.................................................................................. 81

Глава 4. Работа с датой и временем ...............................................83

Созданиеизмерениядатыи времени........................................ 83Понятиеавтоматическихизмеренийвремени..........................87

Автоматическаягруппировкадатв Excel...............................87Автоматическаягруппировкадатв PowerBIDesktop.......... 89

Использованиенесколькихизмеренийдатыи времени......... 90Обращениес датойи временем................................................. 96Функциидляработыс датойи временем.................................. 99Работас финансовымикалендарями....................................... 101Расчетрабочихдней.................................................................. 104

Учетрабочихднейв рамкаходнойстраныилирегиона...... 104Учетрабочихднейв разныхстранах....................................107

Работас особымипериодамигода........................................... 111Работас непересекающимисяпериодами........................... 111Периоды,связанныес текущимднем.................................. 113Работас пересекающимисяпериодами............................... 116

Работас недельнымикалендарями......................................... 118Заключение................................................................................ 124

Глава 5. Отслеживание исторических атрибутов ...............127

Введениев медленноменяющиесяизмерения.......................127Использованиемедленноменяющихсяизмерений............... 133Загрузкамедленноменяющихсяизмерений.......................... 136

Исправлениегранулярностив измерении.......................... 140Исправлениегранулярностив таблицефактов................... 143

Быстроменяющиесяизмерения.............................................. 145Выбороптимальнойтехникимоделирования........................ 149Заключение................................................................................ 150

Глава 6. Использование снимков ................................................... 151

Данные,которыенельзяагрегироватьпо времени................ 151Агрегированиеснимков............................................................ 153Понятиепроизводныхснимков............................................... 159Понятиематрицыпереходов.................................................... 162Заключение................................................................................ 168

6 Оглавление

Page 4: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Глава 7. Анализ интервалов даты и времени ........................ 169

Введениевовременныеданные.............................................. 170Агрегированиепростыхинтервалов........................................ 172Интервалыс переходомдат...................................................... 175Моделированиерабочихсмени временныхсдвигов................................................................ 180Анализактивныхсобытий........................................................ 182Смешиваниеразныхинтервалов............................................. 192Заключение................................................................................ 198

Глава 8. Связи «многие ко многим» ............................................. 201

Введениев связи«многиекомногим».................................... 201Понятиешаблонадвунаправленнойфильтрации.............. 203Понятиенеаддитивности..................................................... 206

Каскадныесвязи«многиекомногим»..................................... 208Временныесвязи«многиекомногим».................................... 211

Факторыперераспределенияи процентныесоотношения................................................. 215Материализациясвязей«многиекомногим»......................217

Использованиетаблицыфактовв качествемоста.................. 218Вопросыпроизводительности.................................................. 219Заключение................................................................................ 223

Глава 9. Работа с разными гранулярностями ....................... 225

Введениев гранулярности........................................................ 225Связинаразныхуровняхгранулярности.................................227

Анализданныхо бюджетировании...................................... 228ИспользованиеDAXдляраспространенияфильтра........... 230Фильтрацияприпомощисвязей.......................................... 233Скрытиезначенийнанедопустимыхуровняхгранулярности......................................................... 235Распределениезначенийпоуровнямс большейгранулярностью................................................... 239

Заключение................................................................................ 241

Глава 10. Сегментация данных в модели ................................ 243

Вычислениесвязейпонесколькимстолбцам......................... 243Вычислениестатическойсегментации.................................... 246Использованиединамическойсегментации........................... 248Пониманиепотенциалавычисляемыхстолбцов:ABC-анализ................................................................................ 251Заключение................................................................................ 256

Оглавление 7

Page 5: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Глава 11. Работа с несколькими валютами .............................257

Введениев различныесценарии...............................................257Нескольковалютисточника,однавалютаотчета................... 258Однавалютаисточника,нескольковалютотчета................... 263Нескольковалютисточника,нескольковалютотчета............ 268Заключение................................................................................ 270

Приложение A. Моделирование данных 101 ...................... 271

Таблицы...................................................................................... 271Типыданных.............................................................................. 273Связи........................................................................................... 273Фильтрацияи перекрестнаяфильтрация................................ 274Различныетипымоделей......................................................... 279

Схема«звезда»....................................................................... 279Схема«снежинка».................................................................. 280Моделис таблицами-мостами.............................................. 281

Мерыи аддитивность................................................................ 283Аддитивныемеры................................................................. 283Неаддитивныемеры............................................................. 283Полуаддитивныемеры.......................................................... 283

Предметный указатель ........................................................................... 285

8 Оглавление

Page 6: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Рецензия

Выдержитеврукахуникальнуюпонесколькимпричинамкнигу.Во-первых, это первая книга на русском языке по системе бизнес-

аналитикиMicrosoftPowerBI.Втечениенесколькихпоследнихлет,ког-даслушателипослетренинговпоExcel,PowerPivotиQueryспрашивали«что мнепочитатьпроPowerBI?»,янезнал,чтоответить.Англоязычнойлитературынаписанопо этойтеме ужемного, нона русском –полныйноль.Теперьуженет.

Во-вторых, я очень рад, что в качестве первой ласточки издательство«ДМК Пресс» решило перевести именно эту книгу. Альберто Феррари иМаркоРуссооднозначновходятвкругсамыхдостойныхавтороввэтойоб-ласти.Онищедроделятсясвоимизнаниямивкнигахистатьях,выступаютнаконференцияхипроводяттренингипоPowerPivot,DAXиPowerBIещёссамогоначалапоявленияэтихтехнологийизнаютонихбольше,чемктобытонибыло.Отдельно,кактренер,хочуотметитьихпреподавательскийталант,стройностьилогичностьобъяснений,красотупримеров–этодо-рогогостоит.

Бизнес-аналитика (Business Intelligence, BI) давно уже перестала бытьуделомгиков-айтишниковизмиллиардныхкорпораций.Сегодняонаспо-собнапринестипользуприпринятииуправленческихрешенийвкомпа-нии любого калибра, помочь визуализировать результаты и непрерывноотслеживатьихдинамику,собираяданныеизразных«вселенных»:бухгал-терских программ, баз данных, файлов, интернета. Сегодня каждый мо-жет (и должен!)быть«самсебеаналитик».Иэтакнига –настоящийклади огромноеподспорьедлявсех,ктовсталнаэтотпуть.

Николай Павлов,Microsoft Certified Trainer, Microsoft Most Valuable Professional,

автор проекта «Планета Excel», www.planetaexcel.ru

Page 7: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Предисловие от издательства

Отзывы и пОжеланияМывсегдарадыотзывамнашихчитателей.Расскажитенам,чтовыдумаетеоб этойкниге –чтопонравилосьили,можетбыть,не понравилось.Отзывыважныдлянас,чтобывыпускатькниги,которыебудутдлявасмаксимальнополезны.

Выможетенаписатьотзывпрямона нашемсайтеwww.dmkpress.com,зайдя на  страницу книги, и  оставить комментарий в  разделе «Отзывыи рецензии».Такжеможнопослатьписьмоглавномуредакторупо адресу[email protected],приэтомнапишитеназваниекнигив темеписьма.

Если есть тема, в  которой вы квалифицированы, и  вы заинтересова-ныв написанииновойкниги,заполнитеформуна нашемсайтепо адресуhttp://dmkpress.com/authors/publish_book/илинапишитев издательствопо адресу[email protected].

СпиСОк ОпечатОкХотя мы приняли все возможные меры для того, чтобы удостоверитьсяв качественашихтекстов,ошибкивсеравно случаются.Есливынайдетеошибкув однойизнашихкниг –возможно,ошибкув текстеилив коде, –мыбудемоченьблагодарны,есливысообщитенамо ней.Сделавэто,выизбавитедругихчитателейотрасстройстви поможетенамулучшитьпо-следующиеверсииэтойкниги.

Есливынайдетекакие-либоошибкив коде,пожалуйста,сообщитео нихглавномуредакторупо адресу[email protected],и мыисправимэтов следующихтиражах.

нарушение автОрСких правПиратствов интернетепо-прежнемуостаетсянасущнойпроблемой.Изда-тельство«ДМКПресс»оченьсерьезноотноситсяк вопросамзащитыавтор-скихправи лицензирования.Есливыстолкнетесьв интернетес незаконновыполненнойкопиейлюбойнашейкниги,пожалуйста,сообщитенамадрескопиииливеб-сайта,чтобымымоглиприменитьсанкции.

Пожалуйста,свяжитесьс намипо адресуэлектроннойпочты[email protected]соссылкойна подозрительныематериалы.

Мывысокоценимлюбуюпомощьпо защитенашихавторов,помогаю-щуюнампредоставлятьвамкачественныематериалы.

Page 8: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Введение

Пользователи Excel любят цифры. А  может, те, кто любят цифры, любятExcel.Какбытонибыло,есливамнравитсядоходитьдосамойсутиприанализелюбыхнаборовданных,скореевсего,выпровелинемаловремени,работаяс Excel,своднымитаблицамии формулами.

В2015годуувиделсветпрограммныйпродуктPowerBI.И сегодняспра-ведливобудетутверждать,чтоте,ктолюбятцифры,любяттакжеPowerPivotдляExcelи PowerBI.Этисредстваимеютмногообщего –вчастности,ихобъединяетдвижокбазданныхVertiPaq,а такжеязыкDAX,унаследованныйотSQLServerAnalysisServices.

В прежних версиях Excel процесс анализа информации главным обра-зомосновывалсяназагрузкенаборовданных,расчетезначенийв столбцахи написанииформулдляпостроенияграфиков.Приэтомв своейработевысталкивалисьс  серьезнымиограничениями –начинаяс размерарабочейкнигии заканчиваятем,чтоязыкформулExcelне лучшимобразомпод-ходитдлярешениячисловыхзадачбольшогообъема.Новыйдвижок,лежа-щийв основеPowerBIи PowerPivot,сталогромнымшагомвперед.С нимв вашемраспоряженииоказалсяполныйфункционалбазданных,а такжепотрясающийязыкDAX.Но ведьс большойсилойприходити большаяот-ветственность!И есливыхотитевоспользоватьсявсемипреимуществамиэтихновыхсредств,вампридетсямногомунаучиться.В частности,необхо-димобудетпознакомитьсяс основамимоделированияданных.

Моделирование данных  – это отнюдь не  ядерная физика, а  лишь на-борбазовыхзнаний,которымдолженовладетьвсякий,ктозаинтересованв анализеданных.К томужеесливылюбитецифры,товамнепременнопридетсяподушемоделированиеданных.Освоитьэтунаукубудетнеслож-но,а вместес темвыполучитемассуудовольствия.

Вэтойкнигевыпознакомитесьс базовымиконцепциямимоделированияданныхнапрактическихпримерах,с которыминавернякане развстреча-лисьв жизни.В нашипланыне входилонаписаниезапутаннойкнигис под-робнымописаниемкомплексныхрешений,необходимыхдляреализациисложныхсистем.Вместоэтогомысосредоточилисьнареальныхситуациях,с  которыми ежедневно сталкиваемся в  работе в  качестве консультантов.Когдак намобращалисьзапомощью,а мывидели,чтоимеемделос типич-нойзадачей,тоотправлялиеепрямикомв архив.Позже,открывзаветныйящик,мыполучилиценныепримерыдлякнигии расположилиихв поряд-ке,пригодномдляобучениямоделированиюданных.

Page 9: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Прочитавэтукнигу,выврядлистанетегурув областисозданиямоде-лейданных,нознанийпоэтойтемеу вассущественноприбавится.И есливпоследствиив поискерешенияочереднойзадачинавычислениенужноговамзначениявыдопуститемысльобизменениимоделиданных,значит,мыпоработалине зря.Крометого,выуверенновступитенапутьстанов-ления успешного специалиста в  областимоделированияданных.Но  за-ключительный шаг к  вершине вы сможете сделать, только набравшисьпрактическогоопытаи набивнемалошишек.К сожалению,опытнельзяприобрести,читаякниги.

Для кОгО преДназначена эта книга?Целеваяаудиториякнигидовольноразнообразна.В неевходяти пользова-телиExcel,применяющиев своейпрактикеPowerPivot,и специалистыпоанализуданныхв PowerBI,и даженовичкив областибизнес-аналитики,желающиепознакомитьсяс основамимоделированияданных.Всеонипо-тенциальныечитателиданнойкниги.

Заметьте,чтомыне включилив этотсписоктех,ктоцеленаправленнохочетпочитатьо созданиимоделейданных.Изначальномыпредполагали,чтонашчитательможетдажене знать,чтоемунужнокакое-томоделиро-ваниекаких-тоданных.Нашацель –датьвампонять,чтопроектированиемоделейданных –этокакразто,чтовамнужно,и познакомитьс базовымипринципамиэтойпрекраснойнауки.В общем,есливаминтересно,чтота-коемоделированиеданныхи чемонотакполезно,этакнигадлявас.

как мы преДСтавляем Себе нашегО читателя?Мыпредполагаем,чтонашчитательобладаетбазовымизнаниямив обла-стисводныхтаблицExcelи/илиимеетопытиспользованияPowerBIв ка-чествесредстваотчетностии моделирования.Наличиеаналитическихна-выков также приветствуется. В  своей книге мы не  затрагиваем вопросыинтерфейсаExcelилиPowerBI.Вместоэтогомыфокусируемсвоевниманиеисключительнонамоделяхданных –какпроектироватьи модифицироватьихтак,чтобызначительноупроститьзапросы.Такчтонашазадача –рас-сказатьвам,чтоделать,а какэтоделать,выужрешитесами.Мы неплани-ровалисоздаватьпошаговоеруководство,а хотелимаксимальнопростымязыкомобъяснитьдостаточносложнуютему.

Также мы намеренно обошли вниманием описание языка DAX. Былобыневозможноуместитьв однойкнигеи теориюмоделированияданных,и DAX.Есливыужезнакомыс этимязыком,вамбудетпрощеразобратьсяс многочисленнымипримерамикоданаDAX,представленнымив даннойкниге.В противномслучаесоветуемвампрочитатькнигу«Подробноеру-ководствопоDAX»(TheDefinitiveGuidetoDAX),являющуюсяполноценным

12 Введение

Page 10: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

учебникомпоэтомуязыкуи хорошосочетающуюсяс приведеннымив на-шейкнигепримерами.

Структура книгиКниганачинаетсяс парылегкихвводныхглав,закоторымиследуютглавы,каждаяизкоторыхпосвященаотдельномувидумоделиданных.Предлага-емвамкраткоеописание:

� глава1«Введениев моделированиеданных».Являетсявводнойча-стью в  базовые принципы моделирования данных. В  ней мы рас-скажем,чтоиз себяпредставляетмодельданных,начнем говоритьо  понятии гранулярности, определим понятия основных моделейхранилища данных – «звезда» и  «снежинка»,  – а также поговоримо нормализациии денормализации;

� глава2«Использованиеглавной/подчиненнойтаблицы».Описываетнаиболеераспространенныйсценарийс наличиемглавнойи подчи-неннойтаблиц.В этойглавемыобсудимпримерс заказамии строка-мизаказов,размещеннымив двухотдельныхтаблицахфактов;

� глава3«Использованиемножественныхтаблицфактов».Описываетсценарии,в которыху васестьмножествотаблицфактов,наоснова-ниикоторыхнеобходимопостроитьединыйотчет.В этойглавемыподчеркнемважностьсозданиякорректноймногомерноймоделидляоблегченияработыс информацией;

� глава 4 «Работа с  датой и  временем». Это одна из самых длинныхглав книги. В  ней затронуты вопросы логики расчетов на основа-нии временных периодов. Мы  расскажем, как правильно создатьтаблицу-календарь и  работать с  функциями времени (YTD, QTA,PARALLELPERIOD и др.).Послеэтогоприведемнесколькопримероврасчетовнаоснованиирабочихдней,поработаемс особымиперио-дамигодаи пояснимв целом,какправильноработатьс датами;

� глава5«Отслеживаниеисторическихатрибутов».В этойглавеопи-сываютсяособенностииспользованияв моделиданныхмедленноменяющихсяизмерений.Такжепредставленодетальноеописаниетрансформаций, которые необходимо выполнить для отслежива-ния исторических атрибутов, и  даны инструкции по написаниюкорректного кода на DAX, учитывающего медленно меняющиесяизмерения;

� глава6«Использованиеснимков».Описываетлюбопытныеаспектыиспользованияснимков(snapshot).В этойглавевыузнаете,чтотакоеснимки,когдаи длячегоихнеобходимоиспользовать, а такжекакрассчитывать значения при применении снимков. Кроме того, мыпосмотрим,какможноиспользоватьмощнуюмодельс применениемматрицыпереходов;

Введение 13

Page 11: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

� глава7«Анализинтерваловдатыи времени».В этойглавемыпойдемещенашагдальше,чемв  главе5.Мы продолжимзаниматьсявре-меннымивычислениями,нонаэтотразобратимсяк моделиданных,в которойсобытия,хранящиесяв таблицефактов,обладаютопреде-леннойдлительностью,а значит,требуютособогоподходадляполу-чениякорректныхрезультатов;

� глава8«Связимногиекомногим».Описываетхарактерныеособен-ности использования связей «многие комногим». Такойтип связииграетважнуюрольв любоймоделиданных.Мы рассмотримобыч-ныесвязи«многиекомногим»,связис каскаднымидействиямии ихиспользование с  учетом факторов перераспределения и  фильтров.Такжеобсудимвопросыпроизводительноститакихсвязейи способыееулучшения;

� глава9«Работас разнымигранулярностями».В этойглавемыуглу-бимсяв работус таблицамифактовс разнымиуровнямигрануляр-ности.Мы рассмотримпримерыизобластибюджетирования,в кото-рыхтаблицыфактовбудутхранитьинформациюс разнойстепеньюдетализации,и предложимнесколькоальтернативныхспособовдлярешенияэтихситуацийкакприпомощиязыкаDAX,таки непосред-ственнов моделиданных;

� глава10«Сегментацияданныхв модели».В этойглавемырассмот-римнесколькомоделейс применениемтехникисегментации.Нач-немс простойсегментациипоцене,послечегоперейдемк анализудинамической сегментации с использованиемвиртуальных связей.В концеглавыпроведемABC-анализсредствамиDAX;

� глава11«Работас несколькимивалютами».В этойглавемырассмот-римособенностиработыс несколькимивалютами.Взаимодействуяс  курсами валют, важно понимать их специфику и  в  соответствиис нейстроитьмодельданных.Мы проанализируемнесколькосцена-риевс разнымитребованиямии длякаждогоизнихвыработаемоп-тимальноерешение;

� приложениеA«Моделированиеданных101».Этоприложениеможнорассматриватькаксправочноеруководство.Здесьмыкраткоопишемна примерах все базовые концепции, использованные в  этой книге.Привозникновениивопросоввывсегдаможетеобратитьсяк приложе-нию,освежитьв памятисоответствующуютемуи вернутьсяк чтению.

Сложностьмоделейи решенийбудетвозрастатьнапротяжениивсейкни-ги,такчтомысоветуемчитатьеепоследовательно,а непрыгатьотглавык главе.Таквысможетепостепенноидтиотпростогок сложномуи осваи-ватьпооднойтемезараз.Послепрочтениякнигаможетстатьдлявасспра-вочнымруководством,и когдавампотребуетсяпостроитьтуилиинуюмо-дельданных, выможете смело открытьнужную главуи  воспользоватьсяпредложеннымрешением.

14 Введение

Page 12: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

уСлОвные ОбОзначенияВэтойкнигепринятыследующиеусловныеобозначения:

� жирнымпомечентекст,которыйвводитевы;� курсивиспользуетсядляобозначенияновыхтерминов;� программныйкодобозначенв книгемоноширинным шрифтом;� первыебуквыв названияхдиалоговыхокон,ихэлементов,а такжекоманд –прописные.Например, в диалоговомокнеSaveAs... (Со-хранитькак…);

� комбинациинажимаемыхклавишнаклавиатуреобозначаютсязна-комплюс(+)междуназваниямиклавиш.Например,Ctrl+Alt+Deleteозначает, что вы должны одновременно нажать клавиши Ctrl, Altи Delete.

СОпутСтвующий кОнтентДляподкреплениявашихнавыковнапрактикемыснабдиликнигусопут-ствующим контентом, которыйможно скачать по ссылке: https://aka.ms/AnalyzeData/downloads.

Представленныйархивсодержитфайлыв форматахExcelи/илиPowerBIDesktopдлявсехпримеровизэтойкниги.Каждомурисункусоответствуетотдельныйфайл,чтобывыимеливозможностьанализироватьразныешагии присоединитьсяк выполнениюпримераналюбойстадии.Для большин-ствапримеровпредставленыфайлыв форматеPowerBIDesktop,такчтомынастоятельнорекомендуемвамустановитьэтотпрограммныйпакетс сай-таPowerBI.

благОДарнОСтиВконцевводнойглавымыбыхотеливыразитьблагодарностьнашемуре-дакторуКейтШуп(KateShoup),котораяпомогаланамнапротяжениивсейкниги,и техническомуредакторуЭдуПрайсу(EdPrice).Еслибыне ихдо-тошность,читатьэтукнигубылобыгораздотруднее.Есликнигасодержитменьшеошибок,чемнашапервоначальнаярукопись,этотолькоихзаслуга.А вовсехоставшихсянеточностяхвиноватылишьмы.

СпиСОк ОпечатОк и пОДДержкаМысделаливсевозможное,чтобытексти сопутствующийконтентк этойкниге не  содержали ошибок. Все неточности, которые были обнаруженыпослепубликациииздания,перечисленынасайтеMicrosoftPressпоадресу:https://aka.ms/AnalyzeData/errata.

Введение 15

Page 13: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Есливынашлиопечатку,котораяне указанав перечне,выможетеоповес-титьнаснатойжестранице.

Есливамтребуетсядополнительнаяпомощь,направьтеписьмов MicrosoftPressBookSupportпоадресу:[email protected].

Отметим,чтоуслугипоподдержкепрограммногообеспеченияMicrosoftпоэтомуадресуне оказываются.

Обратная СвязьВаше удовлетворение от книги – главный приоритет дляMicrosoft Press,а вашаобратнаясвязь –нашсамыйценныйактив.Пожалуйста,выскажитесвоемнениеобэтойкнигепоадресу:https://aka.ms/tellpress.

Пройдитенебольшойопрос,и мыприслушаемсяковсемвашимидеями пожеланиям.Заранееблагодаримзавашиотзывы!

ОСтавайтеСь С намиДавайтепродолжимобщение!ЗаходитенанашTwitter:@MicrosoftPress.

16 Введение

Page 14: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Глава 1Введение в моделирование

данных

Книга, которую вы держите в  руках, посвященамоделированию данных(datamodeling).Но передтемкакприступатьк чтению,неплохобыпо-нять,зачемвамвообщенужноизучатьмоделированиеданных.В концеконцов,выможетепростозагрузитьнужныеданныев Excelи построитьнаихосновесводнуютаблицу.Такзачемвамещечто-тознатьо модели-рованииданных?

К нам как к  консультантам в  этой области часто обращаются частныелицаи  компании, которыене могут рассчитать какие-тонужныеимпо-казатели.Приэтомонипонимают,чтовсеисходныеданныедлярасчетау нихесть,нолибоформулаполучаетсячересчурсложнойи запутанной,либоцифрыне сходятся.В 99 %случаевпричинойявляетсянеправильноспроектированнаямодель данных(datamodel).Еслиеепоправить,формуластанетпростойи понятной.Такчтовампростонеобходимонаучитьсямо-делироватьданные,есливыхотитеулучшитьсвоианалитическиенавыкии  предпочитаете концентрироваться на принятии правильных решений,а ненапоискезамысловатойформулыв справочникепоDAX.

Обычно считается, что моделирование данных  – непростая тема дляизучения.И мыне станемэтогоотрицать.Этодействительносложнаяоб-ласть.Онапотребуетотвассерьезныхусилий,к томужевамнужнобудетпостаратьсяперестроитьсознаниетак,чтобысразумыслитькатегориямимоделиданных,рассуждаяо возможныхсценариях.Такчтода,моделиро-ваниеданных –теманепростая,ресурсоемкаяи требующаянемалыхуси-лийв освоении.Инымисловами,сплошноеудовольствие!

Вэтойглавемыпокажемвамнесколькопримеровтого,какправильноспроектированная модель данных помогает облегчить написание итого-выхформул.Конечно,этовсеголишьпримеры,и онимогутне относить-сянапрямуюк стоящимпередвамизадачам.Но мынадеемся,чтоихбу-детдостаточнодляпониманиятого,почемустоитизучатьмоделированиеданных.Бытьхорошимспециалистомпомоделированиюданных –значитуметьподгонятьактуальнуюмодельподшаблоны,изученныеи решенные

Page 15: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

другими.Вашамодельданныхничемне отличаетсяотдругих.Да,в нейестьсвоиособенности,новысокавероятность,чтодовасс подобнымизадачамиужекто-тосталкивался.Научитьсявыявлятьсходствамеждувашимпри-мероми моделями,описаннымив книге,не такпросто,нов тожевремяоченьприятно.Когдавыдостигнетеуспехав этом,решениязадачначнутпоявлятьсяпередвамисами,а большинствопроблемс расчетомнужныхвампоказателейпростоисчезнут.

В основном в  своих примерах мы будем использовать базу данныхContoso.Этовымышленнаякомпания,торгующаяэлектроникойповсемумиру с использованиемразличныхканаловпродаж.Вероятно, вы ведетесовершенноинойбизнес –в этомслучаевампридетсяадаптироватьотчетыподсвоинужды.

Посколькуэтоперваяглава,начнеммыс описанияобщейтерминоло-гиии концепции.Мы расскажем,чтотакоемодельданныхи почемув нейтак важны связи. Такжемыпознакомимся с  понятияминормализации/денормализациии схемой«звезда».На протяжениивсейкнигимыбудемописывать новые концепции на примерах, но в  первой главе это будетнаиболеезаметно.

Пристегнитеремни!Пришловремяузнатьвсетайныо моделированииданных.

рабОта С ОДнОй таблицейЕсливыиспользуетеExcelи сводныетаблицыдляанализаданных,вели-ка вероятность, что вы загружаете информациюпосредством запроса изкакого-тоисточника –обычноизбазыданных.Послеэтогостроитесвод-нуютаблицуи приступаетек анализу.Разумеется,приэтомвывынужденымиритьсяс некоторымиограничениямиExcel,главнымизкоторыхявляет-сялимитнаколичествострокв таблице,равныйодномумиллиону.Большезаписейпростоне поместитсянарабочемлисте.Честноговоря,в началесвоегопутимыне рассматривалиэтуособенностькаксерьезныйсдержива-ющийфактор.В самомделе,зачемкому-томожетпонадобитьсязагружатьв Excelмиллионстрок,еслиможновоспользоватьсябазойданных?Причи-наможетбытьв том,чтоработас Excelне требуетотпользователязнанийв областимоделированияданных,а сбазойданных –требует.

Такилииначе,этаособенностьExcelявляетсясущественнымограниче-нием.В базеданныхContoso,которуюмыиспользуемв примерах,табли-цапродаж содержит 12млн записей. Так чтомыне можемпросто взятьи поместитьихвсеналистExcel.Но этапроблемалегкорешается.Вместотогочтобызагружатьданныецеликом,выможетесгруппироватьих,чтобысократитьколичествострок.Если,допустим,вамнеобходимопроанализи-роватьпродажив разрезекатегорийи подкатегорийтоваров, выможетеналожить соответствующие группировки, что существенно снизит объемзагружаемойинформации.

18 Введение в моделирование данных

Page 16: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Кпримеру,разделениеисходнойтаблицыиз12млнстрокнагруппыпопроизводителю, бренду, категории и  подкатегории с  сохранением дета-лизациипродаждодняпозволилонам сократить количество записейдо63 984,чтовполнеприемлемодлязагрузкиналистExcel.Написаниезапро-садлявыполненияподобнойгруппировки –этозадачадляотделаИТилиподходящегоредакторазапросов,есливы,конечно,не знаетеязыкSQL.Вы-полнивполучившийсязапрос,выможетеприступатьк анализу.На рис. 1.1можновидетьпервыенесколькострокпослеимпортаданныхв Excel.

Рис. 1.1.Данные о продажах, сгруппированные для облегчения анализа

Послезагрузкитаблицыв Excelвыможетенаконецпочувствоватьсебякакдома,создатьсводнуютаблицуи приступатьк анализу.На рис. 1.2мыпредставили продажи по производителям для выбранной категории по-средствомобычнойсводнойтаблицыи среза.

Рис. 1.2.На основании данных в Excel легко можно создать сводную таблицу

Веритевыилинет,нотолькочтовыпостроилисвоюпервуюмодельдан-ных.Да,онасостоитвсегоизоднойтаблицы,нотемне менееэтомодельданных.А значит,выможетеисследоватьееаналитическийпотенциали ис-катьспособыдляегоповышения.У представленноймоделиестьодносерь-езноеограничение –онасодержитменьшестрок,чемисходнаятаблица.

Работас однойтаблицей 19

Page 17: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Будучиновичкомв Excel,вымоглибыподумать,чтолимитв миллионстрокраспространяетсятольконаисходныеданные,которыевызагружае-тедлядальнейшегоанализа.И хотяэтоверно,важнотакжепонимать,чтоданноеограничениеавтоматическипереноситсяи намодельданных,чтонегативносказываетсянааналитическомпотенциалеотчетов.Фактически,длятогочтобысократитьколичествострок,вывынужденыбылипроизво-дитьгруппировкунауровнеисходныхданныхи извлекатьпродажи,сгруп-пированныепоопределеннымстолбцам.

Такимобразом,выкосвенноограничилисвоианалитическиевозможно-сти.К примеру,выне сможетепровестианалитикупоцветутоваровнаосно-ванииполученнойтаблицы,посколькуинформацияобэтойхарактеристи-кепростоотсутствует.Добавитьстолбецк таблице –не проблема.Проблемав том, что придобавлении столбцов будет автоматически увеличиватьсяразмертаблицыкакв ширину(в количествестолбцов),таки в длину(в ко-личествестрок).На практикеоднастрокадляотдельнойкатегории –напри-мер,аудиотехники (Audio) –превратитсяв несколькозаписей,каждаяизкоторыхбудетсодержатьсвойцветдляэтойкатегории.

Аесливыне сможетезаранеерешить,какиестолбцывампригодятсядлявыполнениясрезов,товампридетсязагружатьвсе12млнстрок,а стакимобъемомExcelне справится.Именноэтомыимелив виду,когдаговорили,чтопотенциалExcelв отношениимоделированияданныхневелик.Ограни-чениенаколичествоимпортируемыхстрокделаетневозможнымпроведе-ниеанализабольшихобъемовданных.

Здесь вамнапомощьприходитPower Pivot.ИспользуяPower Pivot, выне будетеограниченымиллиономстрок.Фактическиколичествозаписей,загружаемыхв таблицуPowerPivot,ничемне ограничено.А значит,вылег-косможетеимпортироватьв своюмодельвсепродажии проводитьнаихоснованииболееглубокийанализ.

Примечание. Power Pivot доступен в  Excel с  версии 2010 в  ка-честве внешней надстройки, а  начиная с  Excel 2013 включен в  основной пакет. В  Excel 2016 и  следующих версиях Microsoft ввела новый термин для описания моделей Power Pivot: мо-дель данных Excel (Excel Data Model). Однако термин Power Pivot по-прежнему широко используется.

Располагаяполнойинформациейо продажахв однойтаблице,выможетепроводитьболеедетализированныйанализ.К примеру,нарис. 1.3вывиди-тесводнуютаблицу,построеннуюнаосновемоделиданныхPowerPivotсовсемизагруженнымистолбцами.Теперьвыможетеосуществлятьсрезыпокатегориитовара,цветуи году,посколькувсяэтаинформациянаходитсяв модели.Чембольшестолбцов,темвышеаналитическийпотенциал.

20 Введение в моделирование данных

Page 18: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Рис. 1.3.Если в модель данных загружены все столбцы, можно строить более интересные сводные таблицы

Этогопримерадостаточно,чтобыусвоитьпервыйурок,касающийсямо-делиданных:размер имеет значение, поскольку он напрямую связан с грану-лярностью.Но чтотакоегранулярность?Гранулярность(granularity) –однаизважнейшихконцепций,описываемыхв этойкниге,и мыпостараемсяпознакомить вас с  ней как можно раньше. Далее в  книге мы углубимсяв изучениеэтойконцепции,а сейчаспозвольтедатьпростоеописаниетер-минагранулярность.В первомнабореданныхвысгруппировалиинформа-циюпокатегориии подкатегории,пожертвовавдетальнымиданнымирадиуменьшенияразмератаблицы.Говорятехническимязыком,выустановилигранулярностьтаблицынауровнекатегориии подкатегории.Можетеду-матьо  гранулярности какобуровнедетализацииданных.Чемвышегра-нулярность,темболеедетализированнаяинформациябудетдоступнадляанализа.В последнемрассмотренномнабореданных,загруженномв PowerPivot,гранулярностьустановленанауровнетовара(насамомделеонадажевыше – на уровне каждой отдельной продажи), тогда как в  предыдущемпримеребыланауровнекатегориии подкатегории.Возможностидляде-тального анализа напрямую связаны с  количеством доступных столбцовв таблице, а  значит, с  ее гранулярностью.Вы уже знаете,чтоувеличениеколичествастолбцовнепременноведетк увеличениюколичествастрок.

Выбратьправильныйуровеньгранулярностивсегданепросто.Приневер-номвыборепрактическиневозможнобудетизвлечьнужнуюинформациюприпомощиформул.У васлибопопростуне будетэтихданныхв таблице(какв примерес отсутствующимцветомтоваров),либоэтиданныебудутразбросаныповсемунабору.Приэтомнеправильнобудетговорить,чтобо-леевысокийуровеньгранулярноститаблицы –этовсегдахорошо.Нужностремиться,чтобыгранулярностьбылаустановленанаоптимальномуров-нес учетомвашихтребованийк дальнейшемуанализуданных.

Мыужерассматривалипримерс потеряннымиданными.А чтозначитвыражение «данные разбросаны по всему набору»? Проиллюстрироватьтакоеповедениеинформациинесколькосложнее.Представьте,к примеру,чтовамнеобходимополучитьсреднийгодовойдоходклиентов,покупаю-

Работас однойтаблицей 21

Page 19: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

щих определенныйнабортоваров. Такая информация в таблице присут-ствует –унасведьестьвсесведенияо нашихпокупателях.На рис. 1.4по-казанфрагменттаблицыс нужныминамстолбцами(необходимооткрытьокноPowerPivot,чтобыувидетьсодержимоетаблицы).

Рис. 1.4.Информация о покупателях и товарах содержится в одной таблице

Вкаждойстрокетаблицыпродажв отдельномстолбцеуказываетсявели-чинагодовогодоходаклиента,купившегоэтоттовар.В попыткевычислитьсредний годовойдоходпокупателямыможемпопробовать создатьмеруприпомощиследующегокоданаDAX:

AverageYearlyIncome := AVERAGE ( Sales[YearlyIncome] )

Созданнаямераотличноработает,и выможетеиспользоватьеев свод-нойтаблице,какэтопоказанонарис. 1.5.Здесьмывидимсреднийгодовойдоходпокупателейбытовойтехники(HomeAppliances)разныхбрендов.

Рис. 1.5.Анализ среднего годового дохода покупателей бытовой техники

Отчетвыглядитзамечательно,но,к сожалению,цифрыв немне соответ-ствуютдействительности –оничересчурзавышены.Фактическивывычис-ляетесреднеезначениепотаблицепродажс гранулярностью,установлен-нойнауровнекаждойпродажи.Инымисловами,в этойтаблицесодержатсястрокидлякаждойпродажи,а значит,покупателив нейбудутповторяться.Так,еслипокупательприобрелтритоварав разныедни,приподсчетесред-негозначениягодовойдоходдлянегобудетучтентрижды,чтоприведетк ошибочнымрезультатам.

22 Введение в моделирование данных

Page 20: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Вымогли бы сказать, чтотакимобразомполучили средневзвешеннуювеличинугодовогодохода.Но этоне совсемтак.Длятогочтобырассчитатьсредневзвешенное,намнеобходимобылобызадатьвесдлякаждойсостав-ляющей,а братьв качествевесаколичествопокупокбылобынеправильно.Болеелогичнобылобыопределитькаквесколичествокупленныхтоваров,суммупокупкиилиещекакой-тозначимыйпоказатель.Крометого,в дан-номпримеремыпланироваливычислятьобычноесреднеезначениегодо-вогодоходапокупателей,и созданнаямеранамв этомничутьне помогла.

Ихотяэтоне такпростозаметить,здесьмытакжестолкнулисьс пробле-мойнекорректновыбраннойгранулярности.Получается,чтоинформация,котораянамнужна,доступна,ноне привязанак конкретномупокупателю,а вместоэтогоразбросанапотаблицепродаж,чтозначительнозатрудняетвычисления.Чтобыполучитькорректныйрезультат,необходимоизменитьгранулярностьдоуровняпокупателя –либопутемповторнойзагрузкитаб-лицы,либовоспользовавшисьсложнойформулойнаязыкеDAX.

ЕсливырешитепойтипопутиDAX,можнодлявычислениясреднегого-дового дохода воспользоваться следующей формулой, довольно сложнойдляпонимания:

CorrectAverage := AVERAGEX ( SUMMARIZE ( Sales; Sales[CustomerKey]; Sales[YearlyIncome] ); Sales[YearlyIncome])

Вэтойне самойпростойформулемысначалаагрегируемпродажинауров-не(гранулярности)покупателя,послечегоприменяемк результирующейта-блице,в которойкаждыйпокупательпоявляетсятолькоодинраз,функциюAVERAGEX.В примеремыприменяемфункциюSUMMARIZEдляпредваритель-нойагрегациинауровнепокупателявовременнойтаблице,а затемвычисляемсреднеезначениепоYearlyIncome.Каквиднопорис. 1.6,итогиправильногорас-четасреднегогодовогодоходасильноотличаютсяотнашихпрежнихрасчетов.

Рис. 1.6.При взгляде на результаты вычислений видно, как далеки мы были от истины

Работас однойтаблицей 23

Page 21: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Необходимохорошоусвоитьодинпростойфакт:суммагодовогодохода –этовеличина,обладающаясмысломнауровнегранулярностипокупателя.На уровнеконкретнойпродажиэтотпоказательсовершеннонеуместен,хотьи показываетверныецифры.Инымисловами,мыне можемиспользоватьзначение,актуальноенауровнепокупателя,с темжесмысломи науровнепродажи.Такимобразом,чтобыполучитьверныйрезультат,нампришлосьпонижатьгранулярностьисходныхданных,пустьи вовременнойтаблице.

Изэтогопримераможносделатьпаруважныхвыводов:� правильнаяформулаоказаласькудасложнеепростогоиспользованияфункцииAVERAGE.Нампришлось производить временную агрега-цию,чтобыскорректироватьгранулярностьтаблицы,посколькунуж-наяинформацияоказаласьразбросанаповсемунаборуданных,а неорганизованадолжнымобразом;

� вероятно, вам было бы непросто понять, что произведенные вамирасчеты неверны. В  нашем примере достаточно одного взгляда нарис. 1.6,чтобызаподозритьналичиеошибки –врядлиу всехнашихпокупателейсреднийгодовойдоходпревышает2млндолларов.Од-нако для более сложных расчетов выявить неточность может бытьвесьмапроблематично,чтоприведетк появлениюошибокв вашейитоговойотчетности.

Необходимо повышать гранулярность таблицы, чтобы извлекать ин-формациюнужнойвамстепенидетализации,ноеслизайтив этомслиш-ком далеко, могут возникнуть сложности с  вычислением некоторыхпоказателей.Какжевыбратьправильныйуровеньгранулярности?Этоне-простойвопрос,и ответнанегомыприбережемнапотом.Мы надеемся,чтосможемнаучитьвасвыбиратьоптимальныйуровеньгранулярноститаблиц,ноне забывайте,чтоэтодействительносложнаязадачадажедляопытныхспециалистов.А покадостаточновводныхслово том,чтоизсебяпредставляетгранулярностьи каконаважнадлякаждойтаблицыв вашеймоделиданных.

Насамомделемоделиданных,которуюмыдосихиспользовалив нашихпримерах,присущаоднасерьезнаяпроблема,отчастисвязаннаяс  грану-лярностью.Основнойеенедостатоксостоитв том,чтовседанныеу нассо-браныв однойтаблице.Есливашамодель,какв нашихпримерах,состоитизоднойтаблицы,товампридетсявыбиратьдлянеегранулярностьс уче-томвсехвозможныхвидовотчетов,которыевызахотитеформироватьв бу-дущем.Какбывынистарались,выбраннаягранулярностьникогдане будетидеальноподходитьдлявсехсоздаваемыхвамимер.В следующихразделахмырассмотримвариантиспользованияв моделиданныхсразунесколькихтаблиц,чтодаствамвозможностьоперироватьболеечемоднимуровнемгранулярности.

24 Введение в моделирование данных

Page 22: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

ввеДение в мОДель ДанныхИзпредыдущейглавывыузнали,чтомодельданных,состоящаяизоднойтаблицы, таит в  себе проблему в  отношении определения правильногоуровнягранулярности.ПользователиExcelзачастуюприменяюттакиемо-дели,посколькудоверсииExcel2013строитьсводныетаблицыможнобылотольконаихосновании.В Excel2013компанияMicrosoftввелапонятиемо-делиданныхExcel, чтобыможнобыло загружать сразунесколькотаблици создаватьсвязимеждуними –этопозволилопользователямпрограммыстроитьоченьмощныемоделиданных.

Чтожетакоемодельданных?Модель данных –этопростонабортаблиц,объединенныхсвязями(relationships).Модельизоднойтаблицы –тожемо-дель,хотьи не представляющаябольшогоинтереса.Именносвязи,объеди-няющиенесколькотаблиц в  составе единоймоделиданных,и делают еестольмощнойи удобнойдляанализа.

Создание модели данных вполне естественно при загрузке сразу не-сколькихтаблиц.Болеетого,обычноинформацияимпортируетсяизбазданных, обслуживаемых специалистами, которые уже создали модельданных за вас. Это означает, что ваша модель зачастую будет простоимитироватьмодель из источникаданных. В таком случае ваша работасущественноупрощается.

Ксожалению –ивыпойметеэто,читаякнигу, –модельданныхв источ-никеоченьредкобудетотвечатьвсемвашимтребованиямв планебудущегоанализаинформации.Нашазадача –напримерахс возрастающейсложно-стьюнаучитьваспроектироватьсобственнуюмодельданных,отталкиваясьотисточника.А чтобыупроститьпроцессобучения,мыбудемзнакомитьвасс имеющимисятехникамипоследовательно –отпростогок сложному.И начнемс самыхоснов.

Длязнакомствас концепциеймоделиданныхзагрузитетаблицыProductи  Salesиз базыданныхContoso в модельExcel.После этого выувидитедиаграммукакнарис. 1.7 –сдвумятаблицамии содержащимисяв нихстолбцами.

Примечание. В Power Pivot вы можете получить доступ к диаграм-ме связей. Для этого выберите вкладку Power Pivot на ленте Excel и нажмите Manage (Управление). Далее на вкладке Home (В нача-ло) окна Power Pivot нажмите Diagram View (Представление диа-граммы) в группе View (Просмотр).

Введениев модельданных 25

Page 23: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Рис. 1.7.В модель данных вы можете загружать несколько таблиц

Двенесвязанныетаблицыв представленномпримереещене являютсяполноценноймодельюданных.Покаэтопростодветаблицы.Чтобыпреоб-разоватьихв осмысленнуюмодель,необходимоустановитьсвязимеждута-блицами.В нашемпримереобетаблицысодержатобщееполеProductKey.В таблицеProductэтотстолбецпредставляетсобойпервичный ключ(primarykey),чтопредполагаетуникальностьзначенийв неми возможностьиден-тифицироватьпонимтовары. В таблице Sales этот столбец служитинойцели,а именнодляидентификациипроданноготовара.

Информация. В столбце, являющемся первичным ключом табли-цы, содержатся уникальные значения для каждой записи. Таким образом, зная значение поля, вы можете однозначно идентифи-цировать его положение в таблице, то есть получить строку. При этом столбцов с уникальными значениями может быть несколько, и все они будут являться ключами. В первичном ключе нет ничего загадочного. С технической точки зрения он представляет собой столбец, уникально идентифицирующий строку в таб лице. К при-меру, в таблице покупателей первичным ключом может быть код покупателя, даже если поле с именем также содержит уникальные значения.

Еслиу васестьуникальныйидентификаторв однойтаблицеи полев дру-гой,ссылающеесянанего,выможетесоздатьмеждуэтимидвумятаблица-мисвязь.Дляправильнойустановкисвязимеждутаблицамиобаусловиядолжнывыполняться.Еслипредполагаемоедлясоздаваемойсвязиключе-

26 Введение в моделирование данных

Page 24: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

воеполехранитнеуникальныезначения,вампридетсяпредварительноиз-менитьмодельданныхприпомощиопределенныхтехник,описываемыхв этойкниге.А сейчасдавайтенанашемпримерепояснимнекоторыеосо-бенностисвязей:

� таблица Sales называется таблицей-источником (source table).СвязьберетсвоеначалоизтаблицыSales.Этоозначает,чтодлятого,чтобыполучитьтовар,вывсегданачинаетес продажи.Получивзна-чениеключевогополятовараизтаблицыSales,выищетеегов табли-цеProduct.Теперьвызнаете,с какимтоваромимеетедело,а такжеполучаетедоступковсемегоатрибутам;

� таблицаProductназываетсяцелевой(targettable)дляэтойсвязи.Вы начинаетепоискс таблицыSalesи переходитек Product.Значит,таблицаProductи естьцельустанавливаемойсвязи;

� связьберетсвоеначалоизтаблицы-источникаи направляетсяк целевойтаблице.Инымисловами,у связиестьнаправление.По-этомунадиаграммах связьчасто сопровождает стрелка,идущаяотисточникак цели.Но в разныхпрограммныхпродуктахграфическоеотображениесвязисвое;

� таблица-источниктакжеименуетсяв связикак«многие».Этимназваниемтаблицаобязанатому,чтодлякаждоготоварав таблицепродажможетбытьмногозаписей,тогдакаккаждойпродажесоот-ветствуетлишьодинтовар.По тойжепричинецелевойтаблицев свя-зиотводитсяназвание«один».В этойкнигемыбудемпользоватьсяименноэтойтерминологией;

� столбец ProductKey присутствует в  обеих таблицах. При этомв таблицеProductэтоключевоеполе,а втаблицеSales –нет.По дан-ной причине применительно к  таблице Productмы называем полеProductKeyпервичнымключом,тогдакакв таблицеSalesоноимену-етсявнешнимключом.Подвнешним ключом(foreignkey)подразуме-ваетсястолбец,указывающийнапервичныйключв другойтаблице.

Все этитерминыширокоиспользуются в  областимоделированиядан-ных,и этакнигане станетисключением.Представивтерминологиюнашимчитателям, мы будем использовать ее на протяжении всей книги. Но  неволнуйтесь.В первыхглавахмыбудемнапоминатьвамзначениетогоилииногоопределения,покавык нимне привыкнете.

ИспользуяExcelи PowerBI,выимеетевозможностьсоздаватьсвязипу-тем перетаскиваниямышью поля, являющегося внешним ключом (в  на-шем случае это ProductKey в  таблице Sales), к  первичному ключу (у  насэтоProductKey в таблицеProduct).Сделав это, вы заметите, чтониExcel,ниPowerBIне используютстрелкидляобозначениясвязей.Вместоэтогонаконцахлинии,соединяющейтаблицы,выобнаружитеединичку(один)и звездочку(многие).На рис. 1.8представленасоответствующаядиаграммаизPowerPivot.Заметьте,чтопосерединелиниивсежеприсутствуетстрелка,

Введениев модельданных 27

Page 25: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

ноонане определяетнаправлениесвязи.Вместоэтогоонаслужитсовсеминымцелям,а именнозадаетнаправлениераспространенияфильтрации,о чеммыпоговоримв следующихглавахэтойкниги.

Рис. 1.8.Связь между таблицами представлена линией с индикаторами на концах («1» для одного и «звездочка» для многих)

Послесвязываниятаблицвыможетеосуществлятьсуммированиезна-ченийв таблицеSales,делаясрезыпостолбцамизтаблицыProduct.К при-меру,какпоказанонарис. 1.9,вы можетеиспользоватьцветтовара(стол-бецColorизтаблицыProduct,каквиднонарис. 1.8)в качествесрезаприсуммированиипоколичествупроданныхтоваров(столбецQuantityв таб-лицеSales).

Примечание. Если вы не видите вкладку Power Pivot в Excel, вероят-но, произошла какая-то ошибка, в результате чего надстройка была отключена. Чтобы вновь активировать ее, нажмите на вкладке File (Файл) и выберите пункт Options (Параметры) на левой панели. В ле-вой части окна Excel Options (Параметры Excel) нажмите на Add-Ins (Надстройки). После этого раскройте выпадающий список Manage (Управление), выберите пункт COM Add-Ins (Надстройки COM) и на-жмите Go  (Перейти). В окне COM Add-Ins (Надстройки для модели компонентных объектов (COM)) выберите Microsoft Power Pivot for Excel. В том случае, если этот пункт выбран, снимите выделение. Пос-ле этого нажмите OK. Если вы снимали выделение пункта Microsoft Power Pivot for Excel, вернитесь в окно COM Add-Ins и снова выбери-те его. Вкладка Power Pivot должна появиться на ленте.

28 Введение в моделирование данных

Page 26: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Рис. 1.9.После связывания таблиц вы можете осуществлять срезы по значениям одной таблицы, используя столбцы из другой

Этобылвашпервыйпримермоделиданных,состоящейиздвухтаблиц.Какмыужесказали,модельданных –этопростонабортаблиц (в нашемслучаеSalesи Product),объединенныхсвязями.Передтемкакидтидальше,давайтеуделимещенемноговременигранулярности –наэтотразприме-нительнок моделиизнесколькихтаблиц.

Впервомразделе этой главы вы уяснили, насколько важно (и  сложно)определитьправильныйуровеньгранулярностидляконкретнойтаблицы.Принеправильномвыборегранулярностидальнейшиерасчетыв этойтаб-лицесущественноусложнятся.А чтоможносказатьо гранулярностив но-воймоделиданных,состоящейиздвухтаблиц?В этомслучаевыстолкне-тесьс задачейиногохарактера,решитькоторуюбудетв каком-тосмыслепроще,нопонять –сложнее.

Посколькутеперьу васв наличииестьдветаблицы,тои гранулярностейбудетдве.В таблицеSalesгранулярностьустановленанауровнепродажи,а втаблицеProduct –науровнетовара.Фактическигранулярностькаккон-цепцияотноситсяк таблице,а нек моделиданныхв целом.Когдав вашеймоделинесколькотаблиц,выдолжныпозаботитьсяо том,чтобыв каждойизнихбыланастроенагранулярность.Дажееслисценарийс наличиемне-сколькихтаблицкажетсявамболеесложнымпосравнениюс единственнойтаблицей,модельюданных, созданнойнаих основе, будет гораздолегчеуправлять,а гранулярностьперестанетбытьпроблемой.

Болеетого,в этомслучаесовершенноестественнобудетустановитьгра-нулярность в  таблице Sales на уровне продажи, а  в таблице Product – науровнетовара.Вспомнитепервыйпримеризэтойглавы.У насбылаоднатаблица продаж с  гранулярностью, установленной на уровне категориии подкатегориитовара.Причинойбылото, чтоинформацияо категориии подкатегориитоварахраниласьв таблицеSales.Инымисловами,вам не-обходимо было принимать решение по поводу гранулярности, потому что

Введениев модельданных 29

Page 27: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

данные располагались не на своем месте.Когдавсенаходитсятам,гденужно,гранулярностьужене доставляеттакиххлопот.

Посвоейсутикатегорияявляетсяатрибутомтовара,а непродажи.Да,в определенномсмыслекатегориюможноназватьи атрибутомпродажи,нолишьпотому,чтопродажаотноситсяк конкретномутовару.Поместивключтоварав таблицуSales,выможетепосредствомсвязиизвлекатьвсеатрибу-тытоваров,включаякатегорию,цвети многоедругое.Такимобразом,от-сутствиенеобходимостихранитькатегориютоварав таблицепродажпрак-тическисвелонанетпроблемувыборауровнягранулярности.То жесамоекасается и другихатрибутовтовара:цвета,ценызаединицу,наименованияи всехостальных.

Информация. В хорошо спроектированной модели данных гра-нулярность каждой таблицы установлена правильно, что делает структуру одновременно более простой и эффективной. Все дело в связях – полноту их мощи вы почувствуете, когда начнете мыс-лить категориями модели из нескольких таблиц и избавитесь от однотабличного подхода, характерного для работы в Excel.

Если внимательно посмотреть на таблицу Product, можно заме-тить,чтов нейотсутствуюткатегорияи подкатегория.Затоесть столбецProductSubcategoryKey,названиекоторогоговорито том,чтоэтовнешнийключ,ссылающийсянадругуютаблицу(гдеэтополебудетпервичнымклю-чом) с  перечислением подкатегорий товаров. Фактически в  базе данныхкатегории и  подкатегории товаров разделены на две таблицы. Загрузивв модельданныхобетаблицыи правильнопостроивсвязи,выувидитенадиаграммев PowerPivotсхему,показаннуюнарис. 1.10.

Рис. 1.10.Категории и подкатегории товаров хранятся в разных таблицах, к которым можно обратиться посредством связей

Как видите, информация о  товарах разнесена сразу на три таблицы:Product,ProductSubcategoryи ProductCategory.Такимобразом,образуетсяце-

30 Введение в моделирование данных

Page 28: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

лаяцепочкасвязей,начинаяс Product,черезProductSubcategoryи кProductCategory.

Чтопослужилопричинойвыборатакогоподходак проектированиюмо-дели?Поначалукажется,чтоэточересчурусложненныйспособдляхране-ниядовольнопростойинформации.Однакоу этойтехникиестьцелыйрядпреимуществ,пустьи не стольочевидныхс первоговзгляда.Выноскатего-риитовараизтаблицыпродажпозволяетхранитьназваниекатегории,к ко-тороймогутпринадлежатьсразунесколькотоваров,в единственнойстрокетаблицыProductCategory.Этоправильныйспособхраненияинформациисразуподвумпричинам.Во-первых,этопозволяетсохранитьместонадис-кеиз-заотсутствиянеобходимостихранитьдублирующуюсяинформацию.Во-вторых,принеобходимостиизменитьназваниекатегориитоваравамнужнобудетсделатьэтовсегов однойстрочке.Всетоварыавтоматическиподхватятновоенаименованиепосредствомсвязи.

Утакойтехникипроектированиямоделиданныхестьсвоеназвание –нор-мализация (normalization). Говорят, что атрибуттаблицы (вроде нашей ка-тегориитовара)нормализован,еслионвынесенв отдельнуютаблицу,а наегоместопомещенключ,ссылающийсянаэтутаблицу.Этоширокораспро-страненнаятехника,которуюиспользуютархитекторыбазданныхприпро-ектированиимоделей.Обратнаятехника,заключающаясяв храненииатри-бутовв таблице,которойонипринадлежат,носитназваниеденормализация(denormalization).В денормализованнойтаблицеодини тотжеатрибутмо-жетвстречатьсямножествораз,и принеобходимостиизменитьегоназваниевампридетсякорректироватьвсестроки,содержащиеэтотатрибут.К при-меру,в нашеймоделиатрибутцветатовара(Color)денормализован,а значит,значениеRedбудетповторятьсявовсехстрокахс краснымитоварами.

Вас,должнобыть,интересует,почемуразработчикбазыданныхContosoрешилхранитьатрибутыкатегориии подкатегориитоваровв отдельныхтаблицах(тоестьв нормализованномвиде),а цвет,наименованиепроизво-дителяи бренд –в таблицеProduct(безприменениянормализации).В этомконкретномслучаеответпрост:Contoso –этодемонстрационнаябазадан-ных,и наеепримерехотелосьпоказатьвсевозможныетехники.На прак-тике вы будете встречаться как с  преимущественно нормализованными,таки сденормализованнымимоделямив зависимостиотособенностейис-пользованиябазыданных.Будьтеготовык тому,чтоодниатрибутыбудутнормализованы,а другие –нет.Этовполнеприемлемодлямоделированияданных,посколькуздесьестьразныеметодыи подходы.К томужевполневозможно,чторазработчикбазыданныхбылвынужденприниматьтоилииноерешениепоструктуремоделиужев процессеработы.

Моделис высокойстепеньюнормализацииобычноиспользуютсяв си-стемах обработки транзакций в  реальном времени (online transactionalprocessingsystems –OLTP).Такиебазыданныхспроектированыспециальнодлявыполненияежедневныхоперативныхдействийвродеобслуживанияподготовки счетов, размещения заказов, доставки товаров или создания

Введениев модельданных 31

Page 29: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

и  удовлетворения заявок. Нормализация здесь используется как способсокращениязанимаемогонадискеместа(чтообычноведетк увеличениюбыстродействия базы данных) и  повышения эффективности операцийвставкии обновленияинформации,характерныхдляOLTP-систем.В еже-дневнойработекомпаниичастовыполняютсяоперацииобновлениядан-ных(например,о покупателях),и хочется,чтобыобновленнаяинформациямгновеннораспространяласьнавсетаблицы, связанныес покупателями.Этогоможнодобитьсяпутемнормализациисоответствующихатрибутов.В такойсистемевсезаказы,ссылающиесянаконкретногопокупателя,будутобновленысразупослеизмененияинформациио немв базеданных.Еслибыатрибутыбылиденормализованы,тообновлениеадресапокупателяпо-влеклобыза собойизменениесотенстрокв базеданных,чтонегативносказалосьбынабыстродействиисистемы.

OLTP-системызачастуюнасчитываютсотнитаблиц,посколькупочтикаж-дыйатрибутхранитсяв отдельнойтаблице.Применительнок товарам,допус-тим,можнобылобызавеститаблицыдляхраненияпроизводителей,брендов,цветови прочего.В результатехранениепростойсущностивродетовароввы-лилосьбыв 10–20отдельныхтаблиц,объединенныхсвязями.Разработчикта-койбазыданныхс гордостьюназвалбысвоедетище«хорошоспроектирован-ноймодельюданных»и,несмотрянанекоторыееестранности,былбыправ.ДляOLTP-системнормализацияпочтивсегдабудетоптимальнымвыбором.

Нововремяанализаданныхвыне выполняетеоперациивставкии об-новления. Вас интересует исключительно чтение информации. И  в этомслучаенормализациятаблицвамник чему.Представьте,чтовыстроитесводнуютаблицунаоснованиинашейпредыдущеймоделиданных.В этомслучаесписокполейбудетвыглядетьпримернотак,какнарис. 1.11.

Рис. 1.11.В списке полей сводной таблицы, построенной на основании нормализован-ной модели данных, слишком много таблиц – легко запутаться

Информацияо товарах хранится в трехтаблицах,и  все онипредставле-ныв спискеполейсводнойтаблицы.Хужетого,в таблицахProductCategoryи ProductSubcategoryсодержитсявсегопоодномустолбцу.Такчтохотьнор-

32 Введение в моделирование данных

Page 30: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

мализацияи являетсяоптимальнымвыборомдляOLTP-систем,длянуждана-литикионаобычноне подходит.Когдавыформируетеотчеты,вамне должныбытьинтереснытехническиеподробностихраненияинформациио товарах.Вамбудетудобнее,есликатегорияи подкатегориябудутпредставленыкакстолбцыв таблицеProduct –этоболеепривычнодляанализаданных.

Примечание. В этом примере мы намеренно скрыли некоторые бесполезные столбцы вроде первичных ключей, что является хо-рошей практикой. В противном случае вы бы видели множество полей, что затруднило бы процесс анализа. Представьте себе, как бы выглядел список полей, если бы информация о товарах хра-нилась в десяти таблицах. Вам бы пришлось немало потрудиться, чтобы найти нужный столбец для вывода в отчет.

Впроцессесозданиямоделиданныхдлянужданалитикивамнеобходи-моприйтик оптимальномууровнюденормализацииданныхвнезависимо-стиоттого,какинформацияхранитсяв базефизически.Каквыужевидели,излишняяденормализацияможетпривестик проблемамс определениемгранулярноститаблиц.Позже вы узнаете, какие еще негативные послед-ствиявлечетзасобойчрезмерноеувлечениеденормализацией.Какуюжестепеньденормализацииможносчитатьоптимальной?

Для ответа на этот вопрос нет какого-то единого правила. Вы должныинтуитивнодойтидотакогоуровняденормализации,прикоторомструк-туратаблицыстанетсамодостаточнойи будетполностьюописыватьхраня-щуюсяв нейсущность.В нашемпримеренеобходимоперенестистолбцыProduct Category и  Product Subcategory в  таблицу Product, поскольку ониявляютсяатрибутамитоварови вамне хотелосьбывидетьихв отдельныхтаблицах.Приэтомне следуетденормализовыватьинформациюо товарахв таблицеSales,посколькутоварыи продажи –эторазныесущности.Кон-кретнаяпродажанапрямуюсвязанас товаром,нонельзясказать,чтоонасоставляетс нимединоецелое.

Наэтомэтапевыможетерассматриватьмодельданных,состоящуюизединственнойтаблицы,какчрезмерноденормализованную.Этотаки есть.Вспомните,мы задумывались о  том, чтобы установить гранулярность науровнетоварав таблицеSales,чтоизначальнонеправильно.В корректноспроектированной модели данных с  оптимальной степенью денормали-зациипроблемыс гранулярностьюрешаютсясамисобой.Еслижемодельизлишнеденормализована,начинаютсянеприятностис правильнымвы-боромуровнягранулярности.

ввеДение в Схему «звезДа»Досихпормыимелиделос оченьпростымимоделямиданных,состоящимиизтоварови продаж.В реальноммиретакиемоделипрактическине встре-

Введениев схему«звезда» 33

Page 31: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

чаются. В  распоряжении типичной компании вроде Contoso будет сразунесколькоинформационныхактивов,в числекоторыхтовары,склады,со-трудники,покупателии время.Этиактивывзаимодействуютдругс другоми генерируютсобытия.Например,в определенныйденьсотрудник,работа-ющийнаскладе,продалтоварконкретномупокупателю.

Конечно,каждыйбизнесподразумеваетсвоиинформационныеактивы,и событияу всехразные.Но еслимыслитьв общем,топочтив любомвидедеятельностибудетпрослеживатьсячеткоеразделениенаактивыи собы-тия.К примеру,в случаес медицинскимучреждениемактивамимогутбытьпациенты,заболеванияи лекарственныепрепараты,тогдакакк событияммыпричислимпостановкудиагнозаи приемлекарственногосредствапа-циентом.В  системеприемазаявокк активаммогутотноситьсяклиенты,заявкии время,а событиягенерируютсяв процессеизменениястатусаза-явок.Подумайтео видедеятельности,которымзанимаетесьвы.Навернякавамтакжеудастсявыделитьв своейобластиактивыи события.

Такоеразделениеделаетвозможнымприменениеспециальнойтехникимоделированияданных,получившейназваниесхема «звезда»(starschema).В этойсхемевсесущности(таблицы)подразделяютсянадвекатегории:

� измерения.Измерение (dimension) является информационным ак-тивом:товар,покупатель,сотрудникилипациент.Измерениясодер-жататрибуты(attribute).К примеру,атрибутамитовараявляютсяегоцвет,категория,подкатегория,производительи цена.У пациентаэтоимя,адреси датарождения;

� факты.Факт(fact) –этособытие,в котороевовлеченонесколькоиз-мерений.В базеданныхContoso,например,фактомявляетсяпродажатовара.В этомсобытииучаствуютсамтовар,покупатель,датапрода-жи и другиеизмерения.В фактахтакжесодержатсямеры(measures) –числовыепоказатели,которыеможноагрегироватьприанализесо-стояниябизнеса.Этоможетбытьколичествоилисуммапроданноготовара,размерскидкии прочее.

Послемысленногоразделениятаблицнадвекатегориистановитсяясно,чтофактысвязаныс измерениями.Каждомуотдельномутоварув таблицепродажсоответствуетнесколькострок.Инымисловами,междутаблицамиSalesи Productестьсвязь,в которойProductсоответствуетстороне«один»,а Sales –стороне«многие».Есливырасположитенадиаграммев PowerPivotвсеизмерениявокругединственнойтаблицыфактов,тополучитетипич-нуюформузвезды,показаннуюнарис. 1.12.

Схема«звезда»легкадлячтения,пониманияи использования.Измере-нияиспользуютсядляосуществлениясрезовданных,тогдакаксамаагре-гациячисловыхпоказателейвыполняетсяв таблицефактов.Удобствоэтоймоделиещеи в том,чтов спискеполейсводнойтаблицыбудетне такмногосущностей.

34 Введение в моделирование данных

Page 32: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Рис. 1.12.Схема «звезда» приобретает свои очертания после расположения измерений вокруг таблицы фактов

Примечание. Схема «звезда» получила широкое распространение в области хранилищ данных. Сегодня такая модель считается стан-дартом представления информации для нужд аналитики.

Посвоейприродетаблицыизмеренийсодержатне такмногострок –мень-шемиллиона,а обычнов интервалеотнесколькихсотендонесколькихтысяч.Таблицыфактов,напротив,чащевсегооченьобъемныеи хранятдесяткии сот-нимиллионовзаписей.В целомжесхема«звезда»получиластольширокуюпопулярность,чтобольшинствосистемуправлениябазамиданныхсегодняоптимизированыв планепроизводительностиименноподееиспользование.

Совет. Прежде чем читать дальше, попробуйте представить, как ваша собственная бизнес-модель может быть реализована с использовани-ем схемы «звезда». Не стоит на данном этапе пытаться спроектиро-вать идеальную модель, но размышление над этой задачей поможет вам в будущем лучше оперировать таб лицами измерений и фактов.

Введениев схему«звезда» 35

Page 33: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Важнопривыкнутьк схеме«звезда».Посредствомнеевашиданныебудутпредставленыв наиболееудобномвиде.Крометого,терминология,приме-няемаяв этойсхеме,оченьширокоиспользуетсяв сферебизнес-аналитики(BI),и этакнига –не исключение.Мы частоупотребляемтерминыизме-рениеи таблицафактов,чтобыподчеркнутьразницумеждумаленькимии большимитаблицами.В следующейглавемыбудемговоритьо главныхи подчиненныхтаблицах,попутнорешаязадачуустановлениясвязеймеж-дуразнымитаблицамифактов.И ктомумоментумыбудемсчитать,чтовыужехорошоусвоилиразницумеждутаблицейфактови измерением.

Стоитотметитьнескольковажныхособенностейустройствасхемы«звез-да».Однойизнихявляетсято,чтотаблицыфактовмогутбытьобъединенысвязямис измерениями,тогдакакизмеренияне должныбытьсвязанымеж-дусобой.Чтобыпроиллюстрироватьважностьэтогоправилаи показать,чтобывает,еслиемуне следовать,предположим,чтомыдобавилив модельно-воеизмерениеGeography,содержащеегеографическиеданные,такиекакго-род,штати страну/регионрождения.ОбанашихизмеренияStoreи Customerмогутбытьобъединенысвязьюс Geography.В итогеу насмоглабыполучить-сямодель,представленнаянарис. 1.13в видедиаграммыPowerPivot.

Рис. 1.13.Новое измерение Geography объединено связями с Customer и Store

36 Введение в моделирование данных

Page 34: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Вэтоймоделинарушеноправило,запрещающееналичиесвязеймеждуизмерениями.По сути,всетритаблицы –Customer,Storeи Geography –яв-ляютсяизмерениями,ноприэтомонисвязаны.Чтоплохогов такоймоде-ли?А то,чтоонавноситнеоднозначность(ambiguity).

Представьте,чтовыделаетесрезданныхпогородув надеждепосчитатьколичествопроданныхтоваров.В результатезапросможетпройтипосвязимеждутаблицамиGeographyи Customerи вернутьколичествотоваров,про-данноепокупателямизвыбранногогорода.А еслипройтипосвязимеждуGeographyи Store,томыполучимпродажисоскладаизэтогогорода.Естьи третийвариант –использоватьобесвязии выяснить,какоеколичествотоваровбылопроданопокупателюизвыбранного города, сосклада,рас-положенноготамже.У насполучиласьнеоднозначнаямодельданных,и по-нять,какиецифрыонавыдает,крайнепроблематично.И этоне толькотех-ническаяпроблема,нои логическая.Пользователь,которыйбудетработатьс этоймоделью,будетсбитс толкуи не сможетпонять,чтозначатцифрыв отчетах.И именнопопричинееенеоднозначностиниExcel,ниPowerBIне позволятвамсоздатьподобнуюмодель.В следующихглавахмыбудемрассматриватьвопросынеоднозначностимоделейболееподробно.Покажеважнознать,чтоExcel(а именнов немсоздавалсяэтотпример)сделалсоз-даннуюсвязьмеждутаблицамиStoreи Geographyнеактивной,чтобыне до-пуститьнеоднозначностив моделиданных.

Какразработчикмоделивыдолжнывсемиспособамистаратьсяизбегатьнеоднозначности.Какизбавитьрассматриваемуюнамимодельотнеодно-значности?Ответоченьпрост.Необходимопровестиденормализациюмо-дели –перенестинужныеколонкиизтаблицыGeographyв Storeи Customer,а  само измерение с  географией удалить из модели. Также вы могли бывключить в  измерения колонку ContinentName с  названием континента,и получиласьбымодель,представленнаянарис. 1.14.

Проведяденормализациюмодели,мыизбавилиееотнеоднозначности.Теперьпользователисмогутосуществлятьсрезыданных,используягеогра-фическиепризнакиизтаблицыCustomerилиStore.В итогеGeography –этотожеизмерение,нодлявозможностиполноценногоиспользованиясхемы«звезда»нампришлосьегоденормализовать.

Введениев схему«звезда» 37

Page 35: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Рис. 1.14.После денормализации колонок из Geography модель вернулась к схеме «звезда»

Напоследок хотелось бы познакомить вас с  еще одним термином, ко-торыйбудетчастоиспользоватьсяв книге, –снежинка.Схема «снежинка»(snowflakeschema)являетсяразновидностью«звезды»с темисключением,чтонекоторыеизмеренияне связаныс таблицейфактовнапрямую.Вместоэтогоониобъединеныс нейпосредствомдругихизмерений.Вы ужевстре-чалисьс такойсхемойнастраницахэтойкниги,и мывновьпредставимвамеенарис. 1.15.

Нарушает ли схема «снежинка» правило, запрещающее установку свя-зей между измерениями? В  каком-то смысле да, ведь таблицы ProductSubcategoryи Productпредставляютсобойизмерения,и приэтомониобъ-единены связью.Отличие этого примера от предыдущего состоит в  том,что эта связь является единственной, соединяющей таблицу ProductSubcategory с другимиизмерениями,объединеннымис таблицейфактов,илитаблицейProduct.ТакчтовыможетерассматриватьтаблицуProductSubcategoryкакизмерение,объединяющеев группыразличныетовары,нопри этом не  группирующее содержимое других измерений или таблицыфактов.То жесамоевернои длятаблицыProductCategory.Такимобразом,

38 Введение в моделирование данных

Page 36: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

хотясхема«снежинка»и нарушаетуказанноевышеправило,онане создаетв моделиданныхнеоднозначности,а значит,с нейвсев порядке.

Рис. 1.15.Измерения Product Category, Subcategory и Product образуют цепочку связей в виде снежинки

Примечание. Образования схемы «снежинка» можно избежать путем денормализации колонок из дальних таблиц в измерения, непосредственно связанные с таблицей фактов. Но иногда пред-ставление данных в виде снежинки бывает оправданным, и если не считать небольших проблем с производительностью, других не-достатков у него нет.

Каквыузнаетеизэтойкниги,в большинствеслучаевсхема«звезда»будетлучшимвыборомдлявашеймоделиданных.Да,изредкабудутвстречатьсясценарии,в которыхтакоепредставлениебудетнеоптимальным.И всежекаждыйраз,когдавыбудетеработатьс модельюданных,рассматривайтев качествеприоритетнойсхему«звезда».Дажееслионаокажетсянеидеаль-нойв даннойконкретнойситуации,онабудетблизкак идеалу.

Примечание. В процессе изучения моделирования данных в какой-то момент вам может показаться, что лучше отойти от применения схемы «звезда». Не делайте этого. Есть целый ряд причин, по ко-торым схема «звезда» в подавляющем большинстве случаев будет оптимальным выбором. К сожалению, многие из этих причин ста-новятся очевидными только с приобретением опыта в сфере про-ектирования моделей данных. Если у вас пока такого опыта нет, доверьтесь десяткам тысяч профессионалов в области бизнес-ана-литики по всему миру, которые прекрасно знают, что схема «звез-да» будет лучшим выбором почти всегда – какой бы специфики ни касалась модель данных.

Введениев схему«звезда» 39

Page 37: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

пОнимание важнОСти именОвания ОбъектОвПри построении модели данных вы обычно загружаете информацию избазыданныхSQLServerилидругихисточниковданных.Великавероятность,чторазработчикбазыданныхв процессеименованияобъектовпользовалсяопределеннымсоглашением.В нашевремясуществуетвеликоемножествосоглашенийобименованииобъектов –мыне сильноошибемся,еслиска-жем,чтосвоесоглашениеестьсегоднябуквальноу каждого.

Многиеразработчикиприпроектированиимоделиданныхпредпочита-ютиспользоватьпрефиксDimдляназванийизмеренийи Factдлятаблицфактов. Так что сегодня зачастуюможно встретить таблицы с  названия-миDimCustomerи FactSales.Другиепредпочитаютделатьразличиямеждупредставлениямии физическимитаблицами,используяпрефиксыVw иTblсоответственно. А  кто-то считает, что буквенного обозначения недоста-точнодляполнойясностии добавляетцифры –получаетсячто-товродеTbl_190_Sales. Продолжать можно до бесконечности, но суть вы уловили.Стандартовименованиямасса,и укаждогоестьсвоиплюсыи минусы.

Примечание. Можно поспорить с уместностью применения подоб-ных стандартов при именовании объектов в базах данных, но эта дискуссия выйдет далеко за пределы данной книги. Так что мы ограничимся обсуждением использования соглашений об имено-вании в моделях данных, которые вы создаете и просматриваете в Power BI и Excel.

Вы не  обязаны при именовании объектов следовать каким-либо тех-ническимстандартам –достаточнобудетздравогосмыслаи обеспечениялегкости использования в  дальнейшем. Например, мало кому доставитудовольствиеработас модельюданных,в которойтаблицыносятназва-нияVwDimCstmrилиTbl_190_FactShpmt. Это очень странныеи малопо-нятныенаборысимволов,но,признаться,мыдосихпорвстречаемсяс по-добнымиименамиобъектовв моделяхданных.И этомыговоримтолькоо правилахименованиятаблиц.Когдаречьзаходито столбцах,всестано-вится совсемплохо.Единственныйнашсоветзаключаетсяв том,чтобыиспользоватьлегкочитающиесяназвания,ясноописывающиеизмерениеилитаблицуфактов.

На протяжении лет мы спроектировали множество аналитических си-стеми заэтовремявыработалиоченьпростойсводправилпоименованиютаблици столбцов:

� наименованиеизмерениядолжносостоятьтолькоизназванияактивав единственномилимножественномчисле.Так,к приме-ру,таблицасоспискомпокупателейможетназыватьсяCustomerилиCustomers.Информацияо товарахдолжнахранитьсяв таблицес на-

40 Введение в моделирование данных

Page 38: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

званиемProductилиProducts.Мы считаем,чтоединственноечислолучшеподходитдляименованияизмерений,посколькуоноидеальносочетаетсяс запросаминаестественномязыкев PowerBI;

� еслиназваниеактивасостоитизнесколькихслов,используйтедляихразделенияпрописныебуквы.К примеру,категориитова-ровмогутхранитьсяв таблицес названиемProductCategory,а странаотгрузкиможетименоватьсяCountryShipилиCountryShipment.Вмес-то разделения слов прописными буквами допустимо использоватьобычные пробелы  – например, таблица может называться ProductCategory.Здесьестьтолькоодинминус –коднаязыкеDAXможетне-многоусложниться.Но всеэтонавашеличноеусмотрение;

� дляименитаблицыфактовнеобходимоиспользоватьназваниефактическойоперациии всегдаприменятьмножественноечис-ло.Так,фактыпродажможнохранитьв таблицес названиемSales,а фактызакупок, каквыужедогадались, –втаблицеPurchases.Есливыбудетеиспользоватьдляфактовисключительномножественноечисло, то при взгляде на модель данных вам будет представлять-ся один покупатель (из таблицы Customer) со множеством продаж(изтаблицыSales),а природасвязи «один ко многим»будетчитатьсяестественнымобразом;

� избегайтеиспользованияслишкомдлинныхименобъектов.На-звания вроде CountryOfShipmentOfGoodsWhenSoldByReseller могутприводитьв замешательство.Никомуне интереснобудетчитатьта-киедлинныеимена.Вместоэтоголучшеподобратьуместнуюаббре-виатуру,попутноисключивлишниеслова;

� избегайтеиспользования слишкомкороткихимен. Вселюбятиспользоватьв своейречисокращения.И еслив повседневномоб-щенииэтоприемлемои забавно,тов отчетахчастобываетнеумест-нои вноситнеразбериху.К примеру,вымоглибыиспользоватьдляобозначения страныотгрузкидляторговыхпосредников (countryofshipmentforresellers)аббревиатуруCSR,ноеебудеточеньтруд-нозапомнитьтем,ктоне работаетс вамиизодняв день.Помнитео том,чтоотчетымогутиспользоватьсясамымиразнымипользо-вателями,многиеизкоторыхне имеютпонятияо привычныхдлявассокращениях;

� ключевой атрибут в  измерении должен содержать названиетаблицы и  окончание Key. Например, первичный ключ в  табли-цеCustomerдолженназыватьсяCustomerKey. То же самое касаетсяи внешнихключей.Такчтов будущемвысможетелегкоопределятьвнешниеполяпоокончаниюKeyи нахождениюв таблицес другимименем.Допустим,полеCustomerKeyв таблицеSalesявляетсявнеш-нимключом,ссылающимсянатаблицуCustomer,гдеоновыступаетв качествепервичногоключа.

Пониманиеважностиименованияобъектов 41

Page 39: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

Каквидите,правилнемного.Всеостальное –навашеусмотрение.Привыбореназванийдляостальныхстолбцовполагайтесьназдравыйсмысл.Хорошоименованноймодельюданныхлегкои простоделитьсяс другими.Крометого,приследованииэтимпростымправиламвамбудетлегчеобна-ружитьошибкии неточностив своеймоделиданных.

Совет. Если сомневаетесь по поводу именования того или иного объекта, спросите себя, поймет ли кто-нибудь выбранное вами имя таблицы или столбца. Не думайте, что вы один будете пользоваться своими отчетами. Рано или поздно вам захочется поделиться ими с человеком, обладающим иными фоновыми знаниями. Если он без труда сможет понять названия объектов в вашей модели, значит, вы на правильном пути. В противном случае вам лучше пересмотреть свои принципы именования.

заключениеВэтойглавевыпознакомилисьс основамимоделированияданных,а именно:

� однатаблица –этоужемодельданных,пустьи в еепростейшейформе;� приналичииединственнойтаблицывыдолжныправильновыбратьеегранулярность.Этооблегчитнаписаниеформулв будущем;

� разница между моделью с  одной таблицей и  несколькими состоитв том, что во втором случаетаблицыобъединенымежду собойпо-средствомсвязей;

� любаясвязьхарактеризуетсясторонойс однимэлементоми многи-ми –этотпоказательговорито том,сколькостроквыобнаружите,про-следовавпосвязив этомнаправлении.Посколькуодинтоварможетприсутствоватьсразув несколькихпродажах,в соответствующейсвя-зитаблицаProductбудетпредставлятьодинэлемент,а Sales –многие;

� в целевой для связи таблице обязательно должен присутствоватьпервичныйключ –колонкас уникальнымизначениями,однозначноопределяющимикаждуюстроку.Приотсутствиипервичногоключасвязьк этойтаблицеустановитьневозможно;

� нормализованной моделью данных называется модель, в  которойинформацияхранитсяв компактномвиде,безповторениязначенийв разныхстроках.Обычнонормализациямоделиведетк образова-ниюбольшогоколичестватаблиц;

� денормализованнаямодельданныххарактеризуетсямножествомпо-вторенийзначенийв строках(например,словоRed(красный)в такоймоделиможетвстречатьсямногократно –длякаждоготоваракрасногоцвета),ноприэтомсодержитменьшееколичествотаблиц;

42 Введение в моделирование данных

Page 40: УДК 004.424 ББК 32.372 Ф43 Альберто Феррари и Марко Руссо · Ф43 Анализ данных при помощи Microsoft Power BI и Power Pivot

� нормализованные модели данных обычно используются в  OLTP-системах,тогдакакденормализациязачастуюприменяетсяк моде-лям,предназначеннымдляанализаинформации;

� втипичнойаналитическоймоделиможнопровестичеткиеразличиямежду информационными активами (измерениями) и  событиями(фактами).Разделяясущностинаизмеренияи факты,мыв конечномсчетевыстраиваемструктурумоделив видезвезды.Схема«звезда»является наиболее распространенной архитектурой аналитическихмоделейданныхпооднойпростойпричине –онаотличноработаетв подавляющембольшинствеслучаев.

Заключение 43