Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Slice property of partitions  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3641
SSAS 2008R2 EE

В разных источниках пишут по-разному по вопросу надо/не надо устанавливать slice property of partitions в MOLAP-модели:
как дополнительное средство контроля загружаемых данных при query-bindig-е;
бывали случаи, когда без установки slice property при исполнении MDX-запросов сканировались лишние партиции.

Видимо трудности перевода - так как правильно устанавливать сиё свойство, если у меня помесячные партиции, а в измерении времени много атрибутов,иерархий. Кроме того, в партиционируемой ТФ в одной партиции договор есть, а в другой - уже нет (закончился)
17 янв 11, 09:47    [10082480]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5113
если вы видите что у вас во время запроса читаются "лишние" с вашей точки зрения партиции так и пропишите slice-инг
17 янв 11, 11:01    [10082898]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
papalexi
Member

Откуда:
Сообщений: 135
Alex_496,

свойство slice необходимо указывать для:
1. ROLAP-секций.
2. MOLAP-секций, если размер секции мал, и поэтому по ней не построены индексы.
3. MOLAP-секций, если допускается, что данные доступны для запросов до построения индексов в секциях.
В остальных случаях, указывать slice необязательно, т.к. SSAS будет ориентироваться на данные, полученные в процессе построения индексов.
17 янв 11, 11:57    [10083437]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5113
papalexi
В остальных случаях, указывать slice необязательно, т.к. SSAS будет ориентироваться на данные, полученные в процессе построения индексов.

ну-ну :)
ох уж эта вера в то что написано в мануалах...
17 янв 11, 13:37    [10084454]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Slice property of partitions  [new]
Kolvel
Member

Откуда:
Сообщений: 5
Есть ТФ, с несколькими партициями, с месячной информацией. Нужно указать соответствующий месяц в Slice. Если у меня по календарю несколько иерархий, то в Slice необходимо указать месяц из всех иерархий или достаточно из первой попавшейся? (В запросах разные иерархии используются примерно с одинаковой регулярностью)
9 окт 16, 22:30    [19761615]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
vikkiv
Member

Откуда: London
Сообщений: 1442
иерархии строятся из первичных атрибутов измерения (хотя в дереве они могут быть и скрытыми), вот элементы того атрибута по которому режешь на партиции и указывай а не клон из иерархий
10 окт 16, 01:11    [19762095]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Kolvel
Member

Откуда:
Сообщений: 5
vikkiv
иерархии строятся из первичных атрибутов измерения (хотя в дереве они могут быть и скрытыми), вот элементы того атрибута по которому режешь на партиции и указывай а не клон из иерархий

Я правильно понимаю, что если у меня в Календаре PK [День], тогда на месячную партицию нужно указать
beetwen ([Date].[YMD].&[2016.01.01] and [Date].[YMD].&[2016.01.31])
Верно?
Спасибо
10 окт 16, 17:36    [19765508]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
vikkiv
Member

Откуда: London
Сообщений: 1442
Kolvel,

лучше наверное если год-месяц атрибут есть - поставить именно его типа [Date].[YM].&[2016].&[01] или [Date].[YM].&[2016.01], а так то оно да - до грануляции листьев можно
{[Date].[YMD].&[2016.01.01],[Date].[YMD].&[2016.01.02],...,[Date].[YMD].&[2016.01.31]}
только не диапазоном/range типа [Date].[YMD].&[2016.01.01]:[Date].[YMD].&[2016.01.31] а полностью перечисляя элементы, т.к. если помню верно :/Range() не работает т.к. динамическая функция в таком констексте (хотя может Select .. сработает), ну и размер партиции в фактах 20~40М>Х>4К с настроенными связями атрибутов (а для календарных дат это всё равно rigid)..
в принципе профайлер показывает сканирование партиций при запросах на SE - по нему можно подобрать оптимальный вариант..
10 окт 16, 19:42    [19766136]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
vikkiv
Member

