Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Задача. Текущая платформа MS AS 2000 Ent Ed. Есть DWH под 100 млн. фактов по звонкам абонентов сотовой сети. Есть измерение Абоненты на 5 млн. членов. Есть мера Distinct Count по Абонентам. Оптимизирован и в принципе летает. Клиент хочет ответ на следующий вопрос «Сколько уникальных абонентов позвонило только 1 раз за указанный период (период выбран в измерении Дата)». Сейчас работает через MDX-запроc, который спускается через Descendants вниз по измерению Абонентов и подсчитывает кол-во уникальных абонентов у которых Distinct Count=1. После оптимизации считается за несколько минут. В принципе клиент считает скорость расчета удовлетворительной, но хотелось бы оптимизировать. Вопрос. Не решал ли кто сходные задачи, например «Количество покупателей купивших 1 товар за указанный период». Интересны использованные методы оптимизации. Интересно мнение пользователей и Microstrategy. Я пригляделся и вижу, что возможны частные оптимизации путем модернизации DWH и заведения хитрого измерения «Абоненты звонившие 1 раз за день (месяц)». Насколько я понимаю в ROLAP’ах такие задачи можно решать только так. Интересен опыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 02:12 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Vopros postavlenii vami - ochen tipichnen. V obschei postanovke on zvuchit - "opredelit kolichestvo listovih elementov izmereniya A, imeyuschih znachenie meri B = N" ispolzovat distinct count mozhet priiti v golovu tolko esli delat ne prosto "v lob", a esli deistvitelno delat "chez z...u". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 13:06 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
2backfire. Я понимаю, вы человек горячий. Однако вы ничего не сказали о том как просто решается "типичная задача", мне кажется вы просто не знаете таких решений. Мне тоже сначала показалось, что инженер, который делал меры ошибся в проектировании. Однако люди с сертификацией MSCE не так часто ошибаются как может показаться на первый взгляд. С ходу я не нашел простого и эквивалентного решения другого вида. Отмечу, DC по Абонентам есть в кубе для решения обычной задачи уникальных абонентов по услугам и т.д. Иными словами, эту меру не создавали для только данной задачи, но решили использовать для другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 14:43 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Еще моменты. DC используется в MDX для отработки итогов по группам Абонентов. Этим можно пожертвовать и использовать обычный Count. Однако это не дает прироста производительсноти. Просто мера DC сильно используется и кеш очень горячий. Основной провал происходит конечно изза беготни по измерению в 5 млн. членов. Как бы от этого уйти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2004, 14:59 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Основной провал происходит конечно изза беготни по измерению в 5 млн. членов. Как бы от этого уйти. Можно попробовать вначале убрать абонентов которые вообше не звонили в это время. Чем более грнулярно время - тем больше это будет оптимизировать. Т.е. если slice по времени на уровне "день" или еще лучше "час", то из 5 миллионов останется несколько тысяч, а их уже можно отфильтровать по обычному. Filter(NonEmptyCrossJoin(Descendants(Abonents.CurrentMember, Abonents.Name), Measures.Calls = 1) Моша ---------------------------------------------------- This posting is provided "AS IS" with no warranties, and confers no rights ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 02:36 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Скорее всего в 5 утра я что-то не догоняю. Я не вижу тут оптимизации. Аналогичное выражение для FoodMart Count(Filter(NonEmptyCrossJoin(Descendants([Product].CurrentMember,[Product].[Product Name])), [Measures].[Unit Sales]<100)) Descendants все равно генерить большой set. В моем случает 5 млн. NonEmptyCrossJoin c одним set не влияет на выражение. Включение в NonEmptyCrossJoin времени исказит число мемберов с [Measures].[Unit Sales]<100, т.к. полученный set будет по числу иметь больше комбинаций. Вероятно я что не понял в предлагаемом решении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 04:41 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Descendants на определенный уровень не материализует set (хотя если вычисление идет на клиенте, надо будет его закачать). После прохода NonEmptyCrossJoin елементов в set останется гораздо меньше, поэтому Filter должен бежать быстрее. В случае с [Unit Sales] < 100 эту оптимизацию делать нельзя, потому что NULL < 100, но в случае с [Calls] = 1 оптимизация делать можно, потому что NULL != 1. Моша ---------------------------------------------------- This posting is provided "AS IS" with no warranties, and confers no rights ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 04:49 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Догнал, 5 утра хоть спички в глаза. NonEmptyCrossJoin c одним set не выводит в конечный set те элементы, которые имеют Measures в null Я сейчас тестирую на своей маленькой БД на 100 тыс. абонентов. Однако оптимизация действует и для сложных равенств. Например такое выражение счиается за 3 сек. count(filter(NonEmptyCrossJoin(Descendants([Абоненты].CurrentMember,[Абоненты].[Abonent 1])),[Measures].[Количество]=2 or [Measures].[Количество]=1)) Такое за 20 сек. count(filter((Descendants([Абоненты].CurrentMember,[Абоненты].[Abonent 1])),[Measures].[Количество]=2 or [Measures].[Количество]=1)) Результат обнадеживает. Неплохо бы отметить такую оптимизацию в Books Online. Там вообще не сказано, что NonEmptyCrossJoin можно запустить с 1м параметром. Syntax NonEmptyCrossjoin(«Set1», «Set2»[, «Set3»...][, «Crossjoin Set Count»]) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 06:06 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Меня опередили :-) Моша, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 10:10 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
To Ivanov Однако вы ничего не сказали о том как просто решается "типичная задача", Владимир, а Вы показали тот запрос, который по-вашему мнению был предметом оптимизации? По опыту предыдущего общения с вами у меня сложилось мнение, что от Вас "снега зимой не выпросишь". Что же Вы ожидали, что я Вам сразу "тузов покажу"? А как же "радость общения"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 14:04 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Моше конечно большое спасибо. Отметим, что и backfire сходный прием показал Моша. Причем дал интересные комментарии. /topic/76094&hl=nonemptycrossjoin Заметим, что о nonemptycrossjoin c одним set и его поведении в данном случае ранее не рассказывалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 14:16 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Можно и еще дальше оптимизировать count(filter(NonEmptyCrossJoin(Descendants([Абоненты].CurrentMember,[Абоненты].[Abonent 1]), {[Measures].[Количество]},1),[Measures].[Количество]=2 or [Measures].[Количество]=1)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 14:24 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Странно, Владимир, что Вы с этой проблемой раньше не встречались. Торможения начинаются на гораздо меньших измерениях при весьма достойном железе. Альтернативой, в принципе, может являться создание "фактов-флагов" на конец периода при закачке. А потом просто Sum. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 18:06 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Кстати, сертификация MSCE какое к AS отношение имеет??? Там энзамен-то один был 70-019 и тот, скажем прямо не супер. Или это что-то вроед IQ - теста?:-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 18:08 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
To DmitriyS То был скорее "тест на дебильность", да и к тому же по 7-ке, а в ней как вы знаете NonEmptyCrossJoin и множеством других фишек и не пахло. Жаль, что по MS AS 2000 нет и близко такого экзамена. Надеюсь, что с Юконом ситуация изменится в лучшую сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 18:44 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
2DmitryS. Дело в том, что я зная как вычисляется MDX стараюсь избегать на нем сложных формул бегунков. Проблемы стараюсь решить на уровне DWH. Что-то вроде ваших "фактов-флагов". В этой задаче придется вероятно делать также, т.к. клиент хочет смотреть данные из 1 мес, а это все равно все Абоненты обходить. Пока MDX клиентский и без хранения своих вычислений, это детская игрушка для простых задач. Правда местами очень полезных. По сертификации. Мое мнение, что сам OLAP это мальнькая часть BI-решения. Основной труд это построение сложных DWH, калькуляции в них, очистка данных и т.д. В моем случае это обычно MS SQL. Поэтому и девелоперы с сертификацией MSCE причем девелоперской. Хотя практика показывает, что от несертифицированных практиков с 10 летним стажем типа г-на Фрейдина толку на порядок больше чем от молодого сертифицированного инженера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 21:12 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
2Владимир: Интересно мнение пользователей и Microstrategy. Я пригляделся и вижу, что возможны частные оптимизации путем модернизации DWH и заведения хитрого измерения «Абоненты звонившие 1 раз за день (месяц)». Насколько я понимаю в ROLAP’ах такие задачи можно решать только так. Интересен опыт. Такой отчёт строится исключительно визуальными средствами за 3 минуты. В отчёте 3 объекта - фильтр на метрику "Количество заказов", фильтр на промежуток времени и метрика Distinct Count Клиентов. SQL генерируется очень простой. Я взял построил отчёт на примере проекта из Microstrategy Tutorial. авторReport: New Report Data Rows: 1 Data Columns: 1 Cache Used: No Execution Start Time: 05/10/2004 21:58:48 Execution Finish Time: 05/10/2004 21:58:52 Total Duration: 0:00:03.56 SQL Duration: 0:00:03.56 Analytical Duration: 0:00:00.00 Other Processing Duration: 0:00:00.00 Number of Rows Returned: 1 Number of Columns Returned: 1 Number of Temp Tables: 2 Total Number of Passes: 7 Number of SQL Passes: 7 Number of Analytical Passes: 0 DB User: Data DB Instance: Tutorial Data Tables Accessed: LU_ORDER ORDER_FACT SQL Statements: Pass0 - Duration: 0:00:00.00 create table ZZTH600IFA0MQ000 ( CUSTOMER_ID SHORT) Pass1 - Duration: 0:00:01.76 insert into ZZTH600IFA0MQ000 select a12.[CUSTOMER_ID] AS CUSTOMER_ID from [ORDER_FACT] a11, [LU_ORDER] a12 where a11.[ORDER_ID] = a12.[ORDER_ID] and a11.[ORDER_DATE] in (#2001-01-08 00:00:00#, #2001-01-09 00:00:00#, #2001-01-10 00:00:00#, #2001-01-11 00:00:00#, #2001-01-12 00:00:00#, #2001-01-13 00:00:00#, #2001-01-14 00:00:00#, #2001-01-15 00:00:00#, #2001-01-16 00:00:00#, #2001-01-17 00:00:00#, #2001-01-18 00:00:00#, #2001-01-19 00:00:00#, #2001-01-20 00:00:00#, #2001-01-21 00:00:00#) group by a12.[CUSTOMER_ID] having count(a11.[ORDER_ID]) = 1.0 Pass2 - Duration: 0:00:00.02 create table ZZTH600IFA0OT001 ( WJXBFS1 SHORT) Pass3 - Duration: 0:00:01.76 insert into ZZTH600IFA0OT001 select distinct a12.[CUSTOMER_ID] AS WJXBFS1 from [ORDER_FACT] a11, [LU_ORDER] a12, [ZZTH600IFA0MQ000] pa1 where a11.[ORDER_ID] = a12.[ORDER_ID] and a12.[CUSTOMER_ID] = pa1.[CUSTOMER_ID] and a11.[ORDER_DATE] in (#2001-01-08 00:00:00#, #2001-01-09 00:00:00#, #2001-01-10 00:00:00#, #2001-01-11 00:00:00#, #2001-01-12 00:00:00#, #2001-01-13 00:00:00#, #2001-01-14 00:00:00#, #2001-01-15 00:00:00#, #2001-01-16 00:00:00#, #2001-01-17 00:00:00#, #2001-01-18 00:00:00#, #2001-01-19 00:00:00#, #2001-01-20 00:00:00#, #2001-01-21 00:00:00#) Pass4 - Duration: 0:00:00.02 select count(*) AS WJXBFS1 from [ZZTH600IFA0OT001] pa2 Pass5 - Duration: 0:00:00.00 drop table ZZTH600IFA0MQ000 Pass6 - Duration: 0:00:00.00 drop table ZZTH600IFA0OT001 Оптимизацию возможно осуществить средствами СУБД. Здесь пример на MS Access. Если использовать более продвинутую СУБД, то можно сгенерировать 1 запрос с использованием Derived Table. Будет быстрее. Ну, и, понятное дело - индексы должны быть в порядке. А зачем клиенту быстрые ответы на такой запрос? Не очень понятна ценность ответов на них. Слишком уж простой запрос. Возможно, эти результаты ещё дальше обрабатываются как-то? Строится множество таких клиентов и что-то дальше смотрится? Поделитесь. И неужели Вы CDR закачиваете в MS AS? 100 млн. - что-то маловато для 5 млн. абонентов. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 22:16 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
To Ivanov Во-первых не MSCE, a MCSE . Во-вторых, по MSSQL уже как 4-й год существует сертификация MCDBA Ну и наконец - для девелоперов есть MCSD. Согласен с вами, что кубики в OLAP и клиентская программа - это лишь вершина айсберга. Под капотом должно быть серьезное DWH-решение. Но не будь MS AS где бы мы сейчас были - я не думаю, что с Cognos или Oracle... Хотя практика показывает, что от несертифицированных практиков с 10 летним стажем типа г-на Фрейдина толку на порядок больше чем от молодого сертифицированного инженера А это кто такой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2004, 22:34 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
2Константин. Исходных данных наверное под 1 млрд. записей. Просто они уже несколько агрегированны на момент закачки, вот и сжались. Нет желания сражаться с Unisys в рекордах под MS AS. Ваш метод понятен, но мне кажется он не рабочий на объеме свыше 10 млн. фактов. запрос having count очень тяжелый, я думаю сервер на 2х ксеонах будет его считать больше ночи. То что делает MS AS и то лучше. Он хоть перебирает абонентов, но не таблицу фактов. У меня пока такая идея. Клиенту нужен отчет в большинстве случаев по текущему периоду. Соотвественно я могу пометить абонента как "Постоянные клиенты", "Эпизодичные клиенты". Эпизодичных будет не так много. А затем только для этой группы можно применить формулу на манер Моши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 15:01 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Владимир, Предположим каждая запись таблицы фактов - это звонок абонента. Делаем вычисляемую колонку в таблице фактов с константой 1 и создаем на ее основе показатель со стандартной агрегацией. При закачке 100 миллионов записей общий итог по этому показателю будет соответственно - 100 миллионов. При наложении фильтра по измерению Дата этот общий итог уменьшается (становится равен числу звонков за выбранный период). Теперь в OLAP-клиенте перетаскиваем в область строк измерение с абонентами и раскрываем его до листьев. В отчете всего одна колонка - количество звонков по каждому абоненту (напритив кого-то например - 24 звонка, напротив другого - 0, напротив третьего - 1 и т.п.). Если мы подсчитаем, в скольких строках стоит число 1 - это будет решением твоей задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 17:03 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
2Владимир: А всё-таки ответа на мой вопрос о бизнес-смысле такого простого запроса не последовало. Я по-прежнему думаю, что запрос должен быть сложнее для принятия решения. Про having count и больше ночи я не верю. Поинтересуйтесь у Jimmy какие запросы с таблицами фактов на десятки миллионов записей у него Sybase ASE под Microstrategy ворочает. И это сервер с самым тупым оптимизатором из всех, что я встречал. 2Jurii: При наложении фильтра по измерению Дата этот общий итог уменьшается (становится равен числу звонков за выбранный период). Теперь в OLAP-клиенте перетаскиваем в область строк измерение с абонентами и раскрываем его до листьев. То есть, все пять миллионов строк потенциально (предположим, что период мал, все звонили, и не более одного раза)? Сколько тянуть, интересно будем? А сколько это всё будет на экран выводиться? Мне кажется, такой запрос должен на сервере выполняться. Иначе клиент уйдёт в даун. Я уже получал такое на Cognos PowerPlay на более скромных объёмах. Пользователи писали кипятком после перетаскивания измерения клиентов в 20 тысяч листьев в отчёт, когда комп зависал минут на двадцать. При отсутствии возможности остановить этот беспредел - картина удручающая. На кривые руки просьба не намекать, я уже понял, что я безнадёжен и всё такое :) С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 17:51 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Константин, Мне кажется, такой запрос должен на сервере выполняться. Иначе клиент уйдёт в даун Разумеется, я имею в виду работу через тонкого клиента, где вся нагрузка перекладывается на сервер, и например в Web-браузер можно выводить по 10 строк отчета с возможностью листания. Я уже получал такое на Cognos PowerPlay на более скромных объёмах. Пользователи писали кипятком после перетаскивания измерения клиентов в 20 тысяч листьев в отчёт, когда комп зависал минут на двадцать Вы тут говорите про PowerPlay для Windows. Я тестировал этого клиента, выводя в отчет миллион строк и тысячу колонок (то есть миллиард ячеек), но все же не будем на этом заостряться - для задачи Владимира я предлагаю PowerPlay Web. Мой подход состоит в том, чтобы превратить те строки, в которых единички - в нули, а потом воспользоваться опцией скрытия нулей, посмотрев до и после выполнения этой опции, сколько всего строк в отчете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 18:03 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
2Jurii: ОК. Пусть даже и так, но я же не зря спросил Владимира о том, какая задача решается. Просто посчитать количество таких клиентов можно, но что дальше? Я имею в виду, какие решения можно принимать на основе этого числа? Допустим, Вы даже получите список таких абонентов (скажем, 1 миллион человек). Дальше что будете с ним делать (напомню, он у Вас в веб-браузере в виде 100 тысяч страниц по 10 строк на страницу)? С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 18:43 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
Константин, Я имею в виду, какие решения можно принимать на основе этого числа? Ну решений наверное можно принять много... Например: 1) Это может быть один из ключевых показателей в системе сбалансированных показателей, каждый месяц это число вычисляется, и его вручную соответствующий менеджер вводит в продукт Cognos Metrics Manager :) 2) Этих абонентов можно рассматривать как малоактивных, или как неопытных - их список можно выгрузить из PowerPlay Web в формат CSV, после этого специальная программа разошлет им SMS-сообщения с предложением куда-либо позвонить, и потом можно будет отслеживать, уменьшится ли число этих малоактивных абонентов с приходом следующего периода 3) Можно накладывать дополнительные фильтры на эту выборку и анализировать разные вещи типа сколько человек позвонили один раз за границу на огромную сумму, и после этого например купили другую сим-карту, оставив большую сумму долга на старом номере, либо определить людей, которые этот единственный раз позвонили на сервисный номер сотового оператора (типа эти абоненты не разобрались, как пользоваться телефоном), и т.д... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 19:17 |
|
||
|
Задача на Distinct Count для GSM-логов
|
|||
|---|---|---|---|
|
#18+
2Jurii: 1) Это может быть один из ключевых показателей в системе сбалансированных показателей, каждый месяц это число вычисляется, и его вручную соответствующий менеджер вводит в продукт Cognos Metrics Manager :) Воистину :)) 2) Этих абонентов можно рассматривать как малоактивных, или как неопытных - их список можно выгрузить из PowerPlay Web в формат CSV, после этого специальная программа разошлет им SMS-сообщения с предложением куда-либо позвонить, и потом можно будет отслеживать, уменьшится ли число этих малоактивных абонентов с приходом следующего периода Чтобы работать с такими списками нужна система хранения немного попродвинутее, чем текстовые файлы в формате CSV. А как дальше сравнивать как на этих абонентов подействовала Ваша рассылка SMS? Скажем, надо для этого списка посмотреть сколько раз за период каждый из абонентов позвонил более 1 раза, менее одного раза, 1 раз. То есть надо ответить на такой запрос: для списка абонентов, которые за период Х сделали всего один звонок, показать тех, которые после посылки им SMS за период Y после рассылки сделали более одного звонка. Это звучит уже более интересно. Однако, можно навернуть ещё дальше - можно сегментировать этих абонентов по причине отсутствия звонков (например, есть абоненты, которые любят в отпуск отдыхать в недоступных цивилизации местах, где сотовый телефон не работает, для таких нужно посмотреть, может быть это их нормальное поведение для данного периода времени). Представим теперь, что надо собрать такой отчёт. Фишка в том, что это работа с множествами. У меня возникает сомнение в том, что это задача для OLAP. Применение SQL не вызывает никаких сомнений, а вот OLAP - не знаю. 3) Можно накладывать дополнительные фильтры на эту выборку и анализировать разные вещи типа сколько человек позвонили один раз за границу на огромную сумму, и после этого например купили другую сим-карту, оставив большую сумму долга на старом номере, либо определить людей, которые этот единственный раз позвонили на сервисный номер сотового оператора (типа эти абоненты не разобрались, как пользоваться телефоном), и т.д... Да, да согласен. Можно, но г-н Иванов не делится постановкой задачи. Может её в бизнес-виде и не существует? И опять-таки, вышеперечисленные задачи, по моему мнению лучше решать стандартным SQL, а не притягивать за уши OLAP. С уважением, Константин Лисянский http://lissianski.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 19:55 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=32511862&tid=1872432]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
157ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 262ms |
| total: | 550ms |

| 0 / 0 |
