powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / процессинг куба отваливается по таймауту
10 сообщений из 10, страница 1 из 1
процессинг куба отваливается по таймауту
    #39410110
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть хранилище на SQL2000. И есть куб, построенный в SQL2012 Standard
На хранилище лежат т.фактов, в каждой из которой примерно по 3млн записей. По этим т.фактов построена вьюха вида:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE view SSFactsAll as
select .......
from Facts_2015
union all
select .......
from Facts_2016
union all
select .......
from Facts_2017


на всех ключевых полях (для связи со справочниками) есть индексы.

И вот при построении куба в студии первые сутки все отлично процессилось примерно за час-полтора. На след.день при открывании проекта там же в студии и процессинге вручную, произошло отваливание по таймауту через 4 часа (время отваливания разное: от часа до пяти). С тех пор больше не удавалось отпроцессить куб.

Еще заметил сильные подвисания студии при попытке добавить в DataSourceView новую таблицу в окошке "Add/Remove Tables". Студия долго-долго думает (минут 5-10) и выводит наконец в колонке Available objects доступные таблицы. Такое же подвисание происходит при выборе таблицы для новой партиции если выбран DataSource, а не DataSourceView.
Но после такой паузы потом все отображается быстро.

Другие подобные решения (solutions), когда тот же OLAP-сервер обращается к той же базе на SQL2000, работают нормально.

Подскажите, в какую сторону копать?
...
Рейтинг: 0 / 0
процессинг куба отваливается по таймауту
    #39410667
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987,

попробуйте вручную процессить по отдельности, чтобы найти проблемное место
логи опять же, на чем он 4 часа висит?
скорей всего какой-то SQL запрос оптимизатор делает неоптимально (найти и переделать)
...
Рейтинг: 0 / 0
процессинг куба отваливается по таймауту
    #39410673
RioMare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987,
Решение в лоб - просто увеличить timeout со стороны куба ( SQL2012)
Если есть желание копать, то берёте профайлер и смотрите что именно вызывает этот timeout.
Можно переделать вот это

Код: sql
1.
2.
3.
4.
5.
6.
CREATE view SSFactsAll as
select .......
from Facts_Current 
union all
select .......
from Facts_Hist


и постепенно делайте incremental update по частям - сначала 2015, потом 2016 и тд. Или у вас в 2017 потенциально могут меняться факты ?
В 2012STD даже по-моему было можно до 3 партиций сделать в самом кубе ?
Но начните всё-таки с профайлера
...
Рейтинг: 0 / 0
процессинг куба отваливается по таймауту
    #39417812
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжаю вести наблюдение.
проблемный запрос выглядит так (его выдает сама студия при процессинге куба в окошке "Process Progress"):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SELECT [тут полтора десятка полей]
  FROM [dbo].[SSFactsAll] AS [dbo_SSFactsAll],[dbo].[MatId_Usage_SecSales] AS [dbo_MatId_Usage_SecSales_4],[dbo].[MatId_Usage_SecSales] AS [dbo_MatId_Usage_SecSales_14],[dbo].[MatId_Usage_SecSales] AS [dbo_MatId_Usage_SecSales_15],[dbo].[t_Clients_SecSales] AS [dbo_t_Clients_SecSales_16]
  WHERE 
  (
   
  (
   [dbo_SSFactsAll].[MatId]   =  [dbo_MatId_Usage_SecSales_4].[MatId]
  )
     AND  
  (
   [dbo_SSFactsAll].[MatId]   =  [dbo_MatId_Usage_SecSales_14].[MatId]
  )
     AND  
  (
   [dbo_SSFactsAll].[MatId]   =  [dbo_MatId_Usage_SecSales_15].[MatId]
  )
     AND  
  (
   [dbo_SSFactsAll].[t_ReceiverPropId]   =  [dbo_t_Clients_SecSales_16].[Id]
  )
 
  )
 
  ORDER BY [dbo_SSFactsAll].[ClientMatCounter]
  ASC


вот прямо сейчас куб процессится нормально. Видно, как увеличивается кол-во прочитанных строк: примерно 300тыс/сек. А в течение прошлой недели процесситься не хотел - отваливался примерно через 8 часов.

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

самое главное указали уже - это партиции и правильный индекс на это дело (партиции соответственно будут по нужному году напр. where idyear=2016)
во первых для более быстрого получения результата убери ORDER BY.. - т.к. обычно в Execution Plan это одна из тяжелых операций.
во вторых для экономии сети замени не нужные поля (проблема многих кубов когда тащится всё) на пустые значения
в третьих попробуй добавь with(nolock) или readpast - бывает помогает иногда
lock конфликты понаблюдай в проблемное время
макс количество подключений для DS (не процесситься ли-чего ещё)
проверь правильная-ли грануляция стоит - бывает тащат все трансакции а SSAS потом в DataStore преагрегирует до нужного уровня - хотя SQL для этого намного лучше заточен (group by)
если подозрения на NETWORK - рамеры пакетов потестируй - нет-ли потерь и на сколько % сеть забита во время получения данных
поставь Trace/Profiler/PerfMonitor во время проблемных окон (с обоих сторон : источник данных и SSAS)
даже если ты единственный админ и знаешь что никто другой прав на Process не имеет - бывает смысл посмотреть $system.discover_locks на предмет левых SPID и найти случайного злодея с его сессией (discover_sessions, discover_connections)
ну и правильность masterdata для измерений с поведением unknownmember/none (очень тяжела обработка по конвертации или skip member если их больше половины например)
поставь все error на полный игнор - чтобы лишними данными/сообщениями не обмениваться (чисто для проверки т.к. чревато последствиями на качество данных)
ну и ещё раз - мониторинг сети/cpu/ram/дисков с обеих сторон во время проблемы..
может crossjoin (тот который таблицы/вьюхи через запятую) поменяй в ручном режиме для этой партиции на поэффективней если знаешь данные лучше.. в общем с самим запросом пошаманить..

это к тому что однозначного ответа нет т.к. явное непостоянство результатов (сбой/удача) наблюдается.. поэтому метод дедукции (целясь на наиболее вероятное место или где минимум усилий/затрат на проверку) и максимальная эффективность всего пошагово..
...
Рейтинг: 0 / 0
процессинг куба отваливается по таймауту
    #39417817
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к стати - года у тебя всего 3 , а SQL Standard вроде как вполне поддерживает до 3-х партиций для SSAS
...
Рейтинг: 0 / 0
процессинг куба отваливается по таймауту
    #39417819
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и тривиальное предложение конечно : поменяй источник с SQL2000 на что-то поновее (поставив его в тот-же хостинг-шкаф где и SSAS, может даже с прямым 10Gb/100Gb кабелем между серверами)
...
Рейтинг: 0 / 0
процессинг куба отваливается по таймауту
    #39417844
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плохой план запроса из-за устаревшей статистики
...
Рейтинг: 0 / 0
процессинг куба отваливается по таймауту
    #39418063
RioMare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987проблемный запрос выглядит так (его выдает сама студия при процессинге куба в окошке "Process Progress"):
Код: sql
1.
2.
3.
SELECT [тут полтора десятка полей]
  FROM [dbo].[SSFactsAll] AS [dbo_SSFactsAll],[dbo].[MatId_Usage_SecSales] AS [dbo_MatId_Usage_SecSales_4],[dbo].[MatId_Usage_SecSales] AS [dbo_MatId_Usage_SecSales_14],[dbo].[MatId_Usage_SecSales] AS [dbo_MatId_Usage_SecSales_15],[dbo].[t_Clients_SecSales] AS [dbo_t_Clients_SecSales_16]
  WHERE 


Это уже запрос из куба или партиции так разбиты ?
Скольку у вас измерений на основе
Код: sql
1.
 [dbo].[MatId_Usage_SecSales] 

?
Может проще различия [dbo_MatId_Usage_SecSales_ХХ].[MatId] оформить как аттрибут и уже в кубе по нему выбирать информацию ?
...
Рейтинг: 0 / 0
процессинг куба отваливается по таймауту
    #39419262
предлагаю изучить способ процессинга, который я разработал давно:
http://blog.bitimpulse.com/post/2013/12/16/Universal-ETL-средство-для-загрузки-данных-в-ХД-и-обработки-кубов.aspx

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


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