PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Oracle do PostgreSQL:powody migracji

PostgreSQL ma kilka przekonujących zalet, z których niektóre nie występują w żadnym innym systemie zarządzania bazami danych. W tym artykule przedstawimy te, które są najbardziej interesujące dla programisty Oracle, który chce przeprowadzić migrację lub zbadać alternatywy dla nowego rozwoju.

Aby ten artykuł nie stał się kolejną listą funkcji PostgreSQL, będzie on trzymał się funkcji, które odróżniają go od Oracle, oraz korzyści, jakie te różnice tworzą.

Federacja a zagraniczne opakowania danych

Oracle ma funkcję o nazwie Federacja, która umożliwia traktowanie tabel z innych baz danych jako danych lokalnych. PostgreSQL podnosi to do 11 z obcymi opakowaniami danych. Jest fantastycznie lepszy od systemu federacyjnego, można go podłączyć do wszystkiego, co zdalnie przypomina dane, i nic nie kosztuje. To sprawia, że ​​PostgreSQL jest świetną platformą ETL, nawet jeśli wszystko, do czego go używasz, to pozyskiwanie danych.

plSQL kontra wszystko inne

Oracle ma wbudowany język programowania o nazwie plSQL. PostgreSQL ma około 80 lub więcej. Naprawdę. System rozszerzeń PostgreSQL służy do tworzenia języków proceduralnych jako wtyczek, a istnieją powiązania dla niemal każdego języka, jaki możesz wymyślić. A jeśli tak nie jest, zawsze możesz śledzić wraz z Markiem Wongiem, jak zrobić opakowanie dla swojego ulubionego.

Programowanie aplikacji

Oracle udostępnia interfejs API aplikacji do komunikacji z bazą danych. PostgreSQL zapewnia również API dla wygody i zaufanych języków. Jednak produkt jest open source, więc nie ma obywateli drugiej kategorii rozwoju. Możesz uzyskać dostęp do wszystkiego, co PostgreSQL ma do zaoferowania, dołączając plik nagłówkowy do swojego projektu. Rób z nim, co chcesz.

Internacjonalizacja i lokalizacja

Oracle dostarcza zestaw narzędzi do globalizacji. PostgreSQL jest zbudowany od podstaw, aby całkowicie polegać na dobrze znanych i szeroko kompatybilnych usługach systemowych do lokalizacji. Może używać dowolnego kodowania znaków, sortowania i strony kodowej, które zapewnia system operacyjny.

Tworzenie stron internetowych

Oracle potwierdza istnienie HTML poprzez HTML DB. PostgreSQL natywnie obsługuje JSON, XML i obsługuje JavaScript jako zaplecze język kodowania, którego możesz używać jednocześnie z Javą lub dowolnym innym wybranym przez siebie językiem interfejsu.

Uwierzytelnianie

Oracle ma wbudowany system uwierzytelniania (ukłon w stronę Proxy Auth, który jest nieco bardziej elastyczny). PostgreSQL opiera się na protokołach Host Based Authentication i SASL, aby podłączyć dowolny system uwierzytelniania, który może obsługiwać host, oraz kilka, które można podłączyć bezpośrednio do PostgreSQL. Zapewnia to ogromny wachlarz możliwości uwierzytelniania wraz z możliwością przeniesienia procesu uwierzytelniania na inne maszyny.

Rozszerzalność

Oracle ma system wtyczek z większością zastrzeżonych wtyczek. PostgreSQL ma system rozszerzeń, który jest obsługiwany przez ogólną społeczność, z tysiącami dostępnych wtyczek.

Skalowalność odczytu

Oracle ma dość dobrą skalowalność odczytu w pionie. PostgreSQL może stworzyć praktycznie nieograniczony klaster odczytu. Liczba węzłów jest ograniczona tylko ilością zasobów, które chcesz w nią rzucić.

Koszt

Trudno jest pokonać „za darmo”, a Oracle nawet się nie stara. Spójrzmy prawdzie w oczy, Oracle jest po prostu absurdalnie drogi i nie mają nic przeciwko ponownemu naliczaniu opłat za każdą instancję.

To też nie jest porównanie liniowe. Jedną z największych zalet PostgreSQL jest to, że możesz mieć wszystkie instancje, które chcesz, bez dodatkowych kosztów. (Wydaje mi się, że jest to dodatkowy koszt + 0,00 USD lub pomnóż przez 0,00 USD, decydujesz).

Nie jest sprawiedliwe (dla PostgreSQL) porównywanie kosztów pojedynczej instancji Oracle do pojedynczej instancji PostgreSQL. Gdy już zasmakujesz wolności, trudno będzie wrócić do zamykania wszystkiego w jednej instancji tylko po to, by obniżyć koszty.

Ile powinna kosztować tymczasowa baza danych, która przekształca dane w drodze do hurtowni? Myślę, że za darmo wystarczy. Co powiesz na przejściową bazę danych do raportowania? Za to też wezmę za darmo. Co powiesz na taki, który jest punktem pozyskiwania danych dla ETL? Darmowe jest dobre. Lubię wolne. To bardzo, hm… uwalniające.

Wydajność

Nie, czekaj! Wysłuchaj mnie na tym. Wspomniałem już, że PostgreSQL może tworzyć nieograniczoną liczbę węzłów w klastrze odczytu. To może zmniejszyć koszt każdej konkretnej operacji odczytu prawie do zera. Ale jest też inny sposób, w jaki PostgreSQL jest bardziej wydajny niż Oracle.

Ponieważ PostgreSQL nic nie kosztuje na węzeł, możesz go dostroić inaczej dla każdego obciążenia pracą. Oczywiście możesz to zrobić również z Oracle, ale będziesz płacić za węzeł za możliwość dostrojenia go w ten sposób. Tak więc, jeśli chcesz odróżnić parametry dostrajania magazynu do OLTP od raportowania do jeziora danych, PostgreSQL sprawia, że ​​jest to dość łatwe i nadal jest łatwe w portfelu.

Oczywiście w PostgreSQL jest o wiele więcej atrakcyjnych funkcji, ale napisałem ten artykuł już kilka miesięcy temu. Daj mi znać w komentarzach, jeśli przeprowadziłeś migrację do PostgreSQL z jakiegokolwiek innego powodu.


No
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ograniczenie nakładania się dat Postgres

  2. Postgres kopiuje Heroku Production DB do lokalnego rozwoju DB

  3. PG::Błąd w klauzuli GROUP BY

  4. Adnotacja Spring Data @CreatedDate nie działa dla mnie

  5. Jak zrobić słuchacza bazy danych w javie?