Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / почему ProcessFull и ProcessUpdate работают примерно одинаковое время ? / 9 сообщений из 9, страница 1 из 1
12.02.2020, 22:33
    #39926031
rawman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему ProcessFull и ProcessUpdate работают примерно одинаковое время ?
есть DWH в 500Гб, проблема обновления стоит остро, хочется обновлять данные несколько раз в день, сделал 2 скрипта для обновления с ProcessFull и ProcessUpdate, смутило то что по времени они работают примерно одинаково. отчего так ?

кусок скрипта ProcessFull:
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
	<ErrorConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
		<KeyErrorLimit>-1</KeyErrorLimit>
		<KeyErrorLogFile>C:\Temp\ProcessFull_err.log</KeyErrorLogFile>
		<KeyDuplicate>ReportAndContinue</KeyDuplicate>
		<NullKeyConvertedToUnknown>ReportAndContinue</NullKeyConvertedToUnknown>
	</ErrorConfiguration>
	<Parallel>
		<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
			<Object>
				<DatabaseID>TT</DatabaseID>
				<DimensionID>Время</DimensionID>
			</Object>
			<Type>ProcessFull</Type>
			<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
		</Process>
		<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
			<Object>
				<DatabaseID>TT</DatabaseID>
				<DimensionID>Филиалы</DimensionID>
			</Object>
			<Type>ProcessFull</Type>
			<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
		</Process>
		<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			<Object>
				<DatabaseID>TT</DatabaseID>
				<CubeID>DWH Cube View</CubeID>
				<MeasureGroupID>Продажи</MeasureGroupID>
				<PartitionID>Продажи</PartitionID>
			</Object>
			<Type>ProcessFull</Type>
			<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
		</Process>
	</Parallel>
</Batch>



по аналогии ProcessUpdate:
Код: 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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
	<ErrorConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
		<KeyErrorLimit>-1</KeyErrorLimit>
		<KeyErrorLogFile>C:\Temp\ProcessFull_err.log</KeyErrorLogFile>
		<KeyDuplicate>ReportAndContinue</KeyDuplicate>
		<NullKeyConvertedToUnknown>ReportAndContinue</NullKeyConvertedToUnknown>
	</ErrorConfiguration>
	<Parallel>
		<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
			<Object>
				<DatabaseID>TT</DatabaseID>
				<DimensionID>Время</DimensionID>
			</Object>
			<Type>ProcessUpdate</Type>
			<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
		</Process>
		<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
			<Object>
				<DatabaseID>TT</DatabaseID>
				<DimensionID>Филиалы</DimensionID>
			</Object>
			<Type>ProcessUpdate</Type>
			<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
		</Process>
		<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			<Object>
				<DatabaseID>TT</DatabaseID>
				<CubeID>DWH Cube View</CubeID>
				<MeasureGroupID>Продажи</MeasureGroupID>
				<PartitionID>Продажи</PartitionID>
			</Object>
			<Type>ProcessAdd</Type>
			<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
		</Process>
	</Parallel>
</Batch>
...
Рейтинг: 0 / 0
12.02.2020, 23:42
    #39926052
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему ProcessFull и ProcessUpdate работают примерно одинаковое время ?
rawman,

гадаю на кофейной гуще, хоть час для кофе уже не тот...
исходя из того, что ProcessUpdate значительно медленнее чем ProcessFull для измерений, а ProcessAdd значительно быстрее ProcessFull для групп мер, то для первого случая распределение во времени будет 10%+10%+80%, для второго 30%+30%+40%
и как результат 100%=100%
о-па и мы в дамках!

уважаемый, откуда-ж мы знаем вашу кухню.. но есть подозрение, что оба варианта перелопачивают одинаковый объем данных с примерными вышеуказанными распределениями.
...
Рейтинг: 0 / 0
13.02.2020, 01:04
    #39926065
rawman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему ProcessFull и ProcessUpdate работают примерно одинаковое время ?
ShIgor,

я тоже об этом подумал что оба варианта перелопачивают одинаковый объем данных.
вопрос почему ?
ведь в первом случае ProcessFull, а во втором ProcessUpdate. по моей логике ProcessUpdate должен обрабатывать только изменения. или я не прав ?

как проверить что оба варианта перелопачивают одинаковый объем данных ?
...
Рейтинг: 0 / 0
13.02.2020, 01:50
    #39926070
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему ProcessFull и ProcessUpdate работают примерно одинаковое время ?
rawman,

в логах все должно быть написано.
к тому же Вы привели примеры, что обрабатываете MG (Full или Add не важно). Источник данных Вы не меняете и не указываете никак.
значит для загрузки используется один и тот же источник (таблица, представление или именованный запрос). Ну и прочитано будет соответственно все снова..
Чтоб ProcessAdd сработал SSAS должен про это как-то узнать. это все отлично описано здесь
...
Рейтинг: 0 / 0
13.02.2020, 08:24
    #39926095
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему ProcessFull и ProcessUpdate работают примерно одинаковое время ?
rawman,

Если Вам надо обновлять данные несколько раз в день, то тут вопрос стоит не в скриптах обновления, а в написании правильного ETL, в партиционировании, как исходных данных, так и куба, в правильном применении инкремента к данным, в отслеживании что изменилось и что надо обновлять.

И это не та задача, которая решается путем обновление нескольких скриптов. Вам надо хранилище правильно передизайнить, чтобы инкрименталдьное обновление было возможно.
...
Рейтинг: 0 / 0
13.02.2020, 09:39
    #39926109
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему ProcessFull и ProcessUpdate работают примерно одинаковое время ?
a_voronin,

все зависит от вообще наличия DWH.. у меня был проект на сопровождении у которого вообще слой Stage был представлен вьюхами.. какой смысл городить огород, если данных с гулькин нос и нужны они только 1 раз?
...
Рейтинг: 0 / 0
13.02.2020, 13:33
    #39926235
StarikNavy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему ProcessFull и ProcessUpdate работают примерно одинаковое время ?
rawman
есть DWH в 500Гб, проблема обновления стоит остро, хочется обновлять данные несколько раз в день,


pазбейте данные на партиции ("архив" + "последний день") , и обновляйте только последнюю

rawman
о моей логике ProcessUpdate должен обрабатывать только изменения

а в базе у вас есть магический признак "измненено" ? :)
...
Рейтинг: 0 / 0
13.02.2020, 23:42
    #39926498
rawman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему ProcessFull и ProcessUpdate работают примерно одинаковое время ?
StarikNavy,

везде есть дата, по ней разве нельзя отслеживать изменения ?
...
Рейтинг: 0 / 0
14.02.2020, 10:25
    #39926581
Ferdipux
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему ProcessFull и ProcessUpdate работают примерно одинаковое время ?
rawman,

Для этого вы должны "объяснить" SSAS что это за дата - дата последнего изменения, и т.п.
Стандартный механизм считывает данные измерений и вычисляет контрольные суммы для записей, если они отличаются - считает запись измененной. Далее - SSAS обновляет измерение и инвалидирует индексы и агрегаты групп мер, куда входит данное измерение. Или - делает Process Index для этих групп мер, если указана опция Process Affected Objects.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / почему ProcessFull и ProcessUpdate работают примерно одинаковое время ? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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