Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
Есть 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 выглядят как самые адекватные с точки зрения количества изменений в коде и возможности добиться результата.

Было б интересно услышать ваши соображения и, может быть, узнать об альтернативных вариантах.
6 авг 09, 13:19    [7505457]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
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 запрос", а просто как выборка. И тогда есть "соображение" посмотреть не может ли помочь, например, секционирование с целью сокращение числа чтения.
Если какие-то запросы "не правильные", то обычно предполагается их замена на "правильные", поскольку их исправление часто достаточно эффуктивный путь и к повышению производительности. Оптимизацию запросов тоже никто не отменял как наипервейшее средство попыток повысить производительность.

Конечно, это всего лишь предположения о том, что моно проверить перед рассмотрением решений предложенных в в перечне. Тем более что они никада не помешают.
6 авг 09, 13:53    [7505752]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
Yo.!
Guest
OLAP запросы - это у вас сейчас ? именно олап/ролап или похожие на олап пускаемые как обычный SQL ? матвью юзаете ?
вообще стандартное решение сейчас продвигаемое ораклом - Hyperion олап сервер в который через ETL грузятся данные. как там с задержкой в минуту нужно смотреть, наверника примерно те же яйца, что и с sybase IQ. RAC же в плане скатывания на фуллскан вам ничем не поможет.

ЗЫ. Data Grids - что за зверь ?
6 авг 09, 13:56    [7505789]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
В списке заказов нужно отображать статус, а именно если заказ на 1млн акций, а сейчас поставлено 100 тысяч, нужно отобразить. Т.е. нужно суммировать данные.

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

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

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

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

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

P.s. data grids - системы хранения данных, такие как Oracle Coherence.
6 авг 09, 14:06    [7505876]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
andsm
Member

Откуда: Москва
Сообщений: 1320
Блог
Решение на основе репликации думаю наиболее оптимальное.
Примерно таким же путем у нас решена эта проблема. (SQL Server, до 12 000 новых записей в секунду в пике, финансовая система). Перед вставкой у нас тоже примерно 5-10 запросов на выбор данных. При этом на подписчик где выполняются различные запросы уходят только ~2% изменений - для различных запросов нужны только они. Если вдруг запустить запросы на OLTP сервере, вместо подписчика - то там вся OLTP активность практически прекратится, сервер будет занят различными другими запросами.
Советую репликацию плюс внимательно поразбираться а какие именно данные нужно реплицировать. С задержками сложно. У нас 30 секунд ограничение, но чтобы выдерживать это ограничение пришлось много менять в репликации данных и вообще в приложениях. Особенно проблема проявляется при массовых изменениях в базе, и нужно искать пути как их избежать. - Например, некоторые данные приложения вносят одновременно и на издатель и на подписчик, а поля таблиц куда вносятся изменения этими приложениями исключены из репликации.
6 авг 09, 14:10    [7505903]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
Yo.!
Guest
ну тогда вам сначала нужно поработать над текущей базой, наплодить матвью, адекватно разбить на партишены, прикинуть сколько памяти туда можно напихать и только если это не спасает рассматривать другие варианты. хотя странно, 2Tb, 10М записей в день - и без standby ? если, что сколько времени у вас такое подниматься будет ? если у вас плохо, но работает и так, может оказаться оптимальным обычный стендбай, по которому уже гоняется аналитика.
6 авг 09, 14:45    [7506240]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
А какая репликация будет проще? Т.е. стоит ли рассматривать только Oracle -> Oracle или Oracle -> Sybase IQ может быть более интересным вариантом?

PL/SQL стараемся не использовать, так что зависимость от вендора не так велика, как может показаться на первый взгляд.
6 авг 09, 14:50    [7506274]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
Yo.!
ну тогда вам сначала нужно поработать над текущей базой, наплодить матвью, адекватно разбить на партишены, прикинуть сколько памяти туда можно напихать и только если это не спасает рассматривать другие варианты. хотя странно, 2Tb, 10М записей в день - и без standby ? если, что сколько времени у вас такое подниматься будет ? если у вас плохо, но работает и так, может оказаться оптимальным обычный стендбай, по которому уже гоняется аналитика.

