powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Наверное простой вопрос по Tabular
5 сообщений из 5, страница 1 из 1
Наверное простой вопрос по Tabular
    #40037465
Ибн Хоттаб
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть куб, в котором много всяких измерений, а 13 из них - это разные контрагенты, которые берутся из одной и той же таблицы в базе. Как правильнее/выгоднее с точки зрения времени процессинга их представлять?

И варианты ответа:

1) 13 раз брать из таблицы, для каждого измерения отдельно

2) Читать один раз, а потом для остальных 12 делать типа
"partitions": [
{
"name": "CalculatedTable1",
"source": {
"type": "calculated",
"expression": "Counterparty"
}
}

3) Джойнить нужные атрибуты из них (а их получится примерно от 13*4 до 13*5) сразу в таблицу фактов, во время ее загрузки.

4) Другой вариант, до которого я не додумался
...
Рейтинг: 0 / 0
Наверное простой вопрос по Tabular
    #40037625
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет однозначного ответа, ответ зависит от приоритетов, там обычная модель стоимость/выгода так минимум (в т.ч. финансово и обслуживание)
от таких факторов как импортируемый размер и ограничения сервера по памяти, необходимая скорость
получения данных (не только процессинга, но и получения результата на запрос пользователя)
материализация всего (на разумно смоделированной гранулярности) обычно ведёт к ускорению получения ответа на запрос,
если расчётами делать - снизив материализацию то можно ускорить процессинг но во время runtime запроса пользователями будет замедление.
для мелких измерений в принципе всё равно, для крупных уже надо смотреть баланс факторов и предъявляемые к системе цели
а дальше подбирать под эти приоритеты через профайлинг - что быстрее, с вариациями фильтраций на уровне M или DAX партиций
из основного измерения/источника уже на уровне SSAS (которая всё-таки по идее работает всё равно на columnstore
и там нет network overhead т.к. всё происходит внутри, многопользовательской нагрузки как на DWH т.к.
SSAS обычно dedicated на одну задачу и нет на заднем плане параллельных ETL для других job-ов

Ибн Хоттаб
2) Читать один раз, а потом для остальных 12 делать типа
"partitions":...
4) Другой вариант,...

Судя по тому что я помню от пары лет назад - партиции бывают как минимум следующих типов:
Type:1-Query (Legacy),2-Calculated,3-None,4-M/PowerQuery,5-Entity, 6-?, 7-(calculation group?) может ещё что добавили
...
Рейтинг: 0 / 0
Наверное простой вопрос по Tabular
    #40041882
Ибн Хоттаб
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv, то есть, если я правильно вас понял, снижение "материализации" ведет к ускорению процессинга, а не наоборот? Т.е. чем меньше я гружу из источника и больше вычисляю на основе этого, тем быстрее идет процессинг? Честно говоря это несколько расходится с тем что я наблюдаю: дневные порции данных залетают со свистом, за минуты, а вот process recalc потом идет часы.

Вижу, к своему удивлению, что вопрос не такой уж простой. :(
...
Рейтинг: 0 / 0
Наверное простой вопрос по Tabular
    #40041903
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ибн Хоттаб,

Навскидку там не только calculated колонны (плюс отдельный вопрос: таблицы) но и меры
если упрощённо разложить по шагам то насколько я помню под вечер - есть такие варианты:
1) в источнике (нагрузка на получение данных/сеть и sql? сервер)
2) в PowerQuery/M вычисляемые таблицы
3) в PowerQuery/M вычисляемые колонны
4) в DAX вычисляемые таблицы (в т.ч. основа Calculation Groups без колон/мер)
5) в DAX вычисляемые колонны
6) в DAX вычисляемые меры

Первые 3 материализуются (во время процессинга, на разных его шагах, смотрим на нагрузку ядер cpu,
ставим память побыстрее, с дисками - вроде всё в памяти, посл. не проверял - не было необх.)

Последние 3 рассчитываются во время сессии пользователя / запросов
(на разных шагах, некоторые сразу при инициализации, некоторые по необходимости - меры)

По процессингу надо смотреть где тормозит (Data/Recalc)
https://docs.microsoft.com/en-us/analysis-services/tabular-models/process-database-table-or-partition-analysis-services

Может там на PowerQuery тормоза а не в источнике.
может сеть очень узкая - тогда разумней вытащить нужный датасет один раз и уже на SSAS разложить по своим объектам

При разумной организации если не городить непролазный лес
(падение из-за низкокачественной модели/кода)
и глобальная цель именно ускорение процесинга
(и модификация источника невозможна, напр. cpu быстрее не поставить и пр.)
то можно частично переложить часть ожидания на пользователя - расчёты во время сессии (DAX)
если там пару сотен миллисекунд, если там минуты то естественно пользователь пошлёт такое решение куда подальше

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

ну в смысле если речь о 10+ миллионах записей в справочнике (партициями), если там пару тыс. строчек без особых перспектив стремительного роста - то какая разница, можно не заморачиваться (хоть direct query)
// хотя конечно бывает и десяток нужных строчек тянут из многомилионных таблиц по 10 минут..
...
Рейтинг: 0 / 0
Наверное простой вопрос по Tabular
    #40043830
TJ001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ибн Хоттаб,

Чем меньше уникальных значений, тем быстрее идет процессинг, меньше весит куб и быстрее работают измерения.
Обычно извлечение из БД занимает меньшую часть времени из всего цикла процессинга.
Но если хочется оптимизировать чтение, можно попробовать сделать секционирование таблицы в БД таким образом, чтобы каждая секция содержала клиентов для того или иного измерения, без пересечений. Разумеется, если это не противоречит остальным задачам. И это нужно проверять, быть может кластерный индекс будет более выгодным.

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


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