Текущее время: Вс, сен 07 2025, 19:27

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Динамическое деление данных по пакетам UPDATE ODS
СообщениеДобавлено: Вт, ноя 29 2005, 09:28 
Гость
Помогите пожалуйста решить проблему.
Проблема в следующем - при погрузке данных допустим из одного ODS в другой ODS (1 млн. записей) система SAP BW динамически разбивает данные на пакеты по каким-то своим соображениям и грузит каждый пакет отдельно. Как быть если необходимо загружать данные одним пакетом, например для расчета в правилах обновления средневзвешанных величин понадобиться сначала сложить все записи по нужным ключам, а потом найти средние величины и только потом загрузить. Все эти моменты решаются в правилах обновления на ABAP, но из-за того что система делит данные на пакеты при погрузке - беруться не все записи для расчета средневзвешанных, а часть данных одного пакета.
Кто сталкивался с этим и знает как заставить данные грузиться одним пакетом в ODS ? Либо как объединить эти пакеты в один в подпрограмме запуска или еще где-нибудь.
Существует-ли какая-нибудь переменная в правилах обновления где возвращается число пакетов ? Типа RECORD_NO, RECORD_ALL для записей. Готов выслушать любые советы по этому вопросу.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 29 2005, 09:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
Объединение в один пакет 1 млн записей? да у вас система раком встанет ....

Не проще ли в стартапе сделать чтение данных из ods ( только тех которые нужны для расчета средневзвешенной для данных в конкретном пакете) и потом уже в правилах использовать считанные данные?

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: что подразумевается под стартап
СообщениеДобавлено: Вт, ноя 29 2005, 13:14 
Гость
Вопрос к BW-шнику.
Что подразумевается под стартап.
Программа запуска в правилах обновления ?
В настоящее время пытаемся решить проблему в правилах обновления в таблицах возврата - считыванием SELECT всех данных из таблицы активных данных ODS во внутреннюю таблицу и дальше работаем циклом по внутренней таблице. Таким образом теперь не привязаны к делению данных по пакетам и COMM_STRUCTURE в приципе.
Если я все таки угадал про программу запуска, что там должно реализовываться согласно вашего плана.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: что подразумевается под стартап
СообщениеДобавлено: Вт, ноя 29 2005, 13:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
Эксперт написал(а):
Вопрос к BW-шнику.
Что подразумевается под стартап.
Программа запуска в правилах обновления ?
В настоящее время пытаемся решить проблему в правилах обновления в таблицах возврата - считыванием SELECT всех данных из таблицы активных данных ODS во внутреннюю таблицу и дальше работаем циклом по внутренней таблице. Таким образом теперь не привязаны к делению данных по пакетам и COMM_STRUCTURE в приципе.
Если я все таки угадал про программу запуска, что там должно реализовываться согласно вашего плана.


Эй, эй. вы там без фанатизма...

стратап - это подпрограмма запуска. Выполняется ОДИН раз на пакет. В ней считайте данные из ods ( только не селектами, а c помощью ФМ RSDRI_INFOPROV_READ) во внутреннюю таблицу. А в собсвтенно в правилах читайте данные из этой внутренней таблицы. А то по вашему получается, что вы на КАЖДУЮ запись будете выполнять селекты - у вас все равно база раком встанет - вы прикинте - выполнить миллион селектов! это ж застрелиться можно!

Кстати, дял таких случаев рекомендую почитать курс 360 - оптимизация. В нем все здорово расписано, что и как надо и не надо делать...

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: спасибо за советы
СообщениеДобавлено: Вт, ноя 29 2005, 16:10 
Гость
Спасибо за советы BW-шник.
Может-быть направите как вызвать или объявить функциональный модуль в программе запуска. Раньше не работал с ФМ.
Кстати по поводу миллиона SELECT - если поставить условие перед селектом IF RECORD_NO = RECORD_ALL то селект будет выполняться столько раз, на сколько пакетов поделяться записи при погрузке в ODS - а это уже разы, а не миллионы раз.

Может подскажете как заставить выполняться только один пакет, а остальные нет. Где-то есть счетчик этих пакетов во время обновления ? Или как корректно завершить обновление в определенном месте программы с зеленым статусом запроса.

И последний вопрос - кто сталкивался с таким - почему в правилах обновления работает только построчный SELECT - конструкция:
SELECT * from Активная таблица.
.................
ENDSELECT.
А одной операцией не выходит:
SELECT * FROM Активная таблица into Внутренняя таблица.
Последний код работал-бы намного быстрее.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: проблему решили, но можно лучше - уверен
СообщениеДобавлено: Пт, дек 02 2005, 13:24 
Гость
Проблему решили. Создали инфо-источник для плоского файла. Загружаем одну запись. В подпрограмме запуска считываем из ODS где лежит 1 млн. записей.
SELECT * FROM Активная таблица into table Внутренняя таблица.
И делаем все необходимые операции. Потом в таблице возврата для каждого поля данных считываем из конечной внутренней таблицы в RESULT_TABLE в конечный ODS.
Если кто знает как оптимизировать процесс - напишите.
При обновлении из одного ODS в Другой возникает вопрос, как заставить выполняться SELECT один раз, а не количество раз = количеству динамических пакетов.
В частности как узнать в подпрограмме запуска (откуда можно считать) количество пакетов данных.
Либо как применить ФМ в подпрограмме запуска о котором написал BW-шник.


Принять этот ответ
Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB