![]() |
|
Модераторы: mihanik |
![]()
|
|
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Кто сталкивался с применением OLAP в Excel и может посоветовать какой-нибудь понятный пример, где будет видно, чем же эта технология хороша и как работает конкретно?
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| FINANSIST |
|
|||
|
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 13 Всего: 23 |
Каждый рабочий день не без этого, что конкретно интересует:
Технология формирования кубов? Отличие автономных кубов от неавтономных (плюсы и минусы)? Правила построения иерархии аналитик в кубе? Недостатки сводных таблиц на кубах по сравнению со сводными на неиерархических списках? Грабли при формировании вычисляемых полей? Методика работы "Дополнительных вычислений"? Или что то ещё?
Кратчайший ликбез 25 простых отчетов на основе сводных таблиц Введение в OLAP Excel как OLAP клиент Програмная работа с измерениями (VBA) 30 идей применения OLAP Это сообщение отредактировал(а) FINANSIST - 27.11.2009, 10:42 -------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Спасибо.
Для начала самое основное, напр. технология формирования кубов. Обычно все это преподносится как средства для многомерного анализа данных. Но насколько он многомерный - таблица же всегда двумерная? Действительно ли это помогает и в чем здесь изюминка, отличие от всего того, что можно сделать средствами Эксела просто (разные фильтры и т.п.)? Кроме этого, такое ощущение, что многие действия можно просто выполнять с помощью SQL - напр., определение места макс. продаж, компаний, у которых только такие-то показатели и т.п. Неужели здесь что-то качественно новое? Это сообщение отредактировал(а) motorway - 27.11.2009, 18:33 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Я сам не большой знаток OLAP, но, насколько я помню, принцип заключается в том, что данные хранятся в виде многомерного массива. В ячейках массива для всех данных рассчитаны агрегатные функции. Делая запрос к OLAP-кубу, ты получаешь не выполнение SQL-запроса (с расчетами, перемножением таблиц и пр.), а просто выборку заранее рассчитанного результата. На больших объемах данных время выполнения запроса к OLAP хранилищу может составлять около 0.1% от времени выполнения эквивалентного SQL-запроса (где-то я такую цифру видел, вроде даже на том же olap.ru). То есть ускорение до 1000 раз. -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Но ведь чтобы этот массив создать, нужно тоже время (и сам куб получается путем SQL запросов к базе?). И получается, что мы сможем узнать только некоторые данные, которые есть в кубе, а не делать произвольный запрос. Хм, ну это еще ладно, а вот насчет многомерности - где же здесь истинная многомерность, максимум, что можно изобразить - это куб. 6-мерный анализ данных для человека труден
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| RockClimber |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Да, только создается он 1 раз, а используется сотни и тысячи. Это, грубо говоря, промежуточный результат расчетов - самая трудоемкая часть вычисляется и хранится в отдельном хранилище. Исходные (неагрегированные) данные тоже доступны.
Это зависит от того, как спроектирован куб. Кроме того, "Куб" - это весьма условное название, потому что это не обязательно трехмерный куб, измерений может быть больше. Я такого не говорил Жизнь вообще тяжелая штука. А для компьютера, кстати, вообще все равно, сколько там измерений. -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
||||
|
|||||
| FINANSIST |
|
|||
|
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 13 Всего: 23 |
Изначально это технология создавалась для аналитиков, финансовых, торговых - неважно, т.к. аналитикам требуется "мгновенная" скорость построения большого количества нестандартных отчетов различной глубины и степени детализации. Действительно на SQL можно сформировать любой срез что и в OLAP, однако те же промежуточные итоги добавлять на SQL для каждого элемента в заголовках строк или столбцов это полный изврат. Пока юзер будет писать один 10-этажный sql с учетом промежуточных и конечных итогов (опыт юзера не важен, пусть хоть 30 лет он уже этим занимается) аналитик успеет сформировать сотню, другую отчетов потому что куб можно вертеть как угодно - на то он и online analytical processing Это сообщение отредактировал(а) FINANSIST - 30.11.2009, 10:12 -------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Значит, хорошо бы посмотреть какое-нибудь несложное демо в Экселе, где все это можно попробовать. Там было какое-то видео у Майкрософта с примером про Adventure Works, но, может, что-то еще есть из примеров с OLAP?
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| FINANSIST |
|
|||
|
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 13 Всего: 23 |
Вот нарыл на microsoft неплохой пример для тренировок начинающих (в формате xlt+всплывающая справка) Вполне достаточно, что бы освоить простейшие манипуляции с измерениями (пока нет разговора о кубах, вычисляемых полях и прочих возможностей) Это сообщение отредактировал(а) FINANSIST - 1.12.2009, 10:14 Присоединённый файл ( Кол-во скачиваний: 18 )
06220387.zip 17,31 Kb-------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Спасибо. Правда, не очень понял, что именно с этой таблицей можно сделать. Мне бы хотелось посмотреть в действии сам OLAP, в т.ч. эти пресловутые кубы
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| FINANSIST |
|
|||
|
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 13 Всего: 23 |
Отчет во вложении сформирован за 10 минут.
В заголовках столбцов: С помощъю сводной таблицы даты сгруппированы в месяцы, кварталы и годы - автоматически добавлены соответствующие измерения Добавленные Месяцы свернуты в кварталы - можно свернуть в любой квартал 2-м кликом по заголовку квартала Добавленны промежуточные итоги по годам, кварталам и месяцам В заголовки строк вынесено измерение "Страна" и детализирована по Продавцам. Продавцов Воронова,Иванова, Крылова в Украине объединяем в условную группу (к примеру рынок города Киев) с подведением итогов по ней. В качестве Фактов добавляем Сумму Заказа в рублях, Количество взятых позиций за период, соответствующий текущему заголовку столбца. Так же несложно добавить долю заказов в разрезе продавцов и стран. Еще добавил расчет нарастающим итогом по продавцам в стране, прирост заказов в % относительно прошлого квартала и сумму скидок в 5% от заказов. Это лишь один вариант из сотни, которых можно сделать на основе данных в этом примере. 10 минут для такого отчета в принципе многовато, т.к. я не торопился А теперь вопрос - сколько понадобится времени для формирования перекрестной таблицы такого вида на SQL? Кубы нет смысла обсуждать без понимания "физики" работы сводных таблиц Присоединённый файл ( Кол-во скачиваний: 25 )
062203871.zip 54,74 Kb-------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
В целом, сводные таблицы понятны. Может, покажете пример использования куба для этого случая? Когда обычно целесообразно использовать кубы - когда 1 таблица исходная (как в примере) или несколько?
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| FINANSIST |
|
|||
|
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 13 Всего: 23 |
У кубов есть и достоинства и недостатки, Достоинство - это возможность работы с большим количеством записей+возможная автономность куба. Кубы, как правило,строятся на основе sql запроса который тянет данные либо из денормализованного хранилища, либо из нормализованной БД. В моем случае при объеме куба в 1-2 миллиона записей я не парюсь с созданием хранилища- беру данные запросом из БД. Куб можно хранить либо виртуально (при открытии и/или обновлении сводных таблиц), либо физически (*.cube) Иерархия куба определяется при создании запроса *.oqy но в дальнейшем, по моим наблюдениям, храниться вместе с данными в кубе, т.е. в последующем использовании *.cube без *.oqy вполне работоспособен. Из недостатков кубов могу перечислить невозможность построения вычисляемых полей в PivotTable а так же его "Жесткая иерархия" - этот термин сам придумал, т.к. в литературе нигде не встречал сравение функционалов по этим параметрам. По термину "Жесткая иерархия" - приведу пример: формируем куб в котором измерение "завод" жестко подчиняем измерению "группа продукции", группе в свою очередь подчиняем "Код продукции", а коду подчиняем "Наименование продукции". Есть еще измерение "контрагент" которое никому не подчиняется. В таблице хотим построить срез и раскрыть контрагентов по наименованию продукции-при жесткой иерархии получится следующее: раскроем контрагентов по заводу - далее по группе ..... и т.д. до номенклатуры, только так и никак иначе. Соответственно при создании иерархий надо думать головой, где формировать жесткую а где оставить гибкую. В данном примере атрибуту "код продукции" однозначно соответствует атрибут "наименование продукции" соответственно здесь можно создать жесткую иерархию, поскольку сложно представить использование поля "Номенклатура" без кода или наоборот. motorway, На основе данных листа "практика" (я туда добавил измерение "Наименование заказа" - жестко подчинено коду) сформировал куб ( во вложении) Присоединённый файл ( Кол-во скачиваний: 14 )
______________________MS_Access.zip 55,84 Kb-------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Спасибо, но я пока не понял, как использовать этот куб в Экселе 2007. Там формат должен быть .cub, или .cube?
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| FINANSIST |
|
|||
|
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 13 Всего: 23 |
Хм, пишет "разрушительный сбой", с форматом все нормально, выложу еще раз - попробуй Присоединённый файл ( Кол-во скачиваний: 14 )
20091208cub.zip 54,03 Kb-------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |