Оглавление Об авторах 1
Благодарности 3
Посвящение 5
Предисловие 7
Введение 11
Дополнительная информация 14
ЧАСТЬ I. ВВЕДЕНИЕ В ANALYSIS SERVICES 15
Глава 1. Что нового в Analysis Services 2005 17
Усовершенствование многомерного моделирования 17
Углубленная аналитика в Analysis Services 2005 19
Изменения в архитектуре "клиент-сервер" 20
Увеличение масштабируемости системы 20
Инструменты разработки и управления 21
Управление Analysis Services 21
База данных, используемая в книге в качестве примера 22
Данные о покупателях 22
Данные о магазинах 23
Данные о товарах и складах 23
Данные о времени 23
Данные о счетах 23
Данные о валютах 24
Данные о сотрудниках 24
Куб Warehouse and Sales 24
Куб HR 24
Куб Budget 25
Куб Sales and Employees 25
Глава 2. Многомерная модель данных 26
Концептуальная модель данных 27
Физическая модель данных 28
Прикладная модель данных 28
Многомерное пространство 28
Описание многомерного пространства 29
Резюме 37
Глава 3. UDM — универсальная многомерная модель данных 39
Резюме 42
Глава 4. Обзор архитектуры "клиент-сервер" 43
Двухуровневая архитектура 44
Одноуровневая архитектура 45
Трехуровневая архитектура 46
Четырехуровневая архитектура 47
Распределенные системы 48
Распределенное хранение 48
Тонкий и толстый клиенты 49
Резюме 50
ЧАСТЬ II. СОЗДАНИЕ МНОГОМЕРНЫХ МОДЕЛЕЙ 53
Глава 5. Концептуальная модель данных 55
Язык описания данных 55
Объекты в языке описания модели 56
Резюме 60
Глава 6. Измерения в концептуальной модели 62
Атрибуты измерения 63
Свойства и значения атрибутов 65
Связи между атрибутами 66
Зависимые атрибуты 66
Ключи элементов атрибута 70
Имена элементов атрибута 73
Связи между атрибутами 75
Дискретизация атрибутов 78
Родительские атрибуты 79
Иерархии измерений 80
Типы иерархий 81
Естественные иерархии и их уровни 81
Иерархии атрибутов 86
Иерархии родители-дети 88
Резюме 90
Глава 7. Кубы и многомерный анализ 92
Измерения куба 94
Атрибуты измерения куба 99
Иерархии измерений куба 100
Ролевые измерения 101
Куб измерения 102
Перспективы 103
Резюме 106
Глава 8. Меры и многомерный анализ данных 108
Меры в многомерном кубе 108
Сумма (SUM) 112
Минимальное и максимальное значения (MAX, MIN) 112
Количество (COUNT) 112
Количество уникальных значений (DISTINCT COUNT) 113
Группы мер 114
Измерения группы мер 117
Гранулярность факта 117
Опосредованные измерения 124
Выражения мер 133
Подключенные группы мер 136
Резюме 136
Глава 9. Построение многомерной модели в BI Dev Studio 138
Создание источника данных 140
Создание и редактирование источника данных 140
Проектирование представления источника данных 141
Создание и редактирование представления источника данных 141
Проектирование измерения 144
Создание и редактирование измерения 144
Проектирование куба 149
Создание куба 149
Редактирование куба 151
Создание перспективы куба 155
Определение переводов для куба 156
Настройка и развертывание проекта для просмотра куба 157
Настройка проекта 157
Развертывание проекта 160
Просмотр куба 160
Резюме 161
ЧАСТЬ III. АНАЛИЗ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ MDX 163
Глава 10. Основы MDX 165
Оператор SELECT 166
Предложение SELECT 166
Определение координат в многомерном пространстве 167
Элементы по умолчанию и предложение WHERE 171
Контекст выполнения запроса 175
Алгебра множеств и основные операции с множествами 177
Объединение (Union) 177
Пересечение (Intersect) 178
Исключение (Except) 179
Перекрестное соединение (CrossJoin) 179
Извлечение (Extract) 180
Функции MDX 181
Функции для навигации в иерархиях 182
Функция для фильтрации множеств 184
Функции для упорядочивания данных 186
Ссылка на объекты в MDX и использование уникальных имен 188
Ссылка на объекты в MDX по имени 188
Ссылка на объекты в MDX по полному имени 188
Ссылка на объекты в MDX по уникальным именам 189
Резюме 190
Глава 11. Расширенные возможности MDX 191
Использование свойств элементов и ячеек в запросах MDX 191
Свойства элементов 191
Свойства ячеек 193
Неопределенные элементы 194
Неопределенные элементы, кортежи и пустые множества 194
Режим отсутствия элемента 195
Неопределенные значения и пустые ячейки 200
Преобразование типов между объектами MDX 205
Жесткие зависимости 207
Множества в предложении WHERE 209
Подзапросы и подкубы 212
Резюме 222
Глава 12. Вычисления MDX, основанные на кубе 224
Сценарии MDX 226
Вычисляемые элементы 227
Создание вычисляемых элементов 228
Свойство NON_EMPTY_BEHAVIOR 232
Присваивание 234
Оператор присваивания 235
Определение свойств ячеек 238
Оператор задания области действия 239
Функции Root и Leaves 242
Вычисляемые ячейки 245
Именованные множества 246
Порядок выполнения вычислений куба 250
Приоритет у наивысшей стадии 252
Разрешение рекурсии 254
Резюме 257
Глава 13. MDX-вычисления, заданные в измерении 258
Унарные операторы 258
Дополнительные формулы элементов 262
Полуаддитивные меры 265
Функция агрегирования ByAccount 267
Порядок выполнения вычислений измерения 271
Правило приоритета ближайшего 272
Резюме 275
Глава 14. Расширение MDX с использованием хранимых процедур 277
Создание хранимых процедур 278
Создание CLR-сборок 279
Создание COM-сборок 285
Вызов хранимых процедур из MDX 286
Модель безопасности 288
Модель безопасности, основанная на ролях 289
Модель безопасности по правам доступа кода 289
Модель безопасности, основанная на идентификации пользователя 290
Объектная модель сервера 292
Операции над объектами метаданных 295
Операции над объектами MDX 297
Использование системных библиотек 299
Резюме 300
Глава 15. KPI, действия и DrillThrough 302
Ключевые индикаторы производительности 302
Определение KPI 303
Просмотр и запуск KPI 309
Действия 311
Определение действий 312
Получение информации о действиях 317
DrillThrough 323
Оператор DRILLTHROUGH 323
Определение столбцов DRILLTHROUGH 326
Резюме 329
Глава 16. Запись данных в Analysis Services 330
Оператор обратной записи 331
Обновляемые и необновляемые ячейки 336
Время жизни обратной записи 337
Разрешение обратной записи 339
Преобразование секции обратной записи в обычную секцию 341
Другие способы выполнения обратной записи 341
Резюме 342
ЧАСТЬ IV. ВЗАИМОДЕЙСТВИЕ МНОГОМЕРНОЙ И РЕЛЯЦИОННОЙ МОДЕЛЕЙ 343
Глава 17. Загрузка данных из реляционной базы данных 345
Загрузка данных 345
Источники данных 347
Свойства источника данных 348
Безопасность источника данных 349
Время ожидания выполнения запроса 352
Пулинг соединений 352
Резюме 353
Глава 18. Представлениe источникa данных и привязки объектов 354
Представление источника данных 354
Именованные запросы и именованные вычисления 357
Привязка объектов 358
Привязки столбцов 359
Привязка таблиц 360
Привязка к запросу 361
Резюме 362
Глава 19. Многомерные модели и схемы реляционных баз данных 363
Схемы реляционных хранилищ данных 363
Проблема синхронизации данных многомерной и реляционной модели 366
Изменения в фактах 366
Изменения в измерениях 367
Преимущества и недостатки различных схем реляционного хранилища данных 368
Создание реляционных схем из многомерной модели 369
Использование мастеров для создания реляционных схем 370
Использование шаблонов для создания реляционных схем 372
Резюме 373
ЧАСТЬ V. ЗАГРУЗКА ДАННЫХ В ANALYSIS SERVICES 375
Глава 20. Физическая модель данных 377
Внутренние компоненты хранения данных 378
Накопитель данных 378
Файловый накопитель 380
Битовый накопитель 380
Строковый накопитель 380
Накопитель сжатых данных 382
Хеш-индекс накопителя 383
Структура данных измерения 384
Структуры данных атрибута 384
Структуры данных иерархий 394
Физическая модель куба 400
Определение секций 400
Физическая модель секции 403
Удаленные секции 411
Обзор структур данных куба 411
Резюме 413
Глава 21. Загрузка измерений и кубов 415
Обработка измерения 415
Обработка атрибутов 415
Обработка иерархий 423
Создание таблиц декодирования 423
Построение индексов 424
Схема обработки измерения 425
Типы обработки измерения 425
Обработка ROLAP-измерений 428
Обработка измерений родители-дети 429
Обработка куба 430
Обработка данных 432
Создание агрегаций и построение индексов 434
Типы обработки куба 437
Мониторинг загрузки данных и настройка обработки ошибок 443
Свойства спецификации обработки ошибок 444
Действия при возникновении ошибок обработки 447
Резюме 448
Глава 22. Использование SQL Server Integration Services 450
Использование SSIS для обработки данных 452
Загрузка данных в Analysis Services с помощью SSIS 453
Загрузка данных в измерение 454
Загрузка данных в секции 456
Резюме 457
Глава 23. Дизайн агрегаций 458
Агрегации и набор агрегаций 458
Создание агрегаций 461
Измерения в стиле статических отчетов 462
Гибкие и жесткие агрегации 464
Агрегации и дизайн агрегаций 465
Алгоритм дизайна агрегаций 468
Оптимизация дизайна агрегаций 470
Конфигурация журнала запросов 470
Мониторинг использования агрегаций 472
Резюме 474
Глава 24. Управление актуальностью данных 475
Упреждающее кеширование 476
Установка времени и упреждающее кеширование 479
Частота обновлений 479
Длительная обработка кеша MOLAP 480
Сценарии упреждающего кеширования 481
MOLAP 483
MOLAP с расписанием 483
Автоматический MOLAP 483
MOLAP средней задержки обновления данных 484
MOLAP низкой задержки обновления данных 484
HOLAP реального времени 484
ROLAP реального времени 485
Уведомления об изменениях и порядок обработки объектов 485
Формирование расписания обработки 485
Типы уведомлений об изменениях 487
Получение уведомлений с помощью трассировки SQL Server 488
Получение уведомлений, инициированных пользователем 489
Получение уведомлений с помощью SQL-запросов 489
Рекомендации по использованию упреждающего кеширования 491
Мониторинг активности упреждающего кеширования 492
Резюме 493
Глава 25. Создание масштабируемых приложений 495
Подходы к увеличению масштабируемости 495
Вертикальное масштабирование 496
Горизонтальное масштабирование 497
OLAP-ферма 497
Хранилище данных 499
Балансировка сетевой нагрузки 501
Связанные измерения и группы мер 501
Обновления источника связанного объекта 502
Связанные измерения 503
Связанные группы мер 507
Удаленные секции 510
Обработка удаленных секций 514
Использование BI DEV Studio для создания связанных измерений 514
Использование BI Dev Studio для создания виртуального куба 516
Резюме 517
ЧАСТЬ VI. АРХИТЕКТУРА ANALYSIS SERVER 519
Глава 26. Архитектура выполнения команд 521
Выполнение команд 521
Управление сессиями 525
Управление состоянием сервера 527
Выполнение команд, которые изменяют объекты Analysis Services 528
Создание объектов 529
Изменение объектов 530
Удаление объектов 531
Обработка объектов 532
Команды управления транзакциями 534
Синхронизация доступа к данным 536
Блокировка фиксирования транзакции 539
Прерывание выполнения команды 541
Пакет команд 543
Резюме 551
Глава 27. Управление памятью 552
Экономическая модель управления памятью 553
Управляющий памятью 554
Держатели памяти 554
Очистка памяти 556
Управление памятью системы кеша 558
Управление памятью файловых накопителей 559
Управление памятью пользовательских сессий 560
Другие держатели памяти 560
Распределители памяти 561
Диспетчер памяти 563
Модель обработки атрибутов и секций 565
Модель создания агрегаций 568
Модель построения индексов 569
Резюме 570
Глава 28. Архитектура выполнения запросов — расчет выражений MDX 572
Стадии выполнения запроса MDX 572
Разбор запроса MDX 575
Создание дерева виртуальных множеств 577
Оптимизация многомерного пространства удалением пустых кортежей 579
Создание областей действия вычислений 580
Глобальная область действия и кеш глобальной области действия 583
Область действия сессии и кеш областей действия сессии 584
Время существования глобальной области действия и области действия сессии 584
Вычисление значений ячеек 587
Создание планов выполнения вычисления 588
Оптимизация плана выполнения вычисления 589
Запуск и реализация плана выполнения вычисления 590
Кеши данных 591
Кеши измерений и групп мер 591
Кеши вычислений 594
Резюме 595
Глава 29. Архитектура выполнения запросов — чтение данных 597
Стадии выполнения запроса 598
Выполнение запросов к различным типам групп мер 600
Выполнение запросов к обычным группам мер 600
Выполнение запросов к ROLAP-секциям 604
Выполнение запросов к группам мер с мерами DISTINCT_COUNT 604
Выполнение запросов к удаленным секциям и связанным группам мер 608
Выполнение запросов к группам мер с опосредованными измерениями 609
Резюме 612
ЧАСТЬ VII. ДОСТУП К ДАННЫМ, ХРАНЯЩИМСЯ В ANALYSIS SERVICES 613
Глава 30. Архитектура "клиент-сервер" и доступ к данным 615
Использование TCP/IP для доступа к данным 615
Использование Binary XML и сжатия для доступа к данным 617
Использование HTTP для доступа к данным 618
Доступ к данным в локальном кубе 620
Резюме 622
Глава 31. Интерфейсы доступа к данным 623
Использование XML/A для создания приложений 623
Использование библиотек Analysis Services для создания приложений 624
Создание аналитических приложений на неуправляемом коде 625
Создание аналитических приложений на управляемом коде 626
Администрирование многомерной модели с использованием DSO и AMO 628
Резюме 629
Глава 32. XML для анализа 630
Управление состоянием 630
Методы XML/A 634
Метод Discover 635
Метод Execute 640
Результат в формате MDDataset 642
Обработка ошибок и предупреждений 647
Ошибка анализа запроса 648
Ошибка формирования результата 650
Ошибка данных 651
Предупреждения 652
Резюме 653
Глава 33. ADOMD.NET 654
Создание аналитических приложений 654
Соединения в ADOMD.NET 656
Работа с объектами метаданных 666
Операции над коллекциями 667
Кеширование метаданных 672
Работа с коллекцией элементов 675
Работа с метаданными, которые не представлены в виде объектов 683
Объект AdomdCommand 690
Свойства ADOMDCommand 690
Методы ADOMDCommand 692
Использование объекта CellSet 698
Поддержка симметрии объектов 708
Работа с данными в табличном формате 712
Объект AdomdDataReader 715
Visual Studio для работы с многомерными данными 719
Выбор подхода для работы с данными 721
Использование параметров в запросах MDX 722
Асинхронное выполнение и прерывание команд 726
Обработка ошибок 732
AdomdErrorResponseException 733
Исключение AdomdUnknownResponseException 736
Исключение AdomdConnectionException 737
Исключение AdomdCacheExpiredException 737
Резюме 738
Глава 34. Объектная модель управления 740
Объектная модель AMO 740
Типы AMO-объектов 742
Зависимые объекты и ссылки на объекты 751
Соединение с сервером 761
Прерывание выполнения длительных операций 764
Загрузка объектов AMO 770
Работа с AMO в отключенном режиме 771
Использование объекта Scripter 773
Использование трассировок 776
Обработка ошибок 788
OperationException 788
Исключение ResponseFormatException 789
Исключение ConnectionException 790
Исключение OutOfSyncException 790
Резюме 791
ЧАСТЬ VIII. МОДЕЛЬ БЕЗОПАСНОСТИ ДАННЫХ 793
Глава 35. Модель прав доступа 795
Безопасность доступа к серверу. Аутентификация 796
Безопасность соединения TCP/IP 797
Безопасность соединения HTTP 797
Встроенная аутентификация Windows 798
Безопасность доступа к источникам данных 801
Выбор учетной записи службы Analysis Services 801
Настройка учетной записи для доступа к внешним данным 803
Изменение учетной записи службы Analysis Services 804
Безопасность работы именованных экземпляров 805
Безопасность работы на отказоустойчивом кластере 805
Резюме 806
Глава 36. Права доступа к объектам сервера 807
Роль администратора сервера 808
Роли и права доступа к данным 810
Безопасность управления многомерной моделью 813
Доступ к базе данных 814
Доступ к источникам данных 816
Доступ к измерениям 816
Доступ к кубам 816
Управление настройками безопасности 817
Резюме 818
Глава 37. Права доступа к данным измерения 819
Безопасность измерений 822
Разрешенные и запрещенные элементы 824
Визуальные итоги 829
Определения безопасности измерений 830
Тестирование безопасности измерений 832
Динамическая безопасность 833
Архитектура безопасности измерений 836
Порядок применения прав доступа 837
Резюме 839
Глава 38. Права доступа к ячейкам куба 840
Определение безопасности ячеек 840
Тестирование безопасности ячеек 844
Условная безопасность ячеек 846
Динамическая безопасность 847
Резюме 850
ЧАСТЬ IX. УПРАВЛЕНИЕ ANALYSIS SERVICES 851
Глава 39. Использование трассировки для контроля функционирования сервера 853
Архитектура трассировки 854
Создание объекта трассировки 856
SQL Server Profiler 858
Выбор параметров трассировки 858
Запуск трассировки 860
Трассировка обработки измерений и секций 863
Мониторинг прогресса выполнения обработки измерения 863
Мониторинг прогресса выполнения обработки секции 865
Трассировка обработки запросов 866
Черный ящик 869
Архитектура трассировки "черного ящика" 870
Конфигурирование работы "черного ящика" 871
Контроль состояния сервера 872
Резюме 874
Глава 40. Операции резервного копирования и восстановления 875
Резервное копирование данных 875
Планирование выполнения операций резервного копирования 876
Использование графического интерфейса для резервного копирования 878
Использование сценария DDL для резервного копирования 879
Выполнение резервного копирования внешней информации 880
Сценарии резервного копирования 882
Автоматизация операций резервного копирования 883
Восстановление резервных копий 884
Использование графического интерфейса для восстановления данных 885
Использование сценария DDL для восстановления резервных копий 886
Указание местоположений секций 887
Просмотр файловой системы сервера 888
Резюме 890
Глава 41. Стратегии развертывания проектов 891
Создание сценария развертывания 891
Синхронизация баз данных 892
Мастер синхронизации 894
Командa синхронизации баз данных 894
Синхронизация удаленных секций 897
Синхронизация и отказоустойчивые кластеры 900
Резюме 900
Предметный указатель 901
XVI Оглавление XV Оглавление