powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Help! DSO и опять обновление кубов
10 сообщений из 10, страница 1 из 1
Help! DSO и опять обновление кубов
    #32447407
Torin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мужики !
У меня в витрине 10 мил. записей, стоит MS AS 2k SP3a, в AS - 2 DB и в каждом 2 куба, и в каждом кубе десяток партиций с фильром по кластерному ключу в витрине (суррогатный ключ месяца и года). Т.е. каждая патриция хранит ВСЕ агрегаты одного месяца и года (около 600 тыс записей из витрины). В каждом кубе все дименшионы - общие. Есть иерархии как сбалансированные так и нет. И у всех иерархий пока changed=false.

Ввиду завершения проекта дописал себе в ETL приложение (на vb6) обновление кубов. По коду я перебираю каждый сервер, обновляю дименшионы

m_dsoDatabase.BeginTrans
Dim dsoDim As DSO.Dimension
For Each dsoDim In m_dsoDatabase.Dimensions
dsoDim.process ProcessTypes.processRefreshData
Next
m_dsoDatabase.CommitTrans

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

Set dsoPartition = dsoCube.MDStores.item(normalPartitionName)
logMessage " regular update " + dsoPartition.Name
dsoPartition.process (ProcessTypes.processRefreshData)
dsoPartition.Update

И сразу нарвался на проблемы:
Все остальные партиции обнуляются.
Кто то может паказать код, как делать, чтобы не обнулялись ?? (я понимаю практически на любом языке программирования ;-))

P.S. Документацию и посты читал, понял как смог. Тпкое впечатление, что обновление шаред диментиронов все партиции сбрасываются..

Спасибо, блин, большое ! ;-))
...
Рейтинг: 0 / 0
Help! DSO и опять обновление кубов
    #32447432
Фотография Quark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BOL
Important When a shared dimension is processed with the Rebuild the dimension structure option, all cubes that include the shared dimension immediately become unavailable to users and must be processed before they can be used again
...
Рейтинг: 0 / 0
Help! DSO и опять обновление кубов
    #32447509
Torin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаю, но они не меняются в структуре каждые 2 часа. А это код запускаясь каждые 2 часа обнуляет партиции.
...
...
Рейтинг: 0 / 0
Help! DSO и опять обновление кубов
    #32447842
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
Так а почему бы не делать Incremental Update Dimensions при котором партиции не нужно рефрешить?
...
Рейтинг: 0 / 0
Help! DSO и опять обновление кубов
    #32447852
Torin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
;-)
Видел эту фразу в постах
Такого элемента перечисления в DSO.ProcessTypes нету :-)
Там есть :

processBuildStructure
processDefault
processFull
processFullReaggregate
processReaggregate
processRefreshData
processRefreshDataAndIndex
processResume
processSuspend

Какой выбрать ?
...
Рейтинг: 0 / 0
Help! DSO и опять обновление кубов
    #32448293
Torin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, орлы !
Это сделать нельзя через DSO (Incremental Update Dimensions). BOL пишет:

Process (MDStore Interface)
The Process method of the MDStore interface creates and populates an MDStore object on the Analysis server.

Applies To
clsCube
clsDatabase
clsPartition


Заметим, что Dimension сдесь нет ;-), прямо как в "ДЕБЕЛЕ" про суслика. Метод то есть ;-) - это потому, что один интефейс MDStore используется.
Вообщем суть далее написано, что сее действие мжно сделать только из интерфейса.;-(((/ Странно, конечно
И если кто то решиться возразить - поправка к условиям - на самом деле я один диментион сделал changed. Но в данном случае это не должно мешать..
...
Рейтинг: 0 / 0
Help! DSO и опять обновление кубов
    #32448310
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно документация по этому вопросу не очень ясная и ввела Вас в заблуждение. Отрывок цитируемый г-ном Torin говорит про MDStore interface, в то время как измерения имплементируют Dimension interface.
Более подробно об этом написано по следующему URL:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/olapdmpr/prdimensioni_7f03.asp

Вкратце:

The Process method of the Dimension interface creates and populates a dimension on the Analysis server.

Applies To
clsDatabaseDimension

Для того чтобы сделать Incremental Dimension Processing надо воспользоваться processType = processRefreshData
...
Рейтинг: 0 / 0
Help! DSO и опять обновление кубов
    #32448312
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Mosha

Ну так Torin так и делал, смю его код.
Он же как раз и делает incremental update для зашареных измерений.

Код: plaintext
1.
2.
3.
4.
5.
m_dsoDatabase.BeginTrans 
Dim dsoDim As DSO.Dimension 
For Each dsoDim In m_dsoDatabase.Dimensions 
dsoDim.process ProcessTypes.processRefreshData 
Next 
m_dsoDatabase.CommitTrans 


Вопрос то прозвучал в другом: Почему после этого разделы кубов становяться "non processed"?

To Torin

У меня возник вопрос: является ли на самом деле инкрементальный Update зашареных измерений причиной инвалидации разделов куба?

Мне например не понятно зачем вызывается

Код: plaintext
dsoPartition.Update 


Я этого не делаю при процессинге и все работает без проблем.

То Моsha

На примере работы с ДСО (через .NET Interop) я стокнулся с проблемой, что в С# использование оператора ForEach для OlapCollection, мягко говоря, не предсказуемо. Свзанно ли это с тем, что OlapCollection имеет "не нормальную индексацию"?
...
Рейтинг: 0 / 0
Help! DSO и опять обновление кубов
    #32448333
Mosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Ну так Torin так и делал, смю его код

Вы правы, я не посмотрел в parent post, а только в последующие ответы.

> поправка к условиям - на самом деле я один диментион сделал changed. Но в данном случае это не должно мешать..

Не только не должно мешать, но напротив должно помогать. Основная цель changing dimensions заключается в том, что когда с ними происходят изменения (например изменение позиции в иерархии), то не надо перестраивать partitions а только их индексы.

> Все остальные партиции обнуляются.

Как это проявляется ? Пропадают файлы с данными partition ? Или файлы с данными на месте а происходит что-то другое ?
...
Рейтинг: 0 / 0
Help! DSO и опять обновление кубов
    #32449229
Torin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
update я уже влепил, пока разбирался.
Будете смеятся, но с утра все оК.
На всякий случай каждый раз перебираю все партиции каждого куба

For Each dsoPartition In dsoCube.MDStores
If dsoPartition.State = olapStateNeverProcessed Then
logMessage " lost update for Partition " + dsoPartition.Name
dsoPartition.process (processRefreshData)
End If
Next

Это даст мне полную гарантию , что все в порядке (если сервер вдруг решит сделать размерности rebuild ? - он ведь может ?)

И прошу прощения за тупость, мне до сих пор неясен смысл статуса партиции olapStateCurrent - в BOL вроде написано, что если партиция имеет его, то она не будет обработана при обновлении куба ?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Help! DSO и опять обновление кубов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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