Откуда: London
Сообщений: 1442
ещё вопрос если на таком уровне то как ты будешь эти партиции генерировать по мере движения во времени, не в ручную-же каждый месяц создавать.. автоматом обычно - это SSIS пакеты с XMLA генерируемым переменными из функций времени
10 окт 16, 19:53    [19766160]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Kolvel
Member

Откуда:
Сообщений: 5
vikkiv,
Спасибо, попробую. Планировал погонять "месяц" или "перечисление дней месяца", но пока нет необходимого объема данных
Если мне память не изменяет, в справке написано, что функции указывать в слайсе нельзя.

Партиции задаваться будут из пакета, уже реализовано. Осталось как раз Slice написать, поэтому и встал вопрос, что именно туда корректней будет прописать

Позднее отпишусь, что Профайлер "подскажет"
11 окт 16, 12:17    [19768392]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3606
Если в партициях не выставлен правильно SLice, то они вообще не нужны. Партиции без правильного Slice замедляют и процессинг и MDX, а вот правильный slice хорошо ускоряет и первое и второе.
12 окт 16, 11:43    [19772532]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3641
если не ошибаюсь, то до версии 2016 даже при правильно выставленных значениях Slice, в случае меры DistinctCount порой сваливается в сканирование разных секций
12 окт 16, 13:53    [19773320]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Kolvel
Member

Откуда:
Сообщений: 5
получил забавную ситуацию:
MSSQL 2014, создал 3 партиции, в одной слайс пустой, в другой взял значение месяца, в третьей указал один день, первое число выбранного месяца (не смог указать все дни, при процессинге валился, если в выражении использовал beetwen, or или еще какие-то функции, но об этом попозже)
затем запускал три разных запроса с выборкой по одному дню каждого из трех месяцев.
Профейлер показал, что запрос сканировал только нужную ему партицию, независимо от значения слайса. КАК? или 2014 мускул стал очень умным и анализировал запрос на входе партиции?)))
select * from table where date beetwen 20160101 and 20160131
12 окт 16, 20:05    [19775304]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Kolvel
Member

Откуда:
Сообщений: 5
Alex_496
если не ошибаюсь, то до версии 2016 даже при правильно выставленных значениях Slice, в случае меры DistinctCount порой сваливается в сканирование разных секций

Еще больше добавлю, при партициях и слайсах придется отказываться от Last-non-empty, иначе сканирует всё (источник сходу не назову, но "мужик авторитетный" это озвучил)
Встречал в инете описание, как можно DistinctCount и L-n-e опустить, реализовав другим способом, так, чтобы партиции "работали"
12 окт 16, 20:09    [19775313]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Slice property of partitions  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 1844
a_voronin
Если в партициях не выставлен правильно SLice, то они вообще не нужны. Партиции без правильного Slice замедляют и процессинг и MDX, а вот правильный slice хорошо ускоряет и первое и второе.


такой вариант прописывание slice корректен (партиция с архивом до 2018го года)?

{[Даты].[Год].&[2015],[Даты].[Год].&[2016],[Даты].[Год].&[2017]}
9 фев 18, 15:23    [21180380]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3606
StarikNavy
a_voronin
Если в партициях не выставлен правильно SLice, то они вообще не нужны. Партиции без правильного Slice замедляют и процессинг и MDX, а вот правильный slice хорошо ускоряет и первое и второе.


такой вариант прописывание slice корректен (партиция с архивом до 2018го года)?

{[Даты].[Год].&[2015],[Даты].[Год].&[2016],[Даты].[Год].&[2017]}


Да. На календаре должны быть rigid связи
9 фев 18, 15:46    [21180471]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 1844
a_voronin,

спасибо!
9 фев 18, 16:57    [21180797]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 1844
так, а задать
"дата">='2018-04-01'
получается нельзя?
для свежей партиции надо каждый месяц новое значение в перечеслении задавать?

