|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Добрый день! Есть необходимость получить xmla от секции и записать её в таблицу. В ручном режиме это делается через Script Partition as -> Create to -> new window Но есть необходимость это делать автоматически для всех кубов. Кто-то может что-то подсказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 17:57 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Piotr I, Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 19:31 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Добрый день! Извините, а что это? Я может не уточнил, что у меня MS SQL SERVER vikkiv Piotr I, Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2022, 13:16 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Piotr I, Похоже на PowerShell ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 11:25 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Piotr I Добрый день! Есть необходимость получить xmla от секции и записать её в таблицу. В ручном режиме это делается через Script Partition as -> Create to -> new window Но есть необходимость это делать автоматически для всех кубов. Кто-то может что-то подсказать? Вот здесь вам расскажут не только как партиций нагенерить, а даже как целый куб программно создать со всеми потрохами. https://docs.microsoft.com/ru-ru/analysis-services/amo/programming-amo-olap-basic-objects?view=asallproducts-allversions Я как правило делаю так: сначала создаю некоторую образцовую партицию за 1 месяц или год, потом размножаю ее на месяца или года вперед. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2022, 03:14 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Добрый день! Работаем в чистом SQL (+ SSIS, SSAS). У нас есть механизм для автоматической генерации секций, основанный на том, что мы берем XMLA с генерации одной из секций, внедряем какие-то уникальные строки для замены, а потом просто делаем replace, на необходимые параметры. XMLA храним в таблице. И есть проблема, когда кто-то изменят секции в кубе, но забывает обновить таблицу. Поэтому и хотелось бы гениерировать скрипт для создания новой секции и сравнивать с тем, что есть в таблице. a_voronin Piotr I Добрый день! Есть необходимость получить xmla от секции и записать её в таблицу. В ручном режиме это делается через Script Partition as -> Create to -> new window Но есть необходимость это делать автоматически для всех кубов. Кто-то может что-то подсказать? Вот здесь вам расскажут не только как партиций нагенерить, а даже как целый куб программно создать со всеми потрохами. https://docs.microsoft.com/ru-ru/analysis-services/amo/programming-amo-olap-basic-objects?view=asallproducts-allversions Я как правило делаю так: сначала создаю некоторую образцовую партицию за 1 месяц или год, потом размножаю ее на месяца или года вперед. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2022, 12:28 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Piotr I Добрый день! Работаем в чистом SQL (+ SSIS, SSAS). У нас есть механизм для автоматической генерации секций, основанный на том, что мы берем XMLA с генерации одной из секций, внедряем какие-то уникальные строки для замены, а потом просто делаем replace, на необходимые параметры. XMLA храним в таблице. И есть проблема, когда кто-то изменят секции в кубе, но забывает обновить таблицу. Поэтому и хотелось бы гениерировать скрипт для создания новой секции и сравнивать с тем, что есть в таблице. a_voronin пропущено... Вот здесь вам расскажут не только как партиций нагенерить, а даже как целый куб программно создать со всеми потрохами. https://docs.microsoft.com/ru-ru/analysis-services/amo/programming-amo-olap-basic-objects?view=asallproducts-allversions Я как правило делаю так: сначала создаю некоторую образцовую партицию за 1 месяц или год, потом размножаю ее на месяца или года вперед. В вашем чистом SQL в SSIS есть C#. Второй подход, заведите таблицу со списком партиций куба -- куб база группа мер партиция тип партиции имя запрос, срез/slice. В ней сделайте вычисляемое поле, которое дает скрпт а) создание партиции б) обновления партиции далее развлекайтесь с чистым SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2022, 13:09 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
В этом то и есть основной вопрос. т.к. у нас через таблицу всё сейчас и организовано. Как получить a_voronin которое дает скрпт а) создание партиции a_voronin Piotr I Добрый день! Работаем в чистом SQL (+ SSIS, SSAS). У нас есть механизм для автоматической генерации секций, основанный на том, что мы берем XMLA с генерации одной из секций, внедряем какие-то уникальные строки для замены, а потом просто делаем replace, на необходимые параметры. XMLA храним в таблице. И есть проблема, когда кто-то изменят секции в кубе, но забывает обновить таблицу. Поэтому и хотелось бы гениерировать скрипт для создания новой секции и сравнивать с тем, что есть в таблице. пропущено... В вашем чистом SQL в SSIS есть C#. Второй подход, заведите таблицу со списком партиций куба -- куб база группа мер партиция тип партиции имя запрос, срез/slice. В ней сделайте вычисляемое поле, которое дает скрпт а) создание партиции б) обновления партиции далее развлекайтесь с чистым SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2022, 13:51 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Как xmla получить через чистый SQL не знаю, но для вашей задачи может хватить: SELECT * FROM OPENQUERY(XXX,'SELECT * FROM $SYSTEM.TMSCHEMA_PARTITIONS') где ХХХ - линкед сервер на ваш SSAS ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2022, 14:03 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Добрый день! К сожалению, результата нет. использовал данный скрипт на mdx и ничего не получил ни на одной из баз. Посмотрел, что список доступных таблиц можно посмотреть таким образом: Код: sql 1. 2. 3.
К сожалению, тут близко к теме только DISCOVER_PARTITION_DIMENSION_STAT, DISCOVER_PARTITION_STAT. Но они не подходят. Может знаете, что не так? Ибн Хоттаб Как xmla получить через чистый SQL не знаю, но для вашей задачи может хватить: SELECT * FROM OPENQUERY(XXX,'SELECT * FROM $SYSTEM.TMSCHEMA_PARTITIONS') где ХХХ - линкед сервер на ваш SSAS ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2022, 16:29 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2022, 16:50 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Добрый день! Спасибо прочитал, но как раз это я уже знаю Как я писал ранее, мы вручную генерируем XMLA для создания секции и сохраняем его(XMLA) в таблице, а потом раз в месяц запускаем скрипт, который генерирует новые секции. Есть только одна проблема. Если кто-то испменил КУБ(секции в этом кубе), но забыл изменить данные в таблице, то будут генерироваться некорректные секции. Вот от этого и хочу подстраховаться. Для этого мне нужно как-то автоматически генерировать XMLA для создания секции, чтобы сравнить с той, которая сейчас есть в таблице. В любом случае спасибо за участие. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 13:44 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Piotr I Добрый день! Спасибо прочитал, но как раз это я уже знаю Как я писал ранее, мы вручную генерируем XMLA для создания секции и сохраняем его(XMLA) в таблице, а потом раз в месяц запускаем скрипт, который генерирует новые секции. Есть только одна проблема. Если кто-то испменил КУБ(секции в этом кубе), но забыл изменить данные в таблице, то будут генерироваться некорректные секции. Вот от этого и хочу подстраховаться. Для этого мне нужно как-то автоматически генерировать XMLA для создания секции, чтобы сравнить с той, которая сейчас есть в таблице. В любом случае спасибо за участие. Не занимайтесь подобной свистопляской. Создайте в кубе секции на 2-3 года вперед. Я этим занимался сам перед новым годом. До конца 2024 го сделал и забыл теперь про это. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 11:23 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Добрый день! Во-первых, при изенении куба вам придется изменять дополнительные секции, но это минимальная проблема. Во-вторых, Основная проблема тут в том, что у нас практи пересчитывать только последнюю секцию (последние 2), и с вашим решением это уже не очень будет. А пересчитывать все секции это нам мощностей не хватит. В-третьих, я очень не люблю такие решения, когда чт-то сделано с запасом. Обычно этот запас когда-то заканчивается и потом наступает попа. Для ког-то другого или тебя, что ещё обиднее. У нас была похожая проблема с сеционирование таблицы, когда из-за несовсем корректного кода новые секции не делалили в течение полугода(в той таблице секции были еженедельные), что заметно снизело скорость работы и восоздовать секции при наличии данных уже достаточно долгий процесс. a_voronin Piotr I Добрый день! Спасибо прочитал, но как раз это я уже знаю Как я писал ранее, мы вручную генерируем XMLA для создания секции и сохраняем его(XMLA) в таблице, а потом раз в месяц запускаем скрипт, который генерирует новые секции. Есть только одна проблема. Если кто-то испменил КУБ(секции в этом кубе), но забыл изменить данные в таблице, то будут генерироваться некорректные секции. Вот от этого и хочу подстраховаться. Для этого мне нужно как-то автоматически генерировать XMLA для создания секции, чтобы сравнить с той, которая сейчас есть в таблице. В любом случае спасибо за участие. пропущено... Не занимайтесь подобной свистопляской. Создайте в кубе секции на 2-3 года вперед. Я этим занимался сам перед новым годом. До конца 2024 го сделал и забыл теперь про это. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 16:47 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Piotr I Добрый день! Во-первых, при изенении куба вам придется изменять дополнительные секции, но это минимальная проблема. Во-вторых, Основная проблема тут в том, что у нас практи пересчитывать только последнюю секцию (последние 2), и с вашим решением это уже не очень будет. А пересчитывать все секции это нам мощностей не хватит. В-третьих, я очень не люблю такие решения, когда чт-то сделано с запасом. Обычно этот запас когда-то заканчивается и потом наступает попа. Для ког-то другого или тебя, что ещё обиднее. У нас была похожая проблема с сеционирование таблицы, когда из-за несовсем корректного кода новые секции не делалили в течение полугода(в той таблице секции были еженедельные), что заметно снизело скорость работы и восоздовать секции при наличии данных уже достаточно долгий процесс. a_voronin пропущено... Не занимайтесь подобной свистопляской. Создайте в кубе секции на 2-3 года вперед. Я этим занимался сам перед новым годом. До конца 2024 го сделал и забыл теперь про это. Во-первых, и Во-вторых, существует только в вашем воображении. Надо что-то очень сильно наворотить, чтобы будущие секции пришлось менять или обновлять. А прошлые не придется? Тогда в чем разница? SELECT * FROM Vw_Data_Mart WHERE DATA BETWEEN .... Только не говорите мне, что вы перечисляете список полей в секциях. про третье я вообще не понял. У меня все кубы во всех компаниях имели секции на 1-3 года вперед. Обновлялась только последняя или текущая или пару месяцев. При добавлении измерений или мер ничего с секциями делать не надо. Как были, так и остались. Никогда не понимал зачем люди городят какой-то огород, который добавляет новые секции каждый месяц, потом эта джоба падает, секций нет, данных нет, долгие дискуссии о том, как привести это в подряд. У меня все просто -- сделал вперед и забыл на 3 года. 1) Партиционирование в таблице фактов должно совпадать с партиционированием в кубе, 2) у секций проставить срезы (slice), тогда никто туда лезть не будет 3) Плат у витрины должен быть такой, что за будущей период скан равен 0 Вот если не сделали витрину по Кимбаллу, если у вас под витриной не схема звезда, а месиво из непонятных джойнов, вот тогда да... И все. Вот если у вас slice не проставлены, тогда да начнется свистопляска. Но я уже ничему не удивляюсь, всякое повидал. Даже тех, кто уперто доказывал, что без срезов лучше, что там все закешируется ... брр... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 02:06 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
a_voronin Piotr I Добрый день! Во-первых, при изенении куба вам придется изменять дополнительные секции, но это минимальная проблема. Во-вторых, Основная проблема тут в том, что у нас практи пересчитывать только последнюю секцию (последние 2), и с вашим решением это уже не очень будет. А пересчитывать все секции это нам мощностей не хватит. В-третьих, я очень не люблю такие решения, когда чт-то сделано с запасом. Обычно этот запас когда-то заканчивается и потом наступает попа. Для ког-то другого или тебя, что ещё обиднее. У нас была похожая проблема с сеционирование таблицы, когда из-за несовсем корректного кода новые секции не делалили в течение полугода(в той таблице секции были еженедельные), что заметно снизело скорость работы и восоздовать секции при наличии данных уже достаточно долгий процесс. пропущено... Во-первых, и Во-вторых, существует только в вашем воображении. Надо что-то очень сильно наворотить, чтобы будущие секции пришлось менять или обновлять. А прошлые не придется? Тогда в чем разница? SELECT * FROM Vw_Data_Mart WHERE DATA BETWEEN .... Только не говорите мне, что вы перечисляете список полей в секциях. про третье я вообще не понял. У меня все кубы во всех компаниях имели секции на 1-3 года вперед. Обновлялась только последняя или текущая или пару месяцев. При добавлении измерений или мер ничего с секциями делать не надо. Как были, так и остались. Никогда не понимал зачем люди городят какой-то огород, который добавляет новые секции каждый месяц, потом эта джоба падает, секций нет, данных нет, долгие дискуссии о том, как привести это в подряд. У меня все просто -- сделал вперед и забыл на 3 года. 1) Партиционирование в таблице фактов должно совпадать с партиционированием в кубе, 2) у секций проставить срезы (slice), тогда никто туда лезть не будет 3) Плат у витрины должен быть такой, что за будущей период скан равен 0 Вот если не сделали витрину по Кимбаллу, если у вас под витриной не схема звезда, а месиво из непонятных джойнов, вот тогда да... И все. Вот если у вас slice не проставлены, тогда да начнется свистопляска. Но я уже ничему не удивляюсь, всякое повидал. Даже тех, кто уперто доказывал, что без срезов лучше, что там все закешируется ... брр... Добрый день! Спасибо, раньше действительно перечислялвсе поля в секции и как раз при добавлении новых данных приходилось изменять секции. Проанализирую существующие кубы и посмотрю, пролучится ли поставить "*". А по поводу автоматического добавления, то когда у меня не отработает JOB, я это наглядно увижу и сам исправлю. В то время, если я забуду через три года добавить еще секций, то мне об этом будет писать уже бизнес и я буду виноватым. Вы анализировали насколько затратно считать "пустые" секции? Просто у нас этиъ кубов не мало и многие пересчитываются каждый час. изините за неопытность я просто в этом деле неопытный. В прошлом проекте все отчеты писали на C#, а тут другая практика сложилась. Вот и познаю её. По третьему пункту, я писал по поводу секци ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 13:24 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Piotr I a_voronin пропущено... Во-первых, и Во-вторых, существует только в вашем воображении. Надо что-то очень сильно наворотить, чтобы будущие секции пришлось менять или обновлять. А прошлые не придется? Тогда в чем разница? SELECT * FROM Vw_Data_Mart WHERE DATA BETWEEN .... Только не говорите мне, что вы перечисляете список полей в секциях. про третье я вообще не понял. У меня все кубы во всех компаниях имели секции на 1-3 года вперед. Обновлялась только последняя или текущая или пару месяцев. При добавлении измерений или мер ничего с секциями делать не надо. Как были, так и остались. Никогда не понимал зачем люди городят какой-то огород, который добавляет новые секции каждый месяц, потом эта джоба падает, секций нет, данных нет, долгие дискуссии о том, как привести это в подряд. У меня все просто -- сделал вперед и забыл на 3 года. 1) Партиционирование в таблице фактов должно совпадать с партиционированием в кубе, 2) у секций проставить срезы (slice), тогда никто туда лезть не будет 3) Плат у витрины должен быть такой, что за будущей период скан равен 0 Вот если не сделали витрину по Кимбаллу, если у вас под витриной не схема звезда, а месиво из непонятных джойнов, вот тогда да... И все. Вот если у вас slice не проставлены, тогда да начнется свистопляска. Но я уже ничему не удивляюсь, всякое повидал. Даже тех, кто уперто доказывал, что без срезов лучше, что там все закешируется ... брр... Добрый день! Спасибо, раньше действительно перечислялвсе поля в секции и как раз при добавлении новых данных приходилось изменять секции. Проанализирую существующие кубы и посмотрю, пролучится ли поставить "*". А по поводу автоматического добавления, то когда у меня не отработает JOB, я это наглядно увижу и сам исправлю. В то время, если я забуду через три года добавить еще секций, то мне об этом будет писать уже бизнес и я буду виноватым. Вы анализировали насколько затратно считать "пустые" секции? Просто у нас этиъ кубов не мало и многие пересчитываются каждый час. изините за неопытность я просто в этом деле неопытный. В прошлом проекте все отчеты писали на C#, а тут другая практика сложилась. Вот и познаю её. По третьему пункту, я писал по поводу секци Обновление пустых секций занимает секунды. Но важно, чтобы запрос на будущий период, где нет данных, быстро отдавал 0 строк. Главное во всем этом, это slice (срез) секции. Ещё важно, чтобы в календаре были rigid связи. Если по нему конечно делается срез. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 15:03 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
a_voronin Обновление пустых секций занимает секунды. Но важно, чтобы запрос на будущий период, где нет данных, быстро отдавал 0 строк. Главное во всем этом, это slice (срез) секции. Э, все так, но есть нюансы. Если секций становится очень много -- процессинг куба замедляется, практически в любом варианте, на этапе подготовки плана процессинга. Видимо, движок обсчитывает все возможные партиции. Мы словили такой сценарий, когда создали пустые временные секции до 2040 года, и запустили процессинг Dim Update. SSAS 2012 думал почти полчаса на подготовке плана. В версии 2016 стало несколько получше, но все равно создаем секции на 2 года вперед, не более. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 13:58 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Ferdipux a_voronin Обновление пустых секций занимает секунды. Но важно, чтобы запрос на будущий период, где нет данных, быстро отдавал 0 строк. Главное во всем этом, это slice (срез) секции. Э, все так, но есть нюансы. Если секций становится очень много -- процессинг куба замедляется, практически в любом варианте, на этапе подготовки плана процессинга. Видимо, движок обсчитывает все возможные партиции. Мы словили такой сценарий, когда создали пустые временные секции до 2040 года, и запустили процессинг Dim Update. SSAS 2012 думал почти полчаса на подготовке плана. В версии 2016 стало несколько получше, но все равно создаем секции на 2 года вперед, не более. Только что процессил группу мер на 60 секций, из которых заполнены только 4. Заняло 00:01:36 . ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 19:11 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
a_voronin Ferdipux пропущено... Э, все так, но есть нюансы. Если секций становится очень много -- процессинг куба замедляется, практически в любом варианте, на этапе подготовки плана процессинга. Видимо, движок обсчитывает все возможные партиции. Мы словили такой сценарий, когда создали пустые временные секции до 2040 года, и запустили процессинг Dim Update. SSAS 2012 думал почти полчаса на подготовке плана. В версии 2016 стало несколько получше, но все равно создаем секции на 2 года вперед, не более. Только что процессил группу мер на 60 секций, из которых заполнены только 4. Заняло 00:01:36 . Когда была проблема - было под 600 групп мер, в среднем по 160 партиций, итого 96000. Даже если обрабатывали 50 групп мер - SSAS сильно тормозил на начальной фазе. Уменьшили до 60 партиций на группу мер - стало легче. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2022, 22:25 |
|
Создание XMLA секции(partition) куба OLAP
|
|||
---|---|---|---|
#18+
Ferdipux a_voronin пропущено... Только что процессил группу мер на 60 секций, из которых заполнены только 4. Заняло 00:01:36 . Когда была проблема - было под 600 групп мер, в среднем по 160 партиций, итого 96000. Даже если обрабатывали 50 групп мер - SSAS сильно тормозил на начальной фазе. Уменьшили до 60 партиций на группу мер - стало легче. Это крайне эктремальный куб. У вас все на грани лимитов по макс числу партиций. Вряд ли у ТС такой размер. 30-40 групп мер, до 120 партиций в половине из них, это более распространенная история. Вот у нас старые партиции (до 16 , где-то до 18 года) все-таки обрезают. Ибо не надо так далеко лазить. Но главный смысл дискуссии выше был в том, что партиции надо делать заранее вперед, а не создавать джобой каждый месяц. На год вперед точно стоит делать сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 10:08 |
|
|
Start [/forum/topic.php?fid=49&tid=1857028]: |
0ms |
get settings: |
1ms |
get forum list: |
6ms |
check forum access: |
0ms |
check topic access: |
0ms |
track hit: |
24ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
14ms |
update_topic_read_status (1857028): 20.02.2022 10:08:55: |
0ms |
get tp. blocked users: |
1ms |
get online users: |
19ms |
check new: |
1ms |
others: | 73ms |
total: | 144ms |
0 / 0 |