powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / OLTP + OLAP вместе (2 Тб)
25 сообщений из 44, страница 1 из 2
OLTP + OLAP вместе (2 Тб)
    #36129831
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть OLTP база данных на Oracle 10g. Около 2 Тб данных, порядка 10млн новых записей в день с требованием поддерживать минимум 70млн. в качестве пиковой производительности. Прежде чем вставить запись делаем порядка 5-10 запросов на выбор данных.

Теперь бизнес хочет иметь доступ к данным в агрегированом виде, например, отобразить список заказов конкретного клиента удовлетворящих определенному критерию. В текущей реализации с довольно большим количеством индексов запрос может занимать 10-20 секунд. Но иногда оптимизатор Оракла решает сделать full table scan, который занимает порядка 20-30 минут минимум. Пользователь, разумеется, открывает приложение еще и еще и запускает тот же запрос. В результате имеем проблемы с OLTP из-за "неправильных" OLAP запросов.

Какие идеи "приходили в голову":

1) установить Oracle RAC и просто задавить проблему индексами и серверами
2) реплицировать БД онлайн в другую БД (уверен, задержку до 1 минуты мы сможем "продать" бизнесу, но не больше). В качестве другой БД:
а) Oracle
b) Sybase IQ
3) использовать TimesTen, который бы загрузил все "актуальные" данные в память с минимальной задержкой.
4) использовать Data Grids

С точки зрения реализации 1 и 2 выглядят как самые адекватные с точки зрения количества изменений в коде и возможности добиться результата.

Было б интересно услышать ваши соображения и, может быть, узнать об альтернативных вариантах.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36129966
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikkriТеперь бизнес хочет иметь доступ к данным в агрегированом виде, например, отобразить список заказов конкретного клиента удовлетворящих определенному критерию. В текущей реализации с довольно большим количеством индексов запрос может занимать 10-20 секунд. Но иногда оптимизатор Оракла решает сделать full table scan, который занимает порядка 20-30 минут минимум. Пользователь, разумеется, открывает приложение еще и еще и запускает тот же запрос. В результате имеем проблемы с OLTP из-за "неправильных" OLAP запросов.

Какие идеи "приходили в голову":

1) установить Oracle RAC и просто задавить проблему индексами и серверами
2) реплицировать БД онлайн в другую БД (уверен, задержку до 1 минуты мы сможем "продать" бизнесу, но не больше). В качестве другой БД:
а) Oracle
b) Sybase IQ
3) использовать TimesTen, который бы загрузил все "актуальные" данные в память с минимальной задержкой.
4) использовать Data Grids

С точки зрения реализации 1 и 2 выглядят как самые адекватные с точки зрения количества изменений в коде и возможности добиться результата.

Было б интересно услышать ваши соображения и, может быть, узнать об альтернативных вариантах.

Вроде как "список заказов конкретного клиента удовлетворящих определенному критерию." на первый взгляд не выглядит ни как "агрегированный", ни тем более как "OLAP запрос", а просто как выборка. И тогда есть "соображение" посмотреть не может ли помочь, например, секционирование с целью сокращение числа чтения.
Если какие-то запросы "не правильные", то обычно предполагается их замена на "правильные", поскольку их исправление часто достаточно эффуктивный путь и к повышению производительности. Оптимизацию запросов тоже никто не отменял как наипервейшее средство попыток повысить производительность.

Конечно, это всего лишь предположения о том, что моно проверить перед рассмотрением решений предложенных в в перечне. Тем более что они никада не помешают.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36129980
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OLAP запросы - это у вас сейчас ? именно олап/ролап или похожие на олап пускаемые как обычный SQL ? матвью юзаете ?
вообще стандартное решение сейчас продвигаемое ораклом - Hyperion олап сервер в который через ETL грузятся данные. как там с задержкой в минуту нужно смотреть, наверника примерно те же яйца, что и с sybase IQ. RAC же в плане скатывания на фуллскан вам ничем не поможет.

