Встречи сообщества http://PostgreSQLRussia.org
Иван Кухарчук, ЯНДЕКС. Как можно сэкономить на лицензиях и снизить нагрузку на Oracle, переселив отчёты в PostgreSQL.
#PostgreSQLRussia 2015.09.15 - Иван Кухарчук, ЯНДЕКС. Как можно сэкономить на лицензиях и снизить нагрузку на Oracle, переселив отчёты в PostgreSQL
1. Как можно сэкономить на лицензиях и снизить
нагрузку на Oracle, переселив отчёты в
PostgreSQL
Кухарчук Иван
wedge@yandex-team.ru
2. Oracle в Яндексе
● Да, он есть (см. презентации и статьи
Владимира Бородина)
● Да, он «стоит как чугунный мост»
● Остальное — NDA :)
3. Наш случай
● COTS hardware
● OLTP (да ещё и с SLA)
● Реальные деньги (Яндекс.Маркет)
● Объем базы ~ 2,5 Тб
● 1 Primary, 2 Standby
Всё как бы хорошо: быстро, надёжно, но...
4. Кто виноват
● У нас появились аналитики
● «Тяжелые» запросы
● Активное использование count(*) и прочих
агрегатных функций
● Неоптимальные запросы
8. Ускоряем ora2pg
● О! У нас есть партиции по дням!
● В Postgres есть наследование таблиц
● Но… ora2pg не умеет партиции* :(
● ОК, лезем в перлячку, патчим ora2pg
● Пишем генератор конфигов для ora2pg на
python
…
● PROFIT!
*речь о версии 12.0
9. WARNING
● Логируйте запросы и стройте новые индексы
(Кэп!), чтобы аналитики были счастливы
● Положите индексы на SSD
● Таблички-словари дешевле перегружать
целиком
● Не забудьте мониторинг
10. На выходе
● 1 COTS-сервер
● 128 Gb RAM
● 4xSSD 400G — под индексы
● 24xHDD 4Tb — под данные
● 1,8 Tb RAW-данных, +2-3G/день
● Доливка свежих данных ночью за 5-10 минут