powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Задача на Distinct Count для GSM-логов
25 сообщений из 82, страница 1 из 4
Задача на Distinct Count для GSM-логов
    #32511334
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача. Текущая платформа MS AS 2000 Ent Ed.
Есть DWH под 100 млн. фактов по звонкам абонентов сотовой сети. Есть измерение Абоненты на 5 млн. членов.
Есть мера Distinct Count по Абонентам. Оптимизирован и в принципе летает.
Клиент хочет ответ на следующий вопрос «Сколько уникальных абонентов позвонило только 1 раз за указанный период (период выбран в измерении Дата)».
Сейчас работает через MDX-запроc, который спускается через Descendants вниз по измерению Абонентов и подсчитывает кол-во уникальных абонентов у которых Distinct Count=1. После оптимизации считается за несколько минут. В принципе клиент считает скорость расчета удовлетворительной, но хотелось бы оптимизировать.
Вопрос. Не решал ли кто сходные задачи, например «Количество покупателей купивших 1 товар за указанный период». Интересны использованные методы оптимизации.

Интересно мнение пользователей и Microstrategy. Я пригляделся и вижу, что возможны частные оптимизации путем модернизации DWH и заведения хитрого измерения «Абоненты звонившие 1 раз за день (месяц)». Насколько я понимаю в ROLAP’ах такие задачи можно решать только так. Интересен опыт.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32511415
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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".
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32511455
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2backfire. Я понимаю, вы человек горячий. Однако вы ничего не сказали о том как просто решается "типичная задача", мне кажется вы просто не знаете таких решений. Мне тоже сначала показалось, что инженер, который делал меры ошибся в проектировании. Однако люди с сертификацией MSCE не так часто ошибаются как может показаться на первый взгляд. С ходу я не нашел простого и эквивалентного решения другого вида.
Отмечу, DC по Абонентам есть в кубе для решения обычной задачи уникальных абонентов по услугам и т.д. Иными словами, эту меру не создавали для только данной задачи, но решили использовать для другой.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32511465
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще моменты. DC используется в MDX для отработки итогов по группам Абонентов. Этим можно пожертвовать и использовать обычный Count. Однако это не дает прироста производительсноти. Просто мера DC сильно используется и кеш очень горячий. Основной провал происходит конечно изза беготни по измерению в 5 млн. членов. Как бы от этого уйти.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32511854
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Основной провал происходит конечно изза беготни по измерению в 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
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32511862
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего в 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 будет по числу иметь больше комбинаций.

Вероятно я что не понял в предлагаемом решении.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32511863
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32511865
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Догнал, 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»])
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32511912
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня опередили :-)

Моша, спасибо.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32512070
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Ivanov

Однако вы ничего не сказали о том как просто решается "типичная задача",

Владимир, а Вы показали тот запрос, который по-вашему мнению был предметом оптимизации? По опыту предыдущего общения с вами у меня сложилось мнение, что от Вас "снега зимой не выпросишь". Что же Вы ожидали, что я Вам сразу "тузов покажу"? А как же "радость общения"?
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32512078
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Моше конечно большое спасибо.

Отметим, что и backfire сходный прием показал Моша. Причем дал интересные комментарии.

/topic/76094&hl=nonemptycrossjoin

Заметим, что о nonemptycrossjoin c одним set и его поведении в данном случае ранее не рассказывалось.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32512080
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и еще дальше оптимизировать

count(filter(NonEmptyCrossJoin(Descendants([Абоненты].CurrentMember,[Абоненты].[Abonent 1]),
{[Measures].[Количество]},1),[Measures].[Количество]=2 or [Measures].[Количество]=1))
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32512208
DmitryS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно, Владимир, что Вы с этой проблемой раньше не встречались. Торможения начинаются на гораздо меньших измерениях при весьма достойном железе.
Альтернативой, в принципе, может являться создание "фактов-флагов" на конец периода при закачке. А потом просто Sum.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32512215
DmitryS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, сертификация MSCE какое к AS отношение имеет??? Там энзамен-то один был 70-019 и тот, скажем прямо не супер. Или это что-то вроед IQ - теста?:-)))
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32512244
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To DmitriyS

То был скорее "тест на дебильность", да и к тому же по 7-ке, а в ней как вы знаете NonEmptyCrossJoin и множеством других фишек и не пахло.
Жаль, что по MS AS 2000 нет и близко такого экзамена. Надеюсь, что с Юконом ситуация изменится в лучшую сторону.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32512295
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2DmitryS. Дело в том, что я зная как вычисляется MDX стараюсь избегать на нем сложных формул бегунков. Проблемы стараюсь решить на уровне DWH. Что-то вроде ваших "фактов-флагов". В этой задаче придется вероятно делать также, т.к. клиент хочет смотреть данные из 1 мес, а это все равно все Абоненты обходить.
Пока MDX клиентский и без хранения своих вычислений, это детская игрушка для простых задач. Правда местами очень полезных.
По сертификации. Мое мнение, что сам OLAP это мальнькая часть BI-решения. Основной труд это построение сложных DWH, калькуляции в них, очистка данных и т.д. В моем случае это обычно MS SQL. Поэтому и девелоперы с сертификацией MSCE причем девелоперской. Хотя практика показывает, что от несертифицированных практиков с 10 летним стажем типа г-на Фрейдина толку на порядок больше чем от молодого сертифицированного инженера.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32512324
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32512332
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Ivanov

Во-первых не MSCE, a MCSE .
Во-вторых, по MSSQL уже как 4-й год существует сертификация MCDBA
Ну и наконец - для девелоперов есть MCSD.