Есть standby, но он именно standby, чтобы в случае чего можно было поднять быстро.

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

А Oracle RAC не поможет, значит?
6 авг 09, 14:53    [7506292]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
andsm
Member

Откуда: Москва
Сообщений: 1320
Блог
Я с Sybase IQ не работал, но читал и слышал что база тормозит при вставках и изменениях - хотя при этом очень хорошо и быстро работает с запросами на чтение. Т.е. могут возникнуть проблемы с временем передачи изменений на подписчик вызванные тормозами Sybase IQ. Поэтому на основе того что знаю - лучше реплицировать на Оракл чем на Sybase IQ, к тому же и репликация получится проще в создании и поддержке.
6 авг 09, 14:58    [7506318]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3910
mikkri
А какая репликация будет проще? Т.е. стоит ли рассматривать только Oracle -> Oracle или Oracle -> Sybase IQ может быть более интересным вариантом?

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

------
Все выше написанное является моим личным мнением.
6 авг 09, 15:22    [7506490]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
Yo.!
Guest
mikkri

Есть standby, но он именно standby, чтобы в случае чего можно было поднять быстро.


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

mikkri
А Oracle RAC не поможет, значит?

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

помоему если задержка стендбая сгодится нужен логический стендбай который не тормозит OLTP и на нем (стендбай) уже партиции и матвью дадут нормальные планы для аналитики.
6 авг 09, 15:27    [7506534]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
Yo.!
mikkri

Есть standby, но он именно standby, чтобы в случае чего можно было поднять быстро.


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

Не знаю, наверное, физический, так как физически на другом сервере находится. Я не DBA.
Про задержку не уверен, по идее ее не должно быть в соответствии с нашими требованиями к базе данных.
6 авг 09, 16:10    [7506850]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

mikkri пишет:

> b) Sybase IQ

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

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

А влезут ?


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

Posted via ActualForum NNTP Server 1.4

6 авг 09, 19:48    [7507978]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
MasterZiv

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

А влезут ?

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

MasterZiv

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

Как насчет пользователей, которым нужно "свежие" данные "сейчас"?
6 авг 09, 21:55    [7508226]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
Т.е. выходит Oracle -> Oracle репликация - самый простой вариант?
6 авг 09, 21:55    [7508231]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3910
mikkri

MasterZiv

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

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

Хранилища бывают и real-time :)

mikkri
Т.е. выходит Oracle -> Oracle репликация - самый простой вариант?

Мне кажется, у вас еще есть потенцеал для оптимизации текущего решения. Если все же нет, то проще на родных технологиях, как минимум сэкономите на покупке дорогущего CDC для какой-нибудь Informatica.
6 авг 09, 22:02    [7508244]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
herr
Member

Откуда:
Сообщений: 163
Oracle Streams
6 авг 09, 22:05    [7508249]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
mikkri

Вообщем, OLAP, но не аналитический, а скорее операционный.

OLAP - нечто аналитическое в обычном понимании. Возможно, Вы как-то расширенно его толкуете.
У вас все же выглядят пока запросы просто как оперативные. Олап все же када юзер может с помощью сам строить запросы (с помощью мастеров, и крутить полученные представления всяко кликанием мышки как правило) к обощенным данные (т.е. это уже вовсе не такой уж большой объем как правило, например Йексель служит прогой для работы с этими данными) и крутить их таким образом по разному по разному, чтобы оперативно анализировать.


Репликация связана все же с распределенными БД: применение ее для повышения производительности может выглядеть без дополнительных сведений как применение не по назначению. Реальный кластер как бы задумывался для горизонтального масштабирования. Это как бы ближе. Но все же луче быть уверенными, что другте средства Оракла использованы на 100 процентов.
6 авг 09, 22:07    [7508256]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
ОКТОГЕН
Member