ЗЫ. Data Grids - что за зверь ?
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36130014
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В списке заказов нужно отображать статус, а именно если заказ на 1млн акций, а сейчас поставлено 100 тысяч, нужно отобразить. Т.е. нужно суммировать данные.

Или отобразить в разрезе акций. Т.е. не просто поставки, но и заказы просуммировать.

Или отобразить поставки на конкретный счет клиента.

Вообщем, OLAP, но не аналитический, а скорее операционный. Используется обычный SQL.

В сторону materialized view смотрели, пока не применяем, но, верноятно, стоит.

Технически есть экран поиска где порядка 20 критериев и нужно отобразить заказы с некоторыми агрегатами удовлтеворяющие этим критериям.

P.s. data grids - системы хранения данных, такие как Oracle Coherence.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36130028
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение на основе репликации думаю наиболее оптимальное.
Примерно таким же путем у нас решена эта проблема. (SQL Server, до 12 000 новых записей в секунду в пике, финансовая система). Перед вставкой у нас тоже примерно 5-10 запросов на выбор данных. При этом на подписчик где выполняются различные запросы уходят только ~2% изменений - для различных запросов нужны только они. Если вдруг запустить запросы на OLTP сервере, вместо подписчика - то там вся OLTP активность практически прекратится, сервер будет занят различными другими запросами.
Советую репликацию плюс внимательно поразбираться а какие именно данные нужно реплицировать. С задержками сложно. У нас 30 секунд ограничение, но чтобы выдерживать это ограничение пришлось много менять в репликации данных и вообще в приложениях. Особенно проблема проявляется при массовых изменениях в базе, и нужно искать пути как их избежать. - Например, некоторые данные приложения вносят одновременно и на издатель и на подписчик, а поля таблиц куда вносятся изменения этими приложениями исключены из репликации.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36130178
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну тогда вам сначала нужно поработать над текущей базой, наплодить матвью, адекватно разбить на партишены, прикинуть сколько памяти туда можно напихать и только если это не спасает рассматривать другие варианты. хотя странно, 2Tb, 10М записей в день - и без standby ? если, что сколько времени у вас такое подниматься будет ? если у вас плохо, но работает и так, может оказаться оптимальным обычный стендбай, по которому уже гоняется аналитика.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36130194
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая репликация будет проще? Т.е. стоит ли рассматривать только Oracle -> Oracle или Oracle -> Sybase IQ может быть более интересным вариантом?

PL/SQL стараемся не использовать, так что зависимость от вендора не так велика, как может показаться на первый взгляд.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36130203
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!ну тогда вам сначала нужно поработать над текущей базой, наплодить матвью, адекватно разбить на партишены, прикинуть сколько памяти туда можно напихать и только если это не спасает рассматривать другие варианты. хотя странно, 2Tb, 10М записей в день - и без standby ? если, что сколько времени у вас такое подниматься будет ? если у вас плохо, но работает и так, может оказаться оптимальным обычный стендбай, по которому уже гоняется аналитика.
Есть standby, но он именно standby, чтобы в случае чего можно было поднять быстро.

DBAs вроде как не предлагают памяти доставить, значит, и так достаточно.

А Oracle RAC не поможет, значит?
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36130221
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с Sybase IQ не работал, но читал и слышал что база тормозит при вставках и изменениях - хотя при этом очень хорошо и быстро работает с запросами на чтение. Т.е. могут возникнуть проблемы с временем передачи изменений на подписчик вызванные тормозами Sybase IQ. Поэтому на основе того что знаю - лучше реплицировать на Оракл чем на Sybase IQ, к тому же и репликация получится проще в создании и поддержке.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36130311
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikkriА какая репликация будет проще? Т.е. стоит ли рассматривать только Oracle -> Oracle или Oracle -> Sybase IQ может быть более интересным вариантом?

Обязательно протестируйте, прежде чем переходить на IQ, тщательно протестируйте, на разных режимах. Из Оракла можно выжать очень много, если правильно приготовить. На полном ad-hoc'е он все равно будет отставать от IQ, но не настолько сильно как об этом будут говорить продавцы или как может показаться на первый взгляд.
Если направление запросов можно примерно предугадать, то, думаю, нормальная организация данных (индексы, партиции, мат.вьюхи и даже битмапы (не надо стесняться использовать их на OLPT, иногда их применение вполне опрадано и безболезненно)) решит проблему.

------
Все выше написанное является моим личным мнением.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36130331
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mikkri
Есть standby, но он именно standby, чтобы в случае чего можно было поднять быстро.

ну так чудесно, я бы его и загрузил. стенбай физический или логический ? с задержкой, без?

mikkriА Oracle RAC не поможет, значит?
неа, сторадж же один, он точно так же как и обычная субд упрется в i/o при ненужном никому фулскане.

помоему если задержка стендбая сгодится нужен логический стендбай который не тормозит OLTP и на нем (стендбай) уже партиции и матвью дадут нормальные планы для аналитики.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36130510
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!mikkri
Есть standby, но он именно standby, чтобы в случае чего можно было поднять быстро.

ну так чудесно, я бы его и загрузил. стенбай физический или логический ? с задержкой, без?
Не знаю, наверное, физический, так как физически на другом сервере находится. Я не DBA.
Про задержку не уверен, по идее ее не должно быть в соответствии с нашими требованиями к базе данных.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36131169
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikkri пишет:

> b) Sybase IQ

В IQ нельзя ничего реплицировать (т.е. постоянно пополнять её БД).
В неё надо ЗАЛИВАТЬ. или ДОЗАЛИВАТЬ.

> 3) использовать TimesTen, который бы загрузил все "актуальные" данные в
> память с минимальной задержкой.

А влезут ?


Ну, и может быть, просто строить хранилище данных ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36131290
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> 3) использовать TimesTen, который бы загрузил все "актуальные" данные в
> память с минимальной задержкой.

А влезут ?
Верный вопрос. Легко могут не влезть.

MasterZiv
Ну, и может быть, просто строить хранилище данных ?

Как насчет пользователей, которым нужно "свежие" данные "сейчас"?
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36131294
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. выходит Oracle -> Oracle репликация - самый простой вариант?
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36131300
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikkri
MasterZiv
Ну, и может быть, просто строить хранилище данных ?

Как насчет пользователей, которым нужно "свежие" данные "сейчас"?
Хранилища бывают и real-time :)

mikkriТ.е. выходит Oracle -> Oracle репликация - самый простой вариант?
Мне кажется, у вас еще есть потенцеал для оптимизации текущего решения. Если все же нет, то проще на родных технологиях, как минимум сэкономите на покупке дорогущего CDC для какой-нибудь Informatica.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36131303
herr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle Streams
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36131306
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikkri
Вообщем, OLAP, но не аналитический, а скорее операционный.
OLAP - нечто аналитическое в обычном понимании. Возможно, Вы как-то расширенно его толкуете.
У вас все же выглядят пока запросы просто как оперативные. Олап все же када юзер может с помощью сам строить запросы (с помощью мастеров, и крутить полученные представления всяко кликанием мышки как правило) к обощенным данные (т.е. это уже вовсе не такой уж большой объем как правило, например Йексель служит прогой для работы с этими данными) и крутить их таким образом по разному по разному, чтобы оперативно анализировать.


