SlideShare a Scribd company logo
1 of 11
Download to read offline
Как можно сэкономить на лицензиях и снизить
нагрузку на Oracle, переселив отчёты в
PostgreSQL
Кухарчук Иван
wedge@yandex-team.ru
Oracle в Яндексе
● Да, он есть (см. презентации и статьи
Владимира Бородина)
● Да, он «стоит как чугунный мост»
● Остальное — NDA :)
Наш случай
● COTS hardware
● OLTP (да ещё и с SLA)
● Реальные деньги (Яндекс.Маркет)
● Объем базы ~ 2,5 Тб
● 1 Primary, 2 Standby
Всё как бы хорошо: быстро, надёжно, но...
Кто виноват
● У нас появились аналитики
● «Тяжелые» запросы
● Активное использование count(*) и прочих
агрегатных функций
● Неоптимальные запросы
Что делать
● Поднимать ещё
один standby —
дорого
● Выгружать данные
куда-то — непонятно
SymmetricDS
● Near-realtime (когда
работает)
● JDBC
● широкие
возможности
трансформации
данных
Минусы:
● триггерная система
репликации
● посредственная
производительность
Ora2Pg
Плюсы:
● Широко известный
инструмент
● Быстрый
Минусы:
● Расчитан на
разовые операции
● На наших объёмах
— долго
● Perl
Ускоряем ora2pg
● О! У нас есть партиции по дням!
● В Postgres есть наследование таблиц
● Но… ora2pg не умеет партиции* :(
● ОК, лезем в перлячку, патчим ora2pg
● Пишем генератор конфигов для ora2pg на
python
…
● PROFIT!
*речь о версии 12.0
WARNING
● Логируйте запросы и стройте новые индексы
(Кэп!), чтобы аналитики были счастливы
● Положите индексы на SSD
● Таблички-словари дешевле перегружать
целиком
● Не забудьте мониторинг
На выходе
● 1 COTS-сервер
● 128 Gb RAM
● 4xSSD 400G — под индексы
● 24xHDD 4Tb — под данные
● 1,8 Tb RAW-данных, +2-3G/день
● Доливка свежих данных ночью за 5-10 минут
Вопросы?

More Related Content

More from Nikolay Samokhvalov

The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San JoseThe Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
Nikolay Samokhvalov
 
#RuPostgresLive 4: как писать и читать сложные SQL-запросы
#RuPostgresLive 4: как писать и читать сложные SQL-запросы#RuPostgresLive 4: как писать и читать сложные SQL-запросы
#RuPostgresLive 4: как писать и читать сложные SQL-запросы
Nikolay Samokhvalov
 
#RuPostgresLive 4: как писать и читать сложные SQL-запросы
#RuPostgresLive 4: как писать и читать сложные SQL-запросы#RuPostgresLive 4: как писать и читать сложные SQL-запросы
#RuPostgresLive 4: как писать и читать сложные SQL-запросы
Nikolay Samokhvalov
 
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
Nikolay Samokhvalov
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
Nikolay Samokhvalov
 
20080214 Rupg Meeting1 Whatisnewpostgresql8.3
20080214 Rupg Meeting1 Whatisnewpostgresql8.320080214 Rupg Meeting1 Whatisnewpostgresql8.3
20080214 Rupg Meeting1 Whatisnewpostgresql8.3
Nikolay Samokhvalov
 
20080424 Cdb2008 Postgresql News Bartunov
20080424 Cdb2008 Postgresql News Bartunov20080424 Cdb2008 Postgresql News Bartunov
20080424 Cdb2008 Postgresql News Bartunov
Nikolay Samokhvalov
 
20080424 Cdb2008 Postgresql8.3 Samokhvalov
20080424 Cdb2008 Postgresql8.3 Samokhvalov20080424 Cdb2008 Postgresql8.3 Samokhvalov
20080424 Cdb2008 Postgresql8.3 Samokhvalov
Nikolay Samokhvalov
 

More from Nikolay Samokhvalov (20)

The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San JoseThe Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
The Art of Database Experiments – PostgresConf Silicon Valley 2018 / San Jose
 
Nancy CLI. Automated Database Experiments
Nancy CLI. Automated Database ExperimentsNancy CLI. Automated Database Experiments
Nancy CLI. Automated Database Experiments
 
#RuPostgresLive 4: как писать и читать сложные SQL-запросы
#RuPostgresLive 4: как писать и читать сложные SQL-запросы#RuPostgresLive 4: как писать и читать сложные SQL-запросы
#RuPostgresLive 4: как писать и читать сложные SQL-запросы
 
#RuPostgresLive 4: как писать и читать сложные SQL-запросы
#RuPostgresLive 4: как писать и читать сложные SQL-запросы#RuPostgresLive 4: как писать и читать сложные SQL-запросы
#RuPostgresLive 4: как писать и читать сложные SQL-запросы
 
Database First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДDatabase First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБД
 
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
 
#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов
 
#PostgreSQLRussia в банке Тинькофф, доклад №1
#PostgreSQLRussia в банке Тинькофф, доклад №1#PostgreSQLRussia в банке Тинькофф, доклад №1
#PostgreSQLRussia в банке Тинькофф, доклад №1
 
SFPUG 2015.11.20 lightning talk "PostgreSQL in Russia"
SFPUG 2015.11.20 lightning talk "PostgreSQL in Russia"SFPUG 2015.11.20 lightning talk "PostgreSQL in Russia"
SFPUG 2015.11.20 lightning talk "PostgreSQL in Russia"
 
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
 
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru
 
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
 
2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search
 
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
 
PostgreSQL Moscow Meetup - September 2014 - Oleg Bartunov and Alexander Korotkov
PostgreSQL Moscow Meetup - September 2014 - Oleg Bartunov and Alexander KorotkovPostgreSQL Moscow Meetup - September 2014 - Oleg Bartunov and Alexander Korotkov
PostgreSQL Moscow Meetup - September 2014 - Oleg Bartunov and Alexander Korotkov
 
20080214 Rupg Meeting1 Whatisnewpostgresql8.3
20080214 Rupg Meeting1 Whatisnewpostgresql8.320080214 Rupg Meeting1 Whatisnewpostgresql8.3
20080214 Rupg Meeting1 Whatisnewpostgresql8.3
 
20080424 Cdb2008 Postgresql News Bartunov
20080424 Cdb2008 Postgresql News Bartunov20080424 Cdb2008 Postgresql News Bartunov
20080424 Cdb2008 Postgresql News Bartunov
 
20080424 Cdb2008 Postgresql8.3 Samokhvalov
20080424 Cdb2008 Postgresql8.3 Samokhvalov20080424 Cdb2008 Postgresql8.3 Samokhvalov
20080424 Cdb2008 Postgresql8.3 Samokhvalov
 

#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(*) и прочих агрегатных функций ● Неоптимальные запросы
  • 5. Что делать ● Поднимать ещё один standby — дорого ● Выгружать данные куда-то — непонятно
  • 6. SymmetricDS ● Near-realtime (когда работает) ● JDBC ● широкие возможности трансформации данных Минусы: ● триггерная система репликации ● посредственная производительность
  • 7. Ora2Pg Плюсы: ● Широко известный инструмент ● Быстрый Минусы: ● Расчитан на разовые операции ● На наших объёмах — долго ● Perl
  • 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 минут