- Oracle vs PostgreSQL: яку СУБД вибрати? У той час як в державному секторі повсюдно і в обов'язковому...
- супровід
- продуктивність
- Безпека
- масштабованість
- оновлюваність
- Робота з дуже великими даними
- Oracle vs PostgreSQL: яку СУБД вибрати?
- Сукупна вартість володіння (Total Cost of Ownership або TCO).
- супровід
- продуктивність
- Безпека
- масштабованість
- оновлюваність
- Робота з дуже великими даними
- Oracle vs PostgreSQL: яку СУБД вибрати?
- Сукупна вартість володіння (Total Cost of Ownership або TCO).
- супровід
- продуктивність
- Безпека
- масштабованість
- оновлюваність
- Робота з дуже великими даними
Oracle vs PostgreSQL: яку СУБД вибрати?
У той час як в державному секторі повсюдно і в обов'язковому порядку відбувається перехід на вільне програмне забезпечення, все більше комерційних компаній замислюються про добровільну міграції з Oracle на вільну систему управління базами даних PostgreSQL.
Що набувають і втрачають компанії при такому переході? Відповідь на це питання шукали учасники конференції PgConf, яка пройшла на початку лютого в Москві.
На ній начальник відділу технічного консалтингу по серверних технологій російського представництва Oracle Марк Рівкін запропонував порівнювати СУБД за наступними критеріями: продуктивність, безпеку, масштабованість, оновлюваність, рівень техпідтримки, робота з великими обсягами даних і ціна володіння. З таким підходом погодився і експерт компанії PostgreSQL-Consulting.com, фахівець з баз даних PostgreSQL, DB2 і Oracle, Ілля Космодемьянский.
Добре, давайте порівняємо. І почнемо з основного, на наш погляд, критерію.
Сукупна вартість володіння (Total Cost of Ownership або TCO).
Як відомо, основними складовими ТСО в світі софта є ціна придбання і вартість підтримки продукту. Певне значення мають і витрати на адміністраторів баз даних (DBA), але, згідно з результатами досліджень HeadHunter, ці витрати різняться в межах 10%.
Варто визнати: ціна придбання Oracle висока, так само як і вартість підтримки. Крім того, кожну додаткову функцію доводиться купувати окремо, причому за чималі гроші. Про це вірно сказав Ілля Космодемьянский: «Ліцензії придумують недурні люди: Express і Standard-one випущені для того, щоб ви купили Enterprise і RAC».
Для прикладу наведемо вартість ліцензії Oracle Enterprise Edition для одного 4-х ядерного CPU і ціну супроводу на один рік - близько 7,5 мільйонів рублів.
Вартість для ваших рішень можна прикинути в різних калькуляторах:
http://oracle.axoft.ru/catalog/rubric.php?RUBRIC_ID=322
http://www.fors.ru/services/delivery-oracle/calculation/
Як ви вже здогадалися, саме TCO є ударним аргументом на користь PostgreSQL, оскільки в разі вибору open-source СУБД ціна придбання є нульовою, аналогічна ситуація і з вартістю супроводу. Втім, про це критерії варто поговорити окремо.
супровід
Якщо ви думаєте, що «безкоштовно» - це синонім слова «погано», то глибоко помиляєтеся. Так, у випадку з PostgreSQL виникли проблеми буде вирішувати «ком'юніті», а не високооплачувана (вами!) Група професіоналів. І тому цілком ймовірно, що це буде зроблено з деякою затримкою, але вона, як правило, не дуже критична, а значить, не призведе до серйозних наслідків. Для тих же компаній, кого такий підхід не влаштовує, є вихід: організації, які займаються професійною підтримкою PostgreSQL на високому рівні. Їхні послуги, звичайно, не безкоштовні, але вартість і умови більш ніж демократичні: немає річних ліцензій, штрафів за пропуск оплат і інших «приємних» сюрпризів, якими славиться підтримка Oracle.
До речі, а ви в курсі, що вартість супроводу Oracle в рік становить майже чверть вартості ліцензії? Причому ця сума щорічно зростає на 3% -5%. У доларах, звичайно. З більш детальною інформацією можна ознайомитися ось тут:
http://www.fors.ru/upload/magazine/03/http_texts/fors_technical_support1.html
продуктивність
Ілля Космодемьянский визнає, що оскаржувати технічне першість Oracle нерозумно. У загальному випадку ця СУБД забезпечує більше транзакцій в секунду (TPS), ніж PostgreSQL. У скільки разів? А ось на це питання точно відповісти поки ніхто не зміг. Для того щоб порівняти продуктивність Oracle і PostgreSQL, необхідно провести їх тестування в ідентичних умовах: на однаковому «залізі» з рівною навантаженням, використовуючи оптимальні операційні і файлові системи, а також здійснивши який можна порівняти за рівнем «тюнінг» СУБД.
Складність дотримань цих умов, їх висока трудомісткість, відсутність кваліфікованих DBA обмежують подібні дослідження.
Проте, на сайті pgconf представлені деякі цифри по продуктивності PostgreSQL, правда, без вказівки посилань на джерела:
- сайт Держдуми РФ - 100 ГБ даних, 400 000 хітів в день;
- «Яндекс» - 500 млн транзакцій на добу, 5+ ТБ даних на чотири Шарда;
- Coub.com - 400 млн переглядів на добу, 10 000 запитів в секунду.
Безпека
Про яку безпеку згадував Марк Рівкін? Напевно, про опції типу Oracle advanced security або Label security, які входять тільки в найдорожчий пакет Enterprise edition. Це дійсно «круті« фічі », але вони не настільки актуальні в умовах очікування нових санкцій, які можуть привести до повної відмови в технічній підтримці продукту або, що ще більш катастрофічно, до відключення наших хмарних БД.
масштабованість
Тепер давайте подивимося, як йдуть справи з масштабністю в Oracle. Починаючи з версії Standard edition, надається всім відомий RAC (чотири сокета). Однак при роботі з highload-проектами, вам, швидше за все, доведеться купити Enterprise edition, що влетить у копієчку.
У той же час співтовариство PostgreSQL безкоштовно надає і розширення на зразок PL / Proxy від компанії Skype, яке дозволяє шардіровать інформацію по кластеру БД, і окремі кластерні рішення, що базуються на PostgreSQL - Postgres-XC і Postgres-XL .
оновлюваність
Oracle не женеться за частотою релізів. Як правило, новий реліз виходить раз в два-три роки і відображає якісні зміни відповідно до потреб ринку. Простежимо хронологію:
1998 рік - випущена версія 8i Release 1 (8.1.5), «i» в назві означає «internet», символізуючи підтримку інтернету.
2001 рік - випущена версія 9i Release 1 (9.0.1), підтримка XML, поява RAC.
2004 рік - випущена версія 10g Release 1 (10.1.0), «g» в назві означає «grid» ( «мережа»), символізуючи підтримку грід-обчислень.
2007 рік - випущена версія 11g Release 1 (11.1.0.6).
2013 рік - випущена версія 12c (12.1.0.1), «с» в назві означає «cloud» ( «хмара»). Основне нововведення релізу - підтримка підключаються баз даних, яка забезпечує властивості мультіарендності і динамічної міграції БД.
Крім того, щоквартально випускаються критичні патчі.
Ще більш неквапливий при зміні номера версії PostgreSQL: реліз виходить приблизно раз в п'ять років. Але, на відміну від Oracle, додавання нових функцій і оновлення існуючих відбувається, по суті, постійно. Так що, якщо ви готові ризикнути стабільністю заради функціональності, оновлювати СУБД можна хоч кожен день.
Обсяг змін до межрелізних оновлення можна побічно оцінити з того факту, що їх короткий опис займає кілька екранних сторінок.
Провідний розробник PostgreSQL Олег Бартунов вважає, що спектр можливостей цієї СУБД розширюється набагато швидше, ніж у Oracle. Тому цілком можливо, що в самий найближчий час PostgreSQL займе лідируючі позиції в даному напрямку.
Робота з дуже великими даними
Так само як і у випадку з продуктивністю, порівнювати СУБД за цим критерієм досить складно. З одного боку, Enterprise версія Oracle при інших рівних умовах повинна бути продуктивніше PostgreSQL принаймні за рахунок in-memory технології, але для отримання конкретних цифр необхідно порівнювати результати на робочих запитах. З іншого - PostgreSQL не стоїть на місці: у версії 9.4 з'явилися huge pages, що дає приріст продуктивності від 10% до 30% на машинах з великим об'ємом пам'яті.
Для тих, хто хоче мати деякі опорні цифри, ми зібрали статистику:
- сайт оголошень «Авіто» (250 млн переглядів, 7 млн відвідувачів на добу), кількість серверів БД - близько 30. Розмір майстер-бази - 1.5 ТБ, більше 3 000 запитів в секунду на перегляд інформації і близько 1 500 запитів в секунду на зміну.
- Хмарний сервіс «Мій склад» з відносно «важкими» запитами до БД: 6 серверів Intel забезпечують одночасну роботу 2 000 користувачів, що генерують до 1 400 транзакцій в секунду на БД розміром 700 ГБ.
- Компанія «Яндекс» мігрувала з Oracle в частині поштової системи: розмір БД - 2 ТБ (15+ млрд рядків), продуктивність 40 000 запитів в секунду. Більш детальну інформацію можна знайти тут: http://www.slideshare.net/yandex/postgresql-39692656 .
Отже, який же рада ми можемо дати тим, хто стоїть перед вибором СУБД? PostgreSQL представляється досить зрілою системою, здатною забезпечити потреби середніх, а іноді і великих корпорацій (за прикладами далеко ходити не треба - «Яндекс», «Авіто», Skype). Тому, якщо ваш проект ще не виведений в «продуктив» або існує безболісний варіант спробувати різні СУБД, то це варто зробити. Як в такому випадку мінімізувати ризики? На це питання існує тільки одна відповідь: необхідно розрахувати, потім емулювати бойове навантаження і, врешті-решт, оцінити результат. До речі, «Перфоманс Лаб» це вміє.
Якщо ж перед вами стоїть гостра проблема «імпортозаміщення» вже працюючої системи, то не варто ризикувати і, помолившись індійському богу Ганеші, запускати скрипт міграції з Oracle в PostgreSQL (а такий скрипт є). Як радить технічний директор 404 Group Роман Друзягін, спочатку потрібно протестувати систему, зафіксувати всі проблеми, знайти шляхи їх вирішення, провести декілька тестових міграцій і тільки потім, гарненько виспавшись, влаштовувати час «Ч».
Порівняння PostgreSQL, Oracle та MySQL на бойовому навантаженні
Якщо ви хочете докладніше ознайомитися з можливостями обох СУБД, ми підібрали для вас посилання:
http://db-engines.com/en/ranking_trend/system/Oracle%3BPostgreSQL - DB-Engines Ranking - Trend of Oracle vs. PostgreSQL Popularity.
http://www.ocs.ru/OCS/media/Products/Oracle/Сравнение-СУБД-Oracle-и-Microsoft.pdf - інформація про Oracle Database.
http://pgconf.ru/ - Російська конференція розробників і користувачів PostgreSQL.
http://open.cnews.ru/top/2014/12/17/hroniki_importozameshheniya_rossiyskie_razrabotchiki_postgresql_godami_ne_mogut_nayti_sponsora_590991
http://etersoft.ru/about/news/307-postgresql
http://www.sai.msu.su/~megera/postgres/talks/npp-dbms.pdf
http://db-engines.com/en/ranking_trend/system/Oracle%3BPostgreSQL
http://oracle.1001-soft.ru/Oracle_sravneneie_postgresql.html
http://habrahabr.ru/company/mailru/blog/248689/
http://gov.cnews.ru/top/2015/01/28/osnovatel_envizhn_investiroval_v_rossiyskuyu_komandu_razrabotchikov_postgresql_592089
http://gov.cnews.ru/news/top/index.shtml?2015/02/10/592592
http://gov.cnews.ru/top/2015/02/06/gosudarstvo_vydelit_celevye_granty_dlya_migracii_na_svobodnoe_po_592476
http://fondpi.ru/posts/1335526
http://open.cnews.ru/news/top/index.shtml?2015/02/09/592567
http://soft.cnews.ru/news/softbox/13567/
http://citforum.ru/database/articles/trends/3.shtml
http://www.interface.ru/home.asp?artId=23923
http://www.iso27000.ru/chitalnyi-zai/zaschita-personalnyh-dannyh/obespechenie-zaschity-personalnyh-dannyh-v-subd-oracle
http://www.gazeta.ru/business/news/2014/04/30/n_6119681.shtml
http://smartsourcing.ru/blogs/informatsionnaya_bezopasnost/2593
http://habrahabr.ru/company/mailru/blog/248845/
http://habrahabr.ru/company/mailru/blog/182088/
http://www.ocs.ru/OCS/media/Products/Oracle/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8 % D0% B5-% D0% A1% D0% A3% D0% 91% D0% 94-Oracle-% D0% B8-Microsoft.pdf
http://oracle.axoft.ru/catalog/rubric.php?RUBRIC_ID=323
http://oracle.axoft.ru/images/Security_OracleDB.pdf
Oracle vs PostgreSQL: яку СУБД вибрати?
У той час як в державному секторі повсюдно і в обов'язковому порядку відбувається перехід на вільне програмне забезпечення, все більше комерційних компаній замислюються про добровільну міграції з Oracle на вільну систему управління базами даних PostgreSQL.
Що набувають і втрачають компанії при такому переході? Відповідь на це питання шукали учасники конференції PgConf, яка пройшла на початку лютого в Москві.
На ній начальник відділу технічного консалтингу по серверних технологій російського представництва Oracle Марк Рівкін запропонував порівнювати СУБД за наступними критеріями: продуктивність, безпеку, масштабованість, оновлюваність, рівень техпідтримки, робота з великими обсягами даних і ціна володіння. З таким підходом погодився і експерт компанії PostgreSQL-Consulting.com, фахівець з баз даних PostgreSQL, DB2 і Oracle, Ілля Космодемьянский.
Добре, давайте порівняємо. І почнемо з основного, на наш погляд, критерію.
Сукупна вартість володіння (Total Cost of Ownership або TCO).
Як відомо, основними складовими ТСО в світі софта є ціна придбання і вартість підтримки продукту. Певне значення мають і витрати на адміністраторів баз даних (DBA), але, згідно з результатами досліджень HeadHunter, ці витрати різняться в межах 10%.
Варто визнати: ціна придбання Oracle висока, так само як і вартість підтримки. Крім того, кожну додаткову функцію доводиться купувати окремо, причому за чималі гроші. Про це вірно сказав Ілля Космодемьянский: «Ліцензії придумують недурні люди: Express і Standard-one випущені для того, щоб ви купили Enterprise і RAC».
Для прикладу наведемо вартість ліцензії Oracle Enterprise Edition для одного 4-х ядерного CPU і ціну супроводу на один рік - близько 7,5 мільйонів рублів.
Вартість для ваших рішень можна прикинути в різних калькуляторах:
http://oracle.axoft.ru/catalog/rubric.php?RUBRIC_ID=322
http://www.fors.ru/services/delivery-oracle/calculation/
Як ви вже здогадалися, саме TCO є ударним аргументом на користь PostgreSQL, оскільки в разі вибору open-source СУБД ціна придбання є нульовою, аналогічна ситуація і з вартістю супроводу. Втім, про це критерії варто поговорити окремо.
супровід
Якщо ви думаєте, що «безкоштовно» - це синонім слова «погано», то глибоко помиляєтеся. Так, у випадку з PostgreSQL виникли проблеми буде вирішувати «ком'юніті», а не високооплачувана (вами!) Група професіоналів. І тому цілком ймовірно, що це буде зроблено з деякою затримкою, але вона, як правило, не дуже критична, а значить, не призведе до серйозних наслідків. Для тих же компаній, кого такий підхід не влаштовує, є вихід: організації, які займаються професійною підтримкою PostgreSQL на високому рівні. Їхні послуги, звичайно, не безкоштовні, але вартість і умови більш ніж демократичні: немає річних ліцензій, штрафів за пропуск оплат і інших «приємних» сюрпризів, якими славиться підтримка Oracle.
До речі, а ви в курсі, що вартість супроводу Oracle в рік становить майже чверть вартості ліцензії? Причому ця сума щорічно зростає на 3% -5%. У доларах, звичайно. З більш детальною інформацією можна ознайомитися ось тут:
http://www.fors.ru/upload/magazine/03/http_texts/fors_technical_support1.html
продуктивність
Ілля Космодемьянский визнає, що оскаржувати технічне першість Oracle нерозумно. У загальному випадку ця СУБД забезпечує більше транзакцій в секунду (TPS), ніж PostgreSQL. У скільки разів? А ось на це питання точно відповісти поки ніхто не зміг. Для того щоб порівняти продуктивність Oracle і PostgreSQL, необхідно провести їх тестування в ідентичних умовах: на однаковому «залізі» з рівною навантаженням, використовуючи оптимальні операційні і файлові системи, а також здійснивши який можна порівняти за рівнем «тюнінг» СУБД.
Складність дотримань цих умов, їх висока трудомісткість, відсутність кваліфікованих DBA обмежують подібні дослідження.
Проте, на сайті pgconf представлені деякі цифри по продуктивності PostgreSQL, правда, без вказівки посилань на джерела:
- сайт Держдуми РФ - 100 ГБ даних, 400 000 хітів в день;
- «Яндекс» - 500 млн транзакцій на добу, 5+ ТБ даних на чотири Шарда;
- Coub.com - 400 млн переглядів на добу, 10 000 запитів в секунду.
Безпека
Про яку безпеку згадував Марк Рівкін? Напевно, про опції типу Oracle advanced security або Label security, які входять тільки в найдорожчий пакет Enterprise edition. Це дійсно «круті« фічі », але вони не настільки актуальні в умовах очікування нових санкцій, які можуть привести до повної відмови в технічній підтримці продукту або, що ще більш катастрофічно, до відключення наших хмарних БД.
масштабованість
Тепер давайте подивимося, як йдуть справи з масштабністю в Oracle. Починаючи з версії Standard edition, надається всім відомий RAC (чотири сокета). Однак при роботі з highload-проектами, вам, швидше за все, доведеться купити Enterprise edition, що влетить у копієчку.
У той же час співтовариство PostgreSQL безкоштовно надає і розширення на зразок PL / Proxy від компанії Skype, яке дозволяє шардіровать інформацію по кластеру БД, і окремі кластерні рішення, що базуються на PostgreSQL - Postgres-XC і Postgres-XL .
оновлюваність
Oracle не женеться за частотою релізів. Як правило, новий реліз виходить раз в два-три роки і відображає якісні зміни відповідно до потреб ринку. Простежимо хронологію:
1998 рік - випущена версія 8i Release 1 (8.1.5), «i» в назві означає «internet», символізуючи підтримку інтернету.
2001 рік - випущена версія 9i Release 1 (9.0.1), підтримка XML, поява RAC.
2004 рік - випущена версія 10g Release 1 (10.1.0), «g» в назві означає «grid» ( «мережа»), символізуючи підтримку грід-обчислень.
2007 рік - випущена версія 11g Release 1 (11.1.0.6).
2013 рік - випущена версія 12c (12.1.0.1), «с» в назві означає «cloud» ( «хмара»). Основне нововведення релізу - підтримка підключаються баз даних, яка забезпечує властивості мультіарендності і динамічної міграції БД.
Крім того, щоквартально випускаються критичні патчі.
Ще більш неквапливий при зміні номера версії PostgreSQL: реліз виходить приблизно раз в п'ять років. Але, на відміну від Oracle, додавання нових функцій і оновлення існуючих відбувається, по суті, постійно. Так що, якщо ви готові ризикнути стабільністю заради функціональності, оновлювати СУБД можна хоч кожен день.
Обсяг змін до межрелізних оновлення можна побічно оцінити з того факту, що їх короткий опис займає кілька екранних сторінок.
Провідний розробник PostgreSQL Олег Бартунов вважає, що спектр можливостей цієї СУБД розширюється набагато швидше, ніж у Oracle. Тому цілком можливо, що в самий найближчий час PostgreSQL займе лідируючі позиції в даному напрямку.
Робота з дуже великими даними
Так само як і у випадку з продуктивністю, порівнювати СУБД за цим критерієм досить складно. З одного боку, Enterprise версія Oracle при інших рівних умовах повинна бути продуктивніше PostgreSQL принаймні за рахунок in-memory технології, але для отримання конкретних цифр необхідно порівнювати результати на робочих запитах. З іншого - PostgreSQL не стоїть на місці: у версії 9.4 з'явилися huge pages, що дає приріст продуктивності від 10% до 30% на машинах з великим об'ємом пам'яті.
Для тих, хто хоче мати деякі опорні цифри, ми зібрали статистику:
- сайт оголошень «Авіто» (250 млн переглядів, 7 млн відвідувачів на добу), кількість серверів БД - близько 30. Розмір майстер-бази - 1.5 ТБ, більше 3 000 запитів в секунду на перегляд інформації і близько 1 500 запитів в секунду на зміну.
- Хмарний сервіс «Мій склад» з відносно «важкими» запитами до БД: 6 серверів Intel забезпечують одночасну роботу 2 000 користувачів, що генерують до 1 400 транзакцій в секунду на БД розміром 700 ГБ.
- Компанія «Яндекс» мігрувала з Oracle в частині поштової системи: розмір БД - 2 ТБ (15+ млрд рядків), продуктивність 40 000 запитів в секунду. Більш детальну інформацію можна знайти тут: http://www.slideshare.net/yandex/postgresql-39692656 .
Отже, який же рада ми можемо дати тим, хто стоїть перед вибором СУБД? PostgreSQL представляється досить зрілою системою, здатною забезпечити потреби середніх, а іноді і великих корпорацій (за прикладами далеко ходити не треба - «Яндекс», «Авіто», Skype). Тому, якщо ваш проект ще не виведений в «продуктив» або існує безболісний варіант спробувати різні СУБД, то це варто зробити. Як в такому випадку мінімізувати ризики? На це питання існує тільки одна відповідь: необхідно розрахувати, потім емулювати бойове навантаження і, врешті-решт, оцінити результат. До речі, «Перфоманс Лаб» це вміє.
Якщо ж перед вами стоїть гостра проблема «імпортозаміщення» вже працюючої системи, то не варто ризикувати і, помолившись індійському богу Ганеші, запускати скрипт міграції з Oracle в PostgreSQL (а такий скрипт є). Як радить технічний директор 404 Group Роман Друзягін, спочатку потрібно протестувати систему, зафіксувати всі проблеми, знайти шляхи їх вирішення, провести декілька тестових міграцій і тільки потім, гарненько виспавшись, влаштовувати час «Ч».
Порівняння PostgreSQL, Oracle та MySQL на бойовому навантаженні
Якщо ви хочете докладніше ознайомитися з можливостями обох СУБД, ми підібрали для вас посилання:
http://db-engines.com/en/ranking_trend/system/Oracle%3BPostgreSQL - DB-Engines Ranking - Trend of Oracle vs. PostgreSQL Popularity.
http://www.ocs.ru/OCS/media/Products/Oracle/Сравнение-СУБД-Oracle-и-Microsoft.pdf - інформація про Oracle Database.
http://pgconf.ru/ - Російська конференція розробників і користувачів PostgreSQL.
http://open.cnews.ru/top/2014/12/17/hroniki_importozameshheniya_rossiyskie_razrabotchiki_postgresql_godami_ne_mogut_nayti_sponsora_590991
http://etersoft.ru/about/news/307-postgresql
http://www.sai.msu.su/~megera/postgres/talks/npp-dbms.pdf
http://db-engines.com/en/ranking_trend/system/Oracle%3BPostgreSQL
http://oracle.1001-soft.ru/Oracle_sravneneie_postgresql.html
http://habrahabr.ru/company/mailru/blog/248689/
http://gov.cnews.ru/top/2015/01/28/osnovatel_envizhn_investiroval_v_rossiyskuyu_komandu_razrabotchikov_postgresql_592089
http://gov.cnews.ru/news/top/index.shtml?2015/02/10/592592
http://gov.cnews.ru/top/2015/02/06/gosudarstvo_vydelit_celevye_granty_dlya_migracii_na_svobodnoe_po_592476
http://fondpi.ru/posts/1335526
http://open.cnews.ru/news/top/index.shtml?2015/02/09/592567
http://soft.cnews.ru/news/softbox/13567/
http://citforum.ru/database/articles/trends/3.shtml
http://www.interface.ru/home.asp?artId=23923
http://www.iso27000.ru/chitalnyi-zai/zaschita-personalnyh-dannyh/obespechenie-zaschity-personalnyh-dannyh-v-subd-oracle
http://www.gazeta.ru/business/news/2014/04/30/n_6119681.shtml
http://smartsourcing.ru/blogs/informatsionnaya_bezopasnost/2593
http://habrahabr.ru/company/mailru/blog/248845/
http://habrahabr.ru/company/mailru/blog/182088/
http://www.ocs.ru/OCS/media/Products/Oracle/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8 % D0% B5-% D0% A1% D0% A3% D0% 91% D0% 94-Oracle-% D0% B8-Microsoft.pdf
http://oracle.axoft.ru/catalog/rubric.php?RUBRIC_ID=323
http://oracle.axoft.ru/images/Security_OracleDB.pdf
Oracle vs PostgreSQL: яку СУБД вибрати?
У той час як в державному секторі повсюдно і в обов'язковому порядку відбувається перехід на вільне програмне забезпечення, все більше комерційних компаній замислюються про добровільну міграції з Oracle на вільну систему управління базами даних PostgreSQL.
Що набувають і втрачають компанії при такому переході? Відповідь на це питання шукали учасники конференції PgConf, яка пройшла на початку лютого в Москві.
На ній начальник відділу технічного консалтингу по серверних технологій російського представництва Oracle Марк Рівкін запропонував порівнювати СУБД за наступними критеріями: продуктивність, безпеку, масштабованість, оновлюваність, рівень техпідтримки, робота з великими обсягами даних і ціна володіння. З таким підходом погодився і експерт компанії PostgreSQL-Consulting.com, фахівець з баз даних PostgreSQL, DB2 і Oracle, Ілля Космодемьянский.
Добре, давайте порівняємо. І почнемо з основного, на наш погляд, критерію.
Сукупна вартість володіння (Total Cost of Ownership або TCO).
Як відомо, основними складовими ТСО в світі софта є ціна придбання і вартість підтримки продукту. Певне значення мають і витрати на адміністраторів баз даних (DBA), але, згідно з результатами досліджень HeadHunter, ці витрати різняться в межах 10%.
Варто визнати: ціна придбання Oracle висока, так само як і вартість підтримки. Крім того, кожну додаткову функцію доводиться купувати окремо, причому за чималі гроші. Про це вірно сказав Ілля Космодемьянский: «Ліцензії придумують недурні люди: Express і Standard-one випущені для того, щоб ви купили Enterprise і RAC».
Для прикладу наведемо вартість ліцензії Oracle Enterprise Edition для одного 4-х ядерного CPU і ціну супроводу на один рік - близько 7,5 мільйонів рублів.
Вартість для ваших рішень можна прикинути в різних калькуляторах:
http://oracle.axoft.ru/catalog/rubric.php?RUBRIC_ID=322
http://www.fors.ru/services/delivery-oracle/calculation/
Як ви вже здогадалися, саме TCO є ударним аргументом на користь PostgreSQL, оскільки в разі вибору open-source СУБД ціна придбання є нульовою, аналогічна ситуація і з вартістю супроводу. Втім, про це критерії варто поговорити окремо.
супровід
Якщо ви думаєте, що «безкоштовно» - це синонім слова «погано», то глибоко помиляєтеся. Так, у випадку з PostgreSQL виникли проблеми буде вирішувати «ком'юніті», а не високооплачувана (вами!) Група професіоналів. І тому цілком ймовірно, що це буде зроблено з деякою затримкою, але вона, як правило, не дуже критична, а значить, не призведе до серйозних наслідків. Для тих же компаній, кого такий підхід не влаштовує, є вихід: організації, які займаються професійною підтримкою PostgreSQL на високому рівні. Їхні послуги, звичайно, не безкоштовні, але вартість і умови більш ніж демократичні: немає річних ліцензій, штрафів за пропуск оплат і інших «приємних» сюрпризів, якими славиться підтримка Oracle.
До речі, а ви в курсі, що вартість супроводу Oracle в рік становить майже чверть вартості ліцензії? Причому ця сума щорічно зростає на 3% -5%. У доларах, звичайно. З більш детальною інформацією можна ознайомитися ось тут:
http://www.fors.ru/upload/magazine/03/http_texts/fors_technical_support1.html
продуктивність
Ілля Космодемьянский визнає, що оскаржувати технічне першість Oracle нерозумно. У загальному випадку ця СУБД забезпечує більше транзакцій в секунду (TPS), ніж PostgreSQL. У скільки разів? А ось на це питання точно відповісти поки ніхто не зміг. Для того щоб порівняти продуктивність Oracle і PostgreSQL, необхідно провести їх тестування в ідентичних умовах: на однаковому «залізі» з рівною навантаженням, використовуючи оптимальні операційні і файлові системи, а також здійснивши який можна порівняти за рівнем «тюнінг» СУБД.
Складність дотримань цих умов, їх висока трудомісткість, відсутність кваліфікованих DBA обмежують подібні дослідження.
Проте, на сайті pgconf представлені деякі цифри по продуктивності PostgreSQL, правда, без вказівки посилань на джерела:
- сайт Держдуми РФ - 100 ГБ даних, 400 000 хітів в день;
- «Яндекс» - 500 млн транзакцій на добу, 5+ ТБ даних на чотири Шарда;
- Coub.com - 400 млн переглядів на добу, 10 000 запитів в секунду.
Безпека
Про яку безпеку згадував Марк Рівкін? Напевно, про опції типу Oracle advanced security або Label security, які входять тільки в найдорожчий пакет Enterprise edition. Це дійсно «круті« фічі », але вони не настільки актуальні в умовах очікування нових санкцій, які можуть привести до повної відмови в технічній підтримці продукту або, що ще більш катастрофічно, до відключення наших хмарних БД.
масштабованість
Тепер давайте подивимося, як йдуть справи з масштабністю в Oracle. Починаючи з версії Standard edition, надається всім відомий RAC (чотири сокета). Однак при роботі з highload-проектами, вам, швидше за все, доведеться купити Enterprise edition, що влетить у копієчку.
У той же час співтовариство PostgreSQL безкоштовно надає і розширення на зразок PL / Proxy від компанії Skype, яке дозволяє шардіровать інформацію по кластеру БД, і окремі кластерні рішення, що базуються на PostgreSQL - Postgres-XC і Postgres-XL .
оновлюваність
Oracle не женеться за частотою релізів. Як правило, новий реліз виходить раз в два-три роки і відображає якісні зміни відповідно до потреб ринку. Простежимо хронологію:
1998 рік - випущена версія 8i Release 1 (8.1.5), «i» в назві означає «internet», символізуючи підтримку інтернету.
2001 рік - випущена версія 9i Release 1 (9.0.1), підтримка XML, поява RAC.
2004 рік - випущена версія 10g Release 1 (10.1.0), «g» в назві означає «grid» ( «мережа»), символізуючи підтримку грід-обчислень.
2007 рік - випущена версія 11g Release 1 (11.1.0.6).
2013 рік - випущена версія 12c (12.1.0.1), «с» в назві означає «cloud» ( «хмара»). Основне нововведення релізу - підтримка підключаються баз даних, яка забезпечує властивості мультіарендності і динамічної міграції БД.
Крім того, щоквартально випускаються критичні патчі.
Ще більш неквапливий при зміні номера версії PostgreSQL: реліз виходить приблизно раз в п'ять років. Але, на відміну від Oracle, додавання нових функцій і оновлення існуючих відбувається, по суті, постійно. Так що, якщо ви готові ризикнути стабільністю заради функціональності, оновлювати СУБД можна хоч кожен день.
Обсяг змін до межрелізних оновлення можна побічно оцінити з того факту, що їх короткий опис займає кілька екранних сторінок.
Провідний розробник PostgreSQL Олег Бартунов вважає, що спектр можливостей цієї СУБД розширюється набагато швидше, ніж у Oracle. Тому цілком можливо, що в самий найближчий час PostgreSQL займе лідируючі позиції в даному напрямку.
Робота з дуже великими даними
Так само як і у випадку з продуктивністю, порівнювати СУБД за цим критерієм досить складно. З одного боку, Enterprise версія Oracle при інших рівних умовах повинна бути продуктивніше PostgreSQL принаймні за рахунок in-memory технології, але для отримання конкретних цифр необхідно порівнювати результати на робочих запитах. З іншого - PostgreSQL не стоїть на місці: у версії 9.4 з'явилися huge pages, що дає приріст продуктивності від 10% до 30% на машинах з великим об'ємом пам'яті.
Для тих, хто хоче мати деякі опорні цифри, ми зібрали статистику:
- сайт оголошень «Авіто» (250 млн переглядів, 7 млн відвідувачів на добу), кількість серверів БД - близько 30. Розмір майстер-бази - 1.5 ТБ, більше 3 000 запитів в секунду на перегляд інформації і близько 1 500 запитів в секунду на зміну.
- Хмарний сервіс «Мій склад» з відносно «важкими» запитами до БД: 6 серверів Intel забезпечують одночасну роботу 2 000 користувачів, що генерують до 1 400 транзакцій в секунду на БД розміром 700 ГБ.
- Компанія «Яндекс» мігрувала з Oracle в частині поштової системи: розмір БД - 2 ТБ (15+ млрд рядків), продуктивність 40 000 запитів в секунду. Більш детальну інформацію можна знайти тут: http://www.slideshare.net/yandex/postgresql-39692656 .
Отже, який же рада ми можемо дати тим, хто стоїть перед вибором СУБД? PostgreSQL представляється досить зрілою системою, здатною забезпечити потреби середніх, а іноді і великих корпорацій (за прикладами далеко ходити не треба - «Яндекс», «Авіто», Skype). Тому, якщо ваш проект ще не виведений в «продуктив» або існує безболісний варіант спробувати різні СУБД, то це варто зробити. Як в такому випадку мінімізувати ризики? На це питання існує тільки одна відповідь: необхідно розрахувати, потім емулювати бойове навантаження і, врешті-решт, оцінити результат. До речі, «Перфоманс Лаб» це вміє.
Якщо ж перед вами стоїть гостра проблема «імпортозаміщення» вже працюючої системи, то не варто ризикувати і, помолившись індійському богу Ганеші, запускати скрипт міграції з Oracle в PostgreSQL (а такий скрипт є). Як радить технічний директор 404 Group Роман Друзягін, спочатку потрібно протестувати систему, зафіксувати всі проблеми, знайти шляхи їх вирішення, провести декілька тестових міграцій і тільки потім, гарненько виспавшись, влаштовувати час «Ч».
Порівняння PostgreSQL, Oracle та MySQL на бойовому навантаженні
Якщо ви хочете докладніше ознайомитися з можливостями обох СУБД, ми підібрали для вас посилання:
http://db-engines.com/en/ranking_trend/system/Oracle%3BPostgreSQL - DB-Engines Ranking - Trend of Oracle vs. PostgreSQL Popularity.
http://www.ocs.ru/OCS/media/Products/Oracle/Сравнение-СУБД-Oracle-и-Microsoft.pdf - інформація про Oracle Database.
http://pgconf.ru/ - Російська конференція розробників і користувачів PostgreSQL.
http://open.cnews.ru/top/2014/12/17/hroniki_importozameshheniya_rossiyskie_razrabotchiki_postgresql_godami_ne_mogut_nayti_sponsora_590991
http://etersoft.ru/about/news/307-postgresql
http://www.sai.msu.su/~megera/postgres/talks/npp-dbms.pdf
http://db-engines.com/en/ranking_trend/system/Oracle%3BPostgreSQL
http://oracle.1001-soft.ru/Oracle_sravneneie_postgresql.html
http://habrahabr.ru/company/mailru/blog/248689/
http://gov.cnews.ru/top/2015/01/28/osnovatel_envizhn_investiroval_v_rossiyskuyu_komandu_razrabotchikov_postgresql_592089
http://gov.cnews.ru/news/top/index.shtml?2015/02/10/592592
http://gov.cnews.ru/top/2015/02/06/gosudarstvo_vydelit_celevye_granty_dlya_migracii_na_svobodnoe_po_592476
http://fondpi.ru/posts/1335526
http://open.cnews.ru/news/top/index.shtml?2015/02/09/592567
http://soft.cnews.ru/news/softbox/13567/
http://citforum.ru/database/articles/trends/3.shtml
http://www.interface.ru/home.asp?artId=23923
http://www.iso27000.ru/chitalnyi-zai/zaschita-personalnyh-dannyh/obespechenie-zaschity-personalnyh-dannyh-v-subd-oracle
http://www.gazeta.ru/business/news/2014/04/30/n_6119681.shtml
http://smartsourcing.ru/blogs/informatsionnaya_bezopasnost/2593
http://habrahabr.ru/company/mailru/blog/248845/
http://habrahabr.ru/company/mailru/blog/182088/
http://www.ocs.ru/OCS/media/Products/Oracle/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8 % D0% B5-% D0% A1% D0% A3% D0% 91% D0% 94-Oracle-% D0% B8-Microsoft.pdf
http://oracle.axoft.ru/catalog/rubric.php?RUBRIC_ID=323
http://oracle.axoft.ru/images/Security_OracleDB.pdf
Oracle vs PostgreSQL: яку СУБД вибрати?Що набувають і втрачають компанії при такому переході?
Php?
До речі, а ви в курсі, що вартість супроводу Oracle в рік становить майже чверть вартості ліцензії?
У скільки разів?
Отже, який же рада ми можемо дати тим, хто стоїть перед вибором СУБД?
Як в такому випадку мінімізувати ризики?
Shtml?
Shtml?
Asp?