|
|
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
Есть 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 выглядят как самые адекватные с точки зрения количества изменений в коде и возможности добиться результата. Было б интересно услышать ваши соображения и, может быть, узнать об альтернативных вариантах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 13:19 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
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 запрос", а просто как выборка. И тогда есть "соображение" посмотреть не может ли помочь, например, секционирование с целью сокращение числа чтения. Если какие-то запросы "не правильные", то обычно предполагается их замена на "правильные", поскольку их исправление часто достаточно эффуктивный путь и к повышению производительности. Оптимизацию запросов тоже никто не отменял как наипервейшее средство попыток повысить производительность. Конечно, это всего лишь предположения о том, что моно проверить перед рассмотрением решений предложенных в в перечне. Тем более что они никада не помешают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 13:53 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
OLAP запросы - это у вас сейчас ? именно олап/ролап или похожие на олап пускаемые как обычный SQL ? матвью юзаете ? вообще стандартное решение сейчас продвигаемое ораклом - Hyperion олап сервер в который через ETL грузятся данные. как там с задержкой в минуту нужно смотреть, наверника примерно те же яйца, что и с sybase IQ. RAC же в плане скатывания на фуллскан вам ничем не поможет. ЗЫ. Data Grids - что за зверь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 13:56 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
В списке заказов нужно отображать статус, а именно если заказ на 1млн акций, а сейчас поставлено 100 тысяч, нужно отобразить. Т.е. нужно суммировать данные. Или отобразить в разрезе акций. Т.е. не просто поставки, но и заказы просуммировать. Или отобразить поставки на конкретный счет клиента. Вообщем, OLAP, но не аналитический, а скорее операционный. Используется обычный SQL. В сторону materialized view смотрели, пока не применяем, но, верноятно, стоит. Технически есть экран поиска где порядка 20 критериев и нужно отобразить заказы с некоторыми агрегатами удовлтеворяющие этим критериям. P.s. data grids - системы хранения данных, такие как Oracle Coherence. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 14:06 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
Решение на основе репликации думаю наиболее оптимальное. Примерно таким же путем у нас решена эта проблема. (SQL Server, до 12 000 новых записей в секунду в пике, финансовая система). Перед вставкой у нас тоже примерно 5-10 запросов на выбор данных. При этом на подписчик где выполняются различные запросы уходят только ~2% изменений - для различных запросов нужны только они. Если вдруг запустить запросы на OLTP сервере, вместо подписчика - то там вся OLTP активность практически прекратится, сервер будет занят различными другими запросами. Советую репликацию плюс внимательно поразбираться а какие именно данные нужно реплицировать. С задержками сложно. У нас 30 секунд ограничение, но чтобы выдерживать это ограничение пришлось много менять в репликации данных и вообще в приложениях. Особенно проблема проявляется при массовых изменениях в базе, и нужно искать пути как их избежать. - Например, некоторые данные приложения вносят одновременно и на издатель и на подписчик, а поля таблиц куда вносятся изменения этими приложениями исключены из репликации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 14:10 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
ну тогда вам сначала нужно поработать над текущей базой, наплодить матвью, адекватно разбить на партишены, прикинуть сколько памяти туда можно напихать и только если это не спасает рассматривать другие варианты. хотя странно, 2Tb, 10М записей в день - и без standby ? если, что сколько времени у вас такое подниматься будет ? если у вас плохо, но работает и так, может оказаться оптимальным обычный стендбай, по которому уже гоняется аналитика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 14:45 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
А какая репликация будет проще? Т.е. стоит ли рассматривать только Oracle -> Oracle или Oracle -> Sybase IQ может быть более интересным вариантом? PL/SQL стараемся не использовать, так что зависимость от вендора не так велика, как может показаться на первый взгляд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 14:50 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
Yo.!ну тогда вам сначала нужно поработать над текущей базой, наплодить матвью, адекватно разбить на партишены, прикинуть сколько памяти туда можно напихать и только если это не спасает рассматривать другие варианты. хотя странно, 2Tb, 10М записей в день - и без standby ? если, что сколько времени у вас такое подниматься будет ? если у вас плохо, но работает и так, может оказаться оптимальным обычный стендбай, по которому уже гоняется аналитика. Есть standby, но он именно standby, чтобы в случае чего можно было поднять быстро. DBAs вроде как не предлагают памяти доставить, значит, и так достаточно. А Oracle RAC не поможет, значит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 14:53 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
Я с Sybase IQ не работал, но читал и слышал что база тормозит при вставках и изменениях - хотя при этом очень хорошо и быстро работает с запросами на чтение. Т.е. могут возникнуть проблемы с временем передачи изменений на подписчик вызванные тормозами Sybase IQ. Поэтому на основе того что знаю - лучше реплицировать на Оракл чем на Sybase IQ, к тому же и репликация получится проще в создании и поддержке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 14:58 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
mikkriА какая репликация будет проще? Т.е. стоит ли рассматривать только Oracle -> Oracle или Oracle -> Sybase IQ может быть более интересным вариантом? Обязательно протестируйте, прежде чем переходить на IQ, тщательно протестируйте, на разных режимах. Из Оракла можно выжать очень много, если правильно приготовить. На полном ad-hoc'е он все равно будет отставать от IQ, но не настолько сильно как об этом будут говорить продавцы или как может показаться на первый взгляд. Если направление запросов можно примерно предугадать, то, думаю, нормальная организация данных (индексы, партиции, мат.вьюхи и даже битмапы (не надо стесняться использовать их на OLPT, иногда их применение вполне опрадано и безболезненно)) решит проблему. ------ Все выше написанное является моим личным мнением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 15:22 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
mikkri Есть standby, но он именно standby, чтобы в случае чего можно было поднять быстро. ну так чудесно, я бы его и загрузил. стенбай физический или логический ? с задержкой, без? mikkriА Oracle RAC не поможет, значит? неа, сторадж же один, он точно так же как и обычная субд упрется в i/o при ненужном никому фулскане. помоему если задержка стендбая сгодится нужен логический стендбай который не тормозит OLTP и на нем (стендбай) уже партиции и матвью дадут нормальные планы для аналитики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 15:27 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
Yo.!mikkri Есть standby, но он именно standby, чтобы в случае чего можно было поднять быстро. ну так чудесно, я бы его и загрузил. стенбай физический или логический ? с задержкой, без? Не знаю, наверное, физический, так как физически на другом сервере находится. Я не DBA. Про задержку не уверен, по идее ее не должно быть в соответствии с нашими требованиями к базе данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 16:10 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
mikkri пишет: > b) Sybase IQ В IQ нельзя ничего реплицировать (т.е. постоянно пополнять её БД). В неё надо ЗАЛИВАТЬ. или ДОЗАЛИВАТЬ. > 3) использовать TimesTen, который бы загрузил все "актуальные" данные в > память с минимальной задержкой. А влезут ? Ну, и может быть, просто строить хранилище данных ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 19:48 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
MasterZiv > 3) использовать TimesTen, который бы загрузил все "актуальные" данные в > память с минимальной задержкой. А влезут ? Верный вопрос. Легко могут не влезть. MasterZiv Ну, и может быть, просто строить хранилище данных ? Как насчет пользователей, которым нужно "свежие" данные "сейчас"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 21:55 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
Т.е. выходит Oracle -> Oracle репликация - самый простой вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 21:55 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
mikkri MasterZiv Ну, и может быть, просто строить хранилище данных ? Как насчет пользователей, которым нужно "свежие" данные "сейчас"? Хранилища бывают и real-time :) mikkriТ.е. выходит Oracle -> Oracle репликация - самый простой вариант? Мне кажется, у вас еще есть потенцеал для оптимизации текущего решения. Если все же нет, то проще на родных технологиях, как минимум сэкономите на покупке дорогущего CDC для какой-нибудь Informatica. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 22:02 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
Oracle Streams ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 22:05 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
mikkri Вообщем, OLAP, но не аналитический, а скорее операционный. OLAP - нечто аналитическое в обычном понимании. Возможно, Вы как-то расширенно его толкуете. У вас все же выглядят пока запросы просто как оперативные. Олап все же када юзер может с помощью сам строить запросы (с помощью мастеров, и крутить полученные представления всяко кликанием мышки как правило) к обощенным данные (т.е. это уже вовсе не такой уж большой объем как правило, например Йексель служит прогой для работы с этими данными) и крутить их таким образом по разному по разному, чтобы оперативно анализировать. Репликация связана все же с распределенными БД: применение ее для повышения производительности может выглядеть без дополнительных сведений как применение не по назначению. Реальный кластер как бы задумывался для горизонтального масштабирования. Это как бы ближе. Но все же луче быть уверенными, что другте средства Оракла использованы на 100 процентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 22:07 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
vadiminfo, у меня 3 куба на тестовом крутится , слон пока тянет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 23:52 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
mikkri Верный вопрос. Легко могут не влезть. а действительно, 2Тб ведь могут и не влезть, ну а если бы влезли ууу как OLAP в TimesTen бы залетал ... слушайте, а мне этот mikkri определенно нравится. смотрите как лихо он прикидывает как запихнуть 2Тб в инмемори субд, не докупить ли на пару мульенов лицензий поставив всю систему РАКом или тупо зареплицировать 70 млн транзакций в день. ну фигня, что слегка путает OLAP с SQL и в нюансах стендбая (сказал же, что не дба), зато какой масштаб, какой полет мысли ! большая начальника детектед ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2009, 01:56 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
Yo.!mikkri Верный вопрос. Легко могут не влезть. а действительно, 2Тб ведь могут и не влезть, ну а если бы влезли ууу как OLAP в TimesTen бы залетал ... слушайте, а мне этот mikkri определенно нравится. смотрите как лихо он прикидывает как запихнуть 2Тб в инмемори субд, не докупить ли на пару мульенов лицензий поставив всю систему РАКом или тупо зареплицировать 70 млн транзакций в день. ну фигня, что слегка путает OLAP с SQL и в нюансах стендбая (сказал же, что не дба), зато какой масштаб, какой полет мысли ! большая начальника детектед 100-200 Гб в память помещаются если захотеть. Только не вполне понятно, как выбрать нужные из всего объема данных, но, думаю, достижимо при нужном количестве усилий. Лицензия на РАК у нас вроде как уже есть, т.е. не проблема. Собственно, ради таких товарищей, как вы, сюда вопрос и вынес. Наши DBA не хотят рисковать своей репутацией, предлагая какие-либо решения для наших проблем. А нанять каких-нибудь консультантов вряд ли будет много толку. P.s. Ораклу очень понравилась идея продать нам TimesTen, уже готовы командировать ответственного товарища к нам для демонстрации. Вот только стоит ли?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2009, 13:25 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
чего-то у меня картинка ну ни как не складывается - есть рак, есть дба и при этом база в 2Тб без партитионинга и матвью, но с аналитическими запросами. мне искренни не понятно, чем же тогда дба занимаются ? по таймтенс - напоминает борьбу с поносом путем ограничения доступа к туалету. у вас проблема аналитики и и/о по терабайтам, вместо того, чтоб решать проблему лишнего и/о вы выпихиваете ничего не решающий кусочек бд в инмемори субд. ну даже если все 2Тб выпихните в таймтенс, чем оно поможет на аналитических запросах ? ничем не поможет, а более вероятно издохнет на трехэтажных, т.к. задача инмемори субд - OLTP нагрузка, с которым у вас вроде и оракл справляется, если не мешать фулсканами по терабайтам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2009, 15:08 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
DBA занимаются операционными вопросами - делают бэкап, следят за тем, чтобы в случае выхода сервера из строя был запасной, патчи опять же устанавливают. А вот архитектурными вопросами заниматься не хотят. Т.е. партиции, к примеру, у нас есть, но мы сами придумываем, как их создать, хотя, на мой взгляд, это должна быть работа DBA. Для полноценной аналитики есть Sybase БД, но там синхронизация с задержкой до суток. Один из подходов - денормализация. Т.е. можно досоздать таблиц где хранить результаты определенных функций, начиная с суммы и заканчивая более сложными вычислениями, такими как вычисление статуса транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2009, 16:00 |
|
||
|
OLTP + OLAP вместе (2 Тб)
|
|||
|---|---|---|---|
|
#18+
mikkri пишет: > Как насчет пользователей, которым нужно "свежие" данные "сейчас"? Так очень просто ! По кнопке "Запустить запрос" сначала ждёшь пол-часа, пока свежие данные подтянутся, потом -- вжик -- запрос за 5 секунд выполняеш, и выдаёш результат. Потом, как будут морщиться, сделай вторую кнопку, "запустить запрос быстро, но с немного устаревшими данными". Ну, и сам подумай, какую кнопку они давить будут чаще :-) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2009, 16:18 |
|
||
|
|

start [/forum/search_topic.php?author=Spy2000sss111&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 488ms |
| total: | 659ms |

| 0 / 0 |