{[Даты].[ГМД].[Месяц].&[201804],[Даты].[ГМД].[Месяц].&[201805]}
12 апр 18, 18:26    [21334572]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 447
StarikNavy
так, а задать
"дата">='2018-04-01'
получается нельзя?
для свежей партиции надо каждый месяц новое значение в перечеслении задавать?

{[Даты].[ГМД].[Месяц].&[201804],[Даты].[ГМД].[Месяц].&[201805]}


Да, именно так. Никакими функциями пользоваться нельзя, задать интервалом вида
{[Даты].[ГМД].[Месяц].&[201804]:[Даты].[ГМД].[Месяц].&[201812]}

тоже нельзя.
13 апр 18, 10:59    [21335824]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
vikkiv
Member

Откуда: London
Сообщений: 1442
обычно это через AMO генерируется напрямую в партицию, а не руками, поэтому шум не очень обоснован (код всё стерпит).

StarikNavy
...для свежей партиции надо каждый месяц новое значение в перечеслении задавать?..
да и в чём проблема сразу наперёд значения диапазона прописать - чтобы каждый раз не обновлять? ну если только измерение дат нужное количество периодов в будущее не показывает, но и тут - несуществующие элементы вроде тоже помнится проходили без проблем.
13 апр 18, 23:59    [21338360]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33390
Блог
StarikNavy,

Можно просто в одной из секций не задавать значение среза
14 апр 18, 09:18    [21338659]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
vikkiv
Member

Откуда: London
Сообщений: 1442
Критик,
+1xxxx
можно тогда и на всех не указывать slice, при process метаданные объекта всё равно автоматически прописывают те key_id которые входят в партицию - и оптимизатор при построении плана определяя какие объекты читать/сканировать из SE - берёт эту информацию из метаданных. Где-то читал что-то вроде есть конечно более сложные случаи когда последовательность ключей в партиции не натуральная и запрос не с ключевого атрибута с другими диапазонами не по порядку - тогда оптимизатор не может определить где данные и начинает брать всё (тогда Slice нужен чтобы ограничить заваливание в такой сценарий)
14 апр 18, 10:07    [21338700]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 1844
Критик, vikkiv

перешел в одном проекте на две партиции: свежая + архив.
пересчет "свежей" каждый день, архивной раз в неделю.
данные в "свежей" - последние 2 недели

соответсвенно ручками все это прописывать лень, поэтому
1) нет ли примера "обычно это через AMO генерируется напрямую в партицию"
2) про такой вариант не слышал "Можно просто в одной из секций не задавать значение среза"
. если им воспользоваться - лучше не указывать Slice для архивной?

3) если создать измерение "архив: да /нет" (т.е. проверка дат на уровне SQL) и один единственный раз прописать его в Slice - это будет иметь смысл?
или (т.к. пользователи работают с разными датами (через Эксель) и не будут использовать данное измерение) оно не сможет подсказать олапу в какую секцию лезть за данными?
23 апр 18, 12:55    [21360409]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
vikkiv
Member

Откуда: London
Сообщений: 1442
StarikNavy,

