sql >> Databáze >  >> RDS >> PostgreSQL

Oracle na PostgreSQL:Důvody pro migraci

PostgreSQL má několik přesvědčivých výhod, z nichž některé nenajdete v žádném jiném systému pro správu databází. Tento článek nastíní ty, které jsou nejzajímavější pro vývojáře Oracle, kteří chtějí provést migraci nebo prozkoumat alternativy pro nový vývoj.

Aby se tento článek nestal dalším seznamem funkcí PostgreSQL, bude se držet funkcí, které jej konkrétně odlišují od Oracle, a výhod, které tyto rozdíly vytvářejí.

Federace vs. zahraniční obaly dat

Oracle má funkci nazvanou Federation, která umožňuje, aby tabulky z jiných databází byly považovány za lokální data. PostgreSQL to nakopne až na 11 s cizími datovými obaly. Je fantasticky lepší než federační systém, lze jej připojit ke všemu, co vzdáleně připomíná data, a nestojí nic na poplatcích. Díky tomu je PostgreSQL skvělou platformou ETL, i když vše, k čemu ji používáte, je příjem dat.

plSQL vs. vše ostatní

Oracle má vestavěný programovací jazyk plSQL. PostgreSQL má někde kolem 80 nebo tak nějak. Opravdu. Rozšiřující systém PostgreSQL se používá k vytváření procedurálních jazyků jako zásuvných modulů a existují vazby pro téměř jakýkoli jazyk, na který si vzpomenete. A pokud ne, vždy můžete s Markem Wongem následovat, jak si vyrobit obal pro své osobní oblíbené.

Programování aplikací

Oracle poskytuje aplikační API pro komunikaci s databází. PostgreSQL také poskytuje API pro pohodlí a důvěryhodné jazyky. Produkt je však open source, takže neexistují žádní vývojáři druhé třídy. Můžete přistupovat ke všemu, co PostgreSQL nabízí, zahrnutím hlavičkového souboru do vašeho projektu. Dělejte si s tím, co chcete.

Internacionalizace a lokalizace

Oracle poskytuje sadu nástrojů pro globalizaci. PostgreSQL je od základů postaven tak, aby se při lokalizaci plně spoléhal na známé a široce kompatibilní systémové služby. Může používat jakékoli kódování znaků, řazení a kódovou stránku, kterou operační systém poskytuje.

Vývoj webu

Oracle uznává existenci HTML prostřednictvím HTML DB. PostgreSQL nativně podporuje JSON, XML a plug-iny Javascript jako back end kódovací jazyk, který můžete používat současně s Javou nebo jakýmkoli jiným frontendovým jazykem dle vašeho výběru.

Ověření

Oracle má vestavěný autentizační systém (zde kývněte na Proxy Auth, což je o něco flexibilnější). PostgreSQL se spoléhá na protokoly Host Based Authentication a SASL pro připojení jakéhokoli autentizačního systému, který hostitel může podporovat, a několik, které se zapojují přímo do PostgreSQL. To poskytuje obrovskou škálu možností autentizace spolu s potenciálem přesunout proces autentizace na jiné stroje.

Rozšiřitelnost

Oracle má zásuvný systém s většinou proprietárními zásuvnými moduly. PostgreSQL má rozšiřující systém, který je podporován širokou komunitou, s tisíci dostupných zásuvných modulů.

Škálovatelnost čtení

Oracle má poměrně dobrou škálovatelnost vertikálního čtení. PostgreSQL dokáže vytvořit prakticky neomezený čtecí cluster. Počet uzlů je omezen pouze množstvím zdrojů, které na něj chcete hodit.

Cena

Je těžké porazit „zdarma“ a Oracle se o to ani moc nesnaží. Přiznejme si to, Oracle je prostě směšně drahý a nevadí jim účtovat vám znovu každou jednotlivou instanci.

To také není lineární srovnání. Jednou z největších výhod PostgreSQL je, že můžete mít všechny instance, které chcete, bez dalších nákladů. (Myslím, že se jedná o dodatečné náklady + 0,00 $ nebo vynásobte 0,00 $, rozhodnete se).

Není spravedlivé (vůči PostgreSQL) porovnávat náklady jedné instance Oracle s jednou instancí PostgreSQL. Jakmile okusíte svobodu zdarma, bude těžké vrátit se k rušení všeho do jediné instance, jen abyste snížili náklady.

Kolik by měla stát dočasná databáze, která transformuje data na cestě do skladu? Myslím, že zdarma je dost. Co takhle přechodná databáze pro hlášení? Vezmu si za to také zdarma. A co takový, který je bodem příjmu dat pro ETL? Zdarma je dobré. Líbí se mi zdarma. Je to velmi, uh...osvobozující.

Výkon

Ne, počkej! Poslouchej mě v tomhle. Již jsem zmínil, že PostgreSQL může vytvořit neomezený počet uzlů v čtecím clusteru. To může snížit náklady na jakoukoli konkrétní operaci čtení téměř na nulu. Existuje však také další způsob, jak je PostgreSQL výkonnější než Oracle.

Protože PostgreSQL nestojí nic za uzel, můžete jej pro každé pracovní zatížení vyladit jinak. Samozřejmě to můžete udělat také s Oracle, ale za možnost vyladit to tímto způsobem budete platit za uzel. Pokud tedy chcete odlišit parametry ladění vašeho skladu na OLTP a hlášení do datového jezera, PostgreSQL to docela zjednoduší a přitom bude nenáročné na peněženku.

V PostgreSQL je samozřejmě mnohem přesvědčivějších funkcí, ale ten článek jsem již psal před několika měsíci. Dejte mi vědět v komentářích, pokud jste migrovali na PostgreSQL z jakéhokoli jiného důvodu.


  1. Optimalizujte výkon MySQL/MariaDB pomocí nástroje MySQLTunner

  2. Výkonnostní překvapení a předpoklady:DATEADD

  3. Pořízení výpisu tabulek v oracle 10g pomocí procedury PL/SQL

  4. Nested Loop Join v Oracle 11g