Проблема производительности ETL - PullRequest
0 голосов
/ 11 августа 2010

У меня есть важная проблема при запуске ETL Process в производственной среде.В то время как мой ETL работает, сервер OLAP вращается чрезвычайно медленно, я думаю, это потому, что ETL обновляет несколько существующих строк в таблице фактов и добавляет новые.Я пытался избежать этой проблемы, имея репликацию всей базы данных и запись ETL в DB1 и чтение OLAP-сервера из DB2 (реплицированные).Это не работает вообще.

Можете ли вы дать мне несколько советов, которые указывают мне правильные решения, чтобы избежать этой проблемы.

Я использую SQL Server 2005. 8 ГБ ОЗУ Mondrian OLAP Server в сервер Jboss.8 ГБ ОЗУ.ETL работает каждые 3 часа и 2 часа.

Буду признателен за любую помощь.

1 Ответ

2 голосов
/ 11 августа 2010

Сделайте так, чтобы ETL запустил свой процесс в новую таблицу, затем используйте ALTER TABLE ... SWITCH PARTITION, чтобы переключить новые данные в таблицу Facts. См. Эффективная передача данных с помощью переключения разделов . Я также хотел бы вернуться к самому ETL, учитывая, что он может импортировать около 2 ТБ / час с хорошо настроенным процессом ETL, вы, вероятно, можете немного повысить производительность самостоятельно, я сомневаюсь, что вы импортируете 4 ТБ каждые 3 часа ...

Что касается идеи использования репликации для облегчения проблем с загрузкой, все, что я могу сказать, это: репликация всегда будет добавлять к нагрузке, поскольку сам процесс репликации стоит довольно дорого , Каждая вставка, обновление, удаление на издателе также является вставкой, обновлением или удалением на подписчике, и есть дополнительные накладные расходы на обнаружение изменений на издателе, накладные расходы на распространение и применение изменений на подписчике ... просто добавляется, ничего не вычитать.

...