1) Вариантов должно хватать, зависит от целей и фантазии, там просто Properties нужные прописываешь и всё, к примеру если у тебя есть какой-то массив $a с наборами 3х переменных форматом строк Год-Страна-КолВоСтрокПартиции, тогда если по быстрому собрать (не проверял, может цикл нужно будет отдельно выносить, или для клона перестраивать) такой фрагмент может пройти :
$mg=$s.databases[$ssas_db].Cubes["MyCube"].Measuregroups["Test"]
#$mg.partitions[$z].Drop()>$null
$p=$mg.partitions["Test_Part_Default"].Clone()
foreach($b in $a){
$p.ID="Test_Part_Client"+($b[1].ToString())+"_Year_"+($b[0])
$p.description=("Partition to store Test Data for Country: "+($b[1])+" / Year: "+($b[0].ToString()))
$p.name=$p.ID
$p.slice="([Date].[Year].&["+($b[0].ToString())+"],[Geography].[Country].&["+($b[1])+"])"
$p.estimatedrows=($b[2])
$p.Source.QueryDefinition=$p.Source.QueryDefinition.Replace("1=0",("Country="+($b[1])+" and [Year]="+($b[0].ToString())+" --order by [Date],[Country]"))
$mg.Partitions.Add($p)}
$mg.Update("ExpandFull")
3) имеет-ли смысл - надо пробовать на своих данных, моделях, запросах (типы, частота, плотность, железо/cache и пр.)
А если этот атрибут скрытым добавить в измерение [Даты] - и настроить связи атрибутов [Даты].[Месяц] -> (Flexible) -> [Даты].[Архив] ? (хотя где-то там выше a_voronin намекал что нужно Rigid, но в данном случае не прокатит, т.к. даты периодически будут сбрасываться из одного элемента в другой, т.е. гибко).
23 апр 18, 14:57    [21361228]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 447
StarikNavy
...
2) про такой вариант не слышал "Можно просто в одной из секций не задавать значение среза"
. если им воспользоваться - лучше не указывать Slice для архивной?

3) если создать измерение "архив: да /нет" (т.е. проверка дат на уровне SQL) и один единственный раз прописать его в Slice - это будет иметь смысл?
или (т.к. пользователи работают с разными датами (через Эксель) и не будут использовать данное измерение) оно не сможет подсказать олапу в какую секцию лезть за данными?


2 - имеется в виду автоматический подбор слайсов/атрибутов в партиции. Известно что оно работает не так эффективно, как заявлено, и слайсы все же лучше выставлять. Думаю, что имеет смысл или выставлять для всех, или ни для кого.

3 - такое измерение должно участвовать в запросе. Если при запросе оно будет .[All], тогда пользы от такого слайса нет.
23 апр 18, 16:15    [21361699]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 1844
vikkiv, Ferdipux,

спасибо!
24 апр 18, 13:14    [21364130]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 2199
vikkiv
Критик,
+1xxxx
можно тогда и на всех не указывать slice, при process метаданные объекта всё равно автоматически прописывают те key_id которые входят в партицию - и оптимизатор при построении плана определяя какие объекты читать/сканировать из SE - берёт эту информацию из метаданных. Где-то читал что-то вроде есть конечно более сложные случаи когда последовательность ключей в партиции не натуральная и запрос не с ключевого атрибута с другими диапазонами не по порядку - тогда оптимизатор не может определить где данные и начинает брать всё (тогда Slice нужен чтобы ограничить заваливание в такой сценарий)

Да, коллега, Вы правы.

Если привязка к измерению дат у фактов на нижнем уровне - ключевом атрибуте "День" - тогда slice не нужен. Но есть вероятность ошибиться с источником строк для секции в группе мер, например, для января 2001 вместо >=20010101 and <20010201 случайно поставить >=20010101 and <=20010201, в секцию попадут строки от 1 февраля 2001. Чтобы избежать таких нелепых ошибок - и нужны slice на все секции фиксированных дат, КРОМЕ последней секции с любыми актуальными датами из незакрытого периода.
24 апр 18, 20:42    [21365894]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 1844
коллеги, по итогам проверки отказываюсь от slice (профита нет, т.к. два измерения времени в 4х варианта в кубе)

очистил это свойство, но всплыло что для старых периодов, теперь криво отражаются данные (старые года исчезли, но общие итоги верные)

партиции пересчитывал, агрегации пересоздавал, данные проверял. что еще пнуть? (
3 июл 18, 09:06    [21538393]     Ответить | Цитировать Сообщить модератору
 Re: Slice property of partitions  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 1844
StarikNavy,

коллеги, отбой )
таки кривые данные, а не удаление slice
3 июл 18, 12:07    [21538883]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / OLAP и DWH Ответить