Согласен с вами, что кубики в OLAP и клиентская программа - это лишь вершина айсберга. Под капотом должно быть серьезное DWH-решение.
Но не будь MS AS где бы мы сейчас были - я не думаю, что с Cognos или Oracle...

Хотя практика показывает, что от несертифицированных практиков с 10 летним стажем типа г-на Фрейдина толку на порядок больше чем от молодого сертифицированного инженера

А это кто такой?
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32513231
Владимир Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Константин.
Исходных данных наверное под 1 млрд. записей. Просто они уже несколько агрегированны на момент закачки, вот и сжались. Нет желания сражаться с Unisys в рекордах под MS AS.
Ваш метод понятен, но мне кажется он не рабочий на объеме свыше 10 млн. фактов.
запрос having count очень тяжелый, я думаю сервер на 2х ксеонах будет его считать больше ночи. То что делает MS AS и то лучше. Он хоть перебирает абонентов, но не таблицу фактов.
У меня пока такая идея. Клиенту нужен отчет в большинстве случаев по текущему периоду. Соотвественно я могу пометить абонента как "Постоянные клиенты", "Эпизодичные клиенты". Эпизодичных будет не так много. А затем только для этой группы можно применить формулу на манер Моши.
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32513536
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир,

Предположим каждая запись таблицы фактов - это звонок абонента. Делаем вычисляемую колонку в таблице фактов с константой 1 и создаем на ее основе показатель со стандартной агрегацией. При закачке 100 миллионов записей общий итог по этому показателю будет соответственно - 100 миллионов. При наложении фильтра по измерению Дата этот общий итог уменьшается (становится равен числу звонков за выбранный период).
Теперь в OLAP-клиенте перетаскиваем в область строк измерение с абонентами и раскрываем его до листьев. В отчете всего одна колонка - количество звонков по каждому абоненту (напритив кого-то например - 24 звонка, напротив другого - 0, напротив третьего - 1 и т.п.). Если мы подсчитаем, в скольких строках стоит число 1 - это будет решением твоей задачи?
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32513668
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир:

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

Про having count и больше ночи я не верю. Поинтересуйтесь у Jimmy какие запросы с таблицами фактов на десятки миллионов записей у него Sybase ASE под Microstrategy ворочает. И это сервер с самым тупым оптимизатором из всех, что я встречал.


2Jurii:
При наложении фильтра по измерению Дата этот общий итог уменьшается (становится равен числу звонков за выбранный период).
Теперь в OLAP-клиенте перетаскиваем в область строк измерение с абонентами и раскрываем его до листьев.

То есть, все пять миллионов строк потенциально (предположим, что период мал, все звонили, и не более одного раза)?
Сколько тянуть, интересно будем? А сколько это всё будет на экран выводиться? Мне кажется, такой запрос должен на сервере выполняться.
Иначе клиент уйдёт в даун. Я уже получал такое на Cognos PowerPlay на более скромных объёмах. Пользователи писали кипятком после перетаскивания измерения клиентов в 20 тысяч листьев в отчёт, когда комп зависал минут на двадцать. При отсутствии возможности остановить этот беспредел - картина удручающая.
На кривые руки просьба не намекать, я уже понял, что я безнадёжен и всё такое :)


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32513716
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин,

Мне кажется, такой запрос должен на сервере выполняться.
Иначе клиент уйдёт в даун


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

Я уже получал такое на Cognos PowerPlay на более скромных объёмах. Пользователи писали кипятком после перетаскивания измерения клиентов в 20 тысяч листьев в отчёт, когда комп зависал минут на двадцать

Вы тут говорите про PowerPlay для Windows. Я тестировал этого клиента, выводя в отчет миллион строк и тысячу колонок (то есть миллиард ячеек), но все же не будем на этом заостряться - для задачи Владимира я предлагаю PowerPlay Web. Мой подход состоит в том, чтобы превратить те строки, в которых единички - в нули, а потом воспользоваться опцией скрытия нулей, посмотрев до и после выполнения этой опции, сколько всего строк в отчете...
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32513820
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Jurii:

ОК. Пусть даже и так, но я же не зря спросил Владимира о том, какая задача решается. Просто посчитать количество таких клиентов можно, но что дальше? Я имею в виду, какие решения можно принимать на основе этого числа?
Допустим, Вы даже получите список таких абонентов (скажем, 1 миллион человек). Дальше что будете с ним делать (напомню, он у Вас в веб-браузере в виде 100 тысяч страниц по 10 строк на страницу)?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32513885
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин,

Я имею в виду, какие решения можно принимать на основе этого числа?

Ну решений наверное можно принять много... Например:
1) Это может быть один из ключевых показателей в системе сбалансированных показателей, каждый месяц это число вычисляется, и его вручную соответствующий менеджер вводит в продукт Cognos Metrics Manager :)
2) Этих абонентов можно рассматривать как малоактивных, или как неопытных - их список можно выгрузить из PowerPlay Web в формат CSV, после этого специальная программа разошлет им SMS-сообщения с предложением куда-либо позвонить, и потом можно будет отслеживать, уменьшится ли число этих малоактивных абонентов с приходом следующего периода
3) Можно накладывать дополнительные фильтры на эту выборку и анализировать разные вещи типа сколько человек позвонили один раз за границу на огромную сумму, и после этого например купили другую сим-карту, оставив большую сумму долга на старом номере, либо определить людей, которые этот единственный раз позвонили на сервисный номер сотового оператора (типа эти абоненты не разобрались, как пользоваться телефоном), и т.д...
...
Рейтинг: 0 / 0
Задача на Distinct Count для GSM-логов
    #32513927
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
25 сообщений из 82, страница 1 из 4
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Задача на Distinct Count для GSM-логов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]