Откуда:
Сообщений: 2496
vadiminfo, у меня 3 куба на тестовом крутится , слон пока тянет.
6 авг 09, 23:52    [7508582]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
Yo.!
Guest
mikkri

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

а действительно, 2Тб ведь могут и не влезть, ну а если бы влезли ууу как OLAP в TimesTen бы залетал ...
слушайте, а мне этот mikkri определенно нравится. смотрите как лихо он прикидывает как запихнуть 2Тб в инмемори субд, не докупить ли на пару мульенов лицензий поставив всю систему РАКом или тупо зареплицировать 70 млн транзакций в день. ну фигня, что слегка путает OLAP с SQL и в нюансах стендбая (сказал же, что не дба), зато какой масштаб, какой полет мысли ! большая начальника детектед
7 авг 09, 01:56    [7508782]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
Yo.!
mikkri

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

а действительно, 2Тб ведь могут и не влезть, ну а если бы влезли ууу как OLAP в TimesTen бы залетал ...
слушайте, а мне этот mikkri определенно нравится. смотрите как лихо он прикидывает как запихнуть 2Тб в инмемори субд, не докупить ли на пару мульенов лицензий поставив всю систему РАКом или тупо зареплицировать 70 млн транзакций в день. ну фигня, что слегка путает OLAP с SQL и в нюансах стендбая (сказал же, что не дба), зато какой масштаб, какой полет мысли ! большая начальника детектед

100-200 Гб в память помещаются если захотеть. Только не вполне понятно, как выбрать нужные из всего объема данных, но, думаю, достижимо при нужном количестве усилий.

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

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

P.s. Ораклу очень понравилась идея продать нам TimesTen, уже готовы командировать ответственного товарища к нам для демонстрации. Вот только стоит ли?..
7 авг 09, 13:25    [7510894]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
Yo.!
Guest
чего-то у меня картинка ну ни как не складывается - есть рак, есть дба и при этом база в 2Тб без партитионинга и матвью, но с аналитическими запросами. мне искренни не понятно, чем же тогда дба занимаются ?
по таймтенс - напоминает борьбу с поносом путем ограничения доступа к туалету. у вас проблема аналитики и и/о по терабайтам, вместо того, чтоб решать проблему лишнего и/о вы выпихиваете ничего не решающий кусочек бд в инмемори субд. ну даже если все 2Тб выпихните в таймтенс, чем оно поможет на аналитических запросах ? ничем не поможет, а более вероятно издохнет на трехэтажных, т.к. задача инмемори субд - OLTP нагрузка, с которым у вас вроде и оракл справляется, если не мешать фулсканами по терабайтам.
7 авг 09, 15:08    [7511509]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
DBA занимаются операционными вопросами - делают бэкап, следят за тем, чтобы в случае выхода сервера из строя был запасной, патчи опять же устанавливают. А вот архитектурными вопросами заниматься не хотят. Т.е. партиции, к примеру, у нас есть, но мы сами придумываем, как их создать, хотя, на мой взгляд, это должна быть работа DBA.

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

Один из подходов - денормализация. Т.е. можно досоздать таблиц где хранить результаты определенных функций, начиная с суммы и заканчивая более сложными вычислениями, такими как вычисление статуса транзакции.
7 авг 09, 16:00    [7511837]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

mikkri пишет:

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

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

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

Ну, и сам подумай, какую кнопку они давить будут чаще :-)

Posted via ActualForum NNTP Server 1.4

7 авг 09, 16:18    [7511976]     Ответить | Цитировать Сообщить модератору
 Re: OLTP + OLAP вместе (2 Тб)  [new]
mikkri
Member

Откуда: Лондон, Англия
Сообщений: 2794
MasterZiv

Ну, и сам подумай, какую кнопку они давить будут чаще :-)

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

А подход вполне жизненный, спасибо за помощь.
7 авг 09, 16:24    [7512029]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить