Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Использование DistinctCount / 12 сообщений из 12, страница 1 из 1
28.12.2005, 08:34
    #33460886
violika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
MS AS 2K
Есть куб с таблицей фактов в 500 тыс.записей. В кубе 6 измерений. Объем около 50 МВ.
Добавляю меру которая вычисляет DistinctCount по коду документа. Объем куба увеличивается в 6 раз.
Скажите пож-та, использование этой функции всегда приводит к таким результатам или надо искать проблему?
...
Рейтинг: 0 / 0
28.12.2005, 09:39
    #33461007
violika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
Вопрос вдогонку.
Где-то на форуме встречалась фраза, что если в кубе есть мера с DC, то желательно для быстродействия больше в этом кубе мер не создавать.
Это действительно так? Может поэтому и вырос объем куба в 6 раз?
...
Рейтинг: 0 / 0
28.12.2005, 09:44
    #33461025
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
Является ли "Код документа" уровнем измерения или это просто поле по которому сделан DistinctCount ?
Сколько разных документов есть в таблице ?
Какой тип данных у "Код документа" ?
Сколько есть аггрегаций в кубе ?

В зависимости от ответов на эти вопросы увеличение в 6 раз может быть ожидаемым, а может быть и не очень. DistinctCount увеличивает размер обычно за счет того что он приносит за собой в storage поле на котором он построен. Вы можете вынести эту меру в отдельный куб и связать его с изначальным при помощи виртуального куба. Это должно помочь размеру.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
28.12.2005, 11:14
    #33461283
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
MoshaЯвляется ли "Код документа" уровнем измерения или это просто поле по которому сделан DistinctCount ?
Сколько разных документов есть в таблице ?
Какой тип данных у "Код документа" ?
Сколько есть аггрегаций в кубе ?

В зависимости от ответов на эти вопросы увеличение в 6 раз может быть ожидаемым, а может быть и не очень. DistinctCount увеличивает размер обычно за счет того что он приносит за собой в storage поле на котором он построен. Вы можете вынести эту меру в отдельный куб и связать его с изначальным при помощи виртуального куба. Это должно помочь размеру.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

Извините что вмешался. Моша, как вы прокоментируете такой use case.

1. Да является.
2. 1/5 таблицы.
3. int32
4. performance gain = 15%
...
Рейтинг: 0 / 0
28.12.2005, 12:40
    #33461645
violika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
1. Код документа - это поле в таблице фактов, тип Integer
2. DC насчитал 240 тыс. документов на 1 млн.900 тыс. записей (О! похоже я ошиблась в 1-м сообщении про 500 тыс.записей)
3. Про агрегации - был задан параметр 50%
результат по агрегациям:
Aggregation storage space=4.442 MB
Number of aggregations=21

P.S. Похоже это еще и влияет на время извлечения данных. На измерении товар с 3 уровнями иерархии на самом нижнем уровне данные уже полчаса извлекаются :( (65 тыс. позиций в измерении товар)
...
Рейтинг: 0 / 0
28.12.2005, 12:53
    #33461703
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
violika1. Код документа - это поле в таблице фактов, тип Integer
2. DC насчитал 240 тыс. документов на 1 млн.900 тыс. записей (О! похоже я ошиблась в 1-м сообщении про 500 тыс.записей)
3. Про агрегации - был задан параметр 50%
результат по агрегациям:
Aggregation storage space=4.442 MB
Number of aggregations=21

P.S. Похоже это еще и влияет на время извлечения данных. На измерении товар с 3 уровнями иерархии на самом нижнем уровне данные уже полчаса извлекаются :( (65 тыс. позиций в измерении товар)

Пока Моша думает, мой Вам совет.

1.Вынесите DC меру в отдельный куб.
2.% Аггрегаций снизте до 15-20%.
...
Рейтинг: 0 / 0
28.12.2005, 12:57
    #33461720
violika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
Спасибо за совет, именно это я и собираюсь попробовать сделать (в отдельный куб).
...
Рейтинг: 0 / 0
29.12.2005, 02:02
    #33463251
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
backfireИзвините что вмешался. Моша, как вы прокоментируете такой use case
В каком смысле "прокомментировать" ? Выглядит нормально. Правда судя по приведенным параметрам, куб довольно маленький - не больше 5 миллионов записей в таблице фактов. Так что проблем с производительностью быть не должно.

violikaПохоже это еще и влияет на время извлечения данных. На измерении товар с 3 уровнями иерархии на самом нижнем уровне данные уже полчаса извлекаются
А вот это совсем ненормально. При ваших параметрах не должно уходить за несколько секунд. Какой у Вас запрос MDX ?
Увеличение куба в 6 раз все таки выглядит странно - 2 миллиона записей на 50 MB места дает где то 25 байт на запись. Это выглядит хорошо (конечно я не знаю сколько у Вас мер, измерений и уровней, но наверное не совсем уж мало). Раздуть запись с 25 байт до 150 байт (в 6 раз) добавление Distinct Count меры в Вашем случае не может. Так что как и backfire я подозреваю аггрегации. Делать аггрегации для DistinctCount не так полезно, ведь это неаддитивная мера, поэтому нам приходится хранить ключи по которым он считался. То что Aggregation Storage Space всего 4 МБ выглядит подозрительно, может лучше посчитать вручную размер файлов на диске ?

violikaСпасибо за совет, именно это я и собираюсь попробовать сделать (в отдельный куб).
Пожалуйста.

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
29.12.2005, 14:20
    #33464377
violika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
MoshaА вот это совсем ненормально. При ваших параметрах не должно уходить за несколько секунд. Какой у Вас запрос MDX ?


Да все дела в MDX, который считает АВС по количеству документов на 65 тыс.позиций товаров :(
Пока не знаю как все это оптимизировать. На самом деле реально используемых товаров около 20 тыс., можно попробовать ограничить размерность Товары. Хотя может и запрос не оптимальный. Подскажите пож-та, можно ли здесь в запросе (это CM) что-нибудь оптимизировать?

iif([Measures].[Количество документов] <= 0, "C",
iif(Rank(([Товар].CurrentMember), TopPercent(Extract(NonEmptyCrossJoin(Descendants(Ancestor([Товар].CurrentMember, [Товар].[(All)]),,LEAVES), {[Measures].[Количество документов]}), [Товар]) as A, 80, [Measures].[Количество документов])) > 0, "A",
iif(Rank(([Товар].CurrentMember), BottomPercent(A, 5, [Measures].[Количество документов])) > 0, "C", "B")))


Кубы я разделила на 2, т.е. куб с DC вынесла отдельно. Он теперь 76 МБ весит, но работает быстро. Висюки начинаются в виртуальном кубе при расчете АВС.
...
Рейтинг: 0 / 0
29.12.2005, 14:39
    #33464448
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
Подскажите пож-та, можно ли здесь в запросе (это CM) что-нибудь оптимизировать?

Насчитайте это в SQL перед построением куба и запихните в Аттрибут измерения
...
Рейтинг: 0 / 0
29.12.2005, 15:00
    #33464522
violika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
То есть если это в SQL насчитывать, то надо сразу определиться как считать - по месяцам, или кварталам или еще как-то. Теряется гибкость, но наверное придется из двух зол меньшее выбирать :(
...
Рейтинг: 0 / 0
29.12.2005, 16:24
    #33464767
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование DistinctCount
violikaТо есть если это в SQL насчитывать, то надо сразу определиться как считать - по месяцам, или кварталам или еще как-то. Теряется гибкость, но наверное придется из двух зол меньшее выбирать :(

Промежуточное по гибкости решение, насчитать не 1 ранг, а непример несколько: за текущий год, за прошедший год, за текущее полугодие, за прошедшее полугодие.
ABC Ранг это не та величина, которая меняется как котировка на бирже.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Использование DistinctCount / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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