Репликация связана все же с распределенными БД: применение ее для повышения производительности может выглядеть без дополнительных сведений как применение не по назначению. Реальный кластер как бы задумывался для горизонтального масштабирования. Это как бы ближе. Но все же луче быть уверенными, что другте средства Оракла использованы на 100 процентов.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36131376
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo, у меня 3 куба на тестовом крутится , слон пока тянет.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36131404
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mikkri
Верный вопрос. Легко могут не влезть.
а действительно, 2Тб ведь могут и не влезть, ну а если бы влезли ууу как OLAP в TimesTen бы залетал ...
слушайте, а мне этот mikkri определенно нравится. смотрите как лихо он прикидывает как запихнуть 2Тб в инмемори субд, не докупить ли на пару мульенов лицензий поставив всю систему РАКом или тупо зареплицировать 70 млн транзакций в день. ну фигня, что слегка путает OLAP с SQL и в нюансах стендбая (сказал же, что не дба), зато какой масштаб, какой полет мысли ! большая начальника детектед
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36132303
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!mikkri
Верный вопрос. Легко могут не влезть.
а действительно, 2Тб ведь могут и не влезть, ну а если бы влезли ууу как OLAP в TimesTen бы залетал ...
слушайте, а мне этот mikkri определенно нравится. смотрите как лихо он прикидывает как запихнуть 2Тб в инмемори субд, не докупить ли на пару мульенов лицензий поставив всю систему РАКом или тупо зареплицировать 70 млн транзакций в день. ну фигня, что слегка путает OLAP с SQL и в нюансах стендбая (сказал же, что не дба), зато какой масштаб, какой полет мысли ! большая начальника детектед
100-200 Гб в память помещаются если захотеть. Только не вполне понятно, как выбрать нужные из всего объема данных, но, думаю, достижимо при нужном количестве усилий.

Лицензия на РАК у нас вроде как уже есть, т.е. не проблема.

Собственно, ради таких товарищей, как вы, сюда вопрос и вынес. Наши DBA не хотят рисковать своей репутацией, предлагая какие-либо решения для наших проблем. А нанять каких-нибудь консультантов вряд ли будет много толку.

P.s. Ораклу очень понравилась идея продать нам TimesTen, уже готовы командировать ответственного товарища к нам для демонстрации. Вот только стоит ли?..
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36132573
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чего-то у меня картинка ну ни как не складывается - есть рак, есть дба и при этом база в 2Тб без партитионинга и матвью, но с аналитическими запросами. мне искренни не понятно, чем же тогда дба занимаются ?
по таймтенс - напоминает борьбу с поносом путем ограничения доступа к туалету. у вас проблема аналитики и и/о по терабайтам, вместо того, чтоб решать проблему лишнего и/о вы выпихиваете ничего не решающий кусочек бд в инмемори субд. ну даже если все 2Тб выпихните в таймтенс, чем оно поможет на аналитических запросах ? ничем не поможет, а более вероятно издохнет на трехэтажных, т.к. задача инмемори субд - OLTP нагрузка, с которым у вас вроде и оракл справляется, если не мешать фулсканами по терабайтам.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36132694
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBA занимаются операционными вопросами - делают бэкап, следят за тем, чтобы в случае выхода сервера из строя был запасной, патчи опять же устанавливают. А вот архитектурными вопросами заниматься не хотят. Т.е. партиции, к примеру, у нас есть, но мы сами придумываем, как их создать, хотя, на мой взгляд, это должна быть работа DBA.

Для полноценной аналитики есть Sybase БД, но там синхронизация с задержкой до суток.

Один из подходов - денормализация. Т.е. можно досоздать таблиц где хранить результаты определенных функций, начиная с суммы и заканчивая более сложными вычислениями, такими как вычисление статуса транзакции.
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36132732
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikkri пишет:

> Как насчет пользователей, которым нужно "свежие" данные "сейчас"?

Так очень просто ! По кнопке "Запустить запрос" сначала ждёшь
пол-часа, пока свежие данные подтянутся, потом -- вжик -- запрос
за 5 секунд выполняеш, и выдаёш результат.

Потом, как будут морщиться, сделай вторую кнопку, "запустить
запрос быстро, но с немного устаревшими данными".

Ну, и сам подумай, какую кнопку они давить будут чаще :-)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
OLTP + OLAP вместе (2 Тб)
    #36132746
mikkri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Ну, и сам подумай, какую кнопку они давить будут чаще :-)

Думаю, телефонную.

А подход вполне жизненный, спасибо за помощь.
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / OLTP + OLAP вместе (2 Тб)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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