PostgreSQL présente de nombreux avantages convaincants, dont certains ne se trouvent dans aucun autre système de gestion de base de données. Cet article décrira ceux qui sont les plus intéressants pour le développeur Oracle cherchant à effectuer une migration ou à rechercher des alternatives pour un nouveau développement.
Pour éviter que cet article ne devienne une autre liste de fonctionnalités PostgreSQL, il s'en tiendra aux fonctionnalités qui le différencient spécifiquement d'Oracle et aux avantages que ces différences créent.
Fédération vs Wrappers de données étrangers
Oracle dispose d'une fonctionnalité appelée Fédération qui permet aux tables d'autres bases de données d'être traitées comme des données locales. PostgreSQL passe à 11 avec des wrappers de données étrangères. Il est incroyablement supérieur au système de fédération, peut être accroché à tout ce qui ressemble à distance à des données et ne coûte rien en frais. Cela fait de PostgreSQL une excellente plate-forme ETL, même si vous ne l'utilisez que pour l'ingestion de données.
plSQL contre tout le reste
Oracle a un langage de programmation intégré appelé plSQL. PostgreSQL en a environ 80 environ. Vraiment. Le système d'extension de PostgreSQL est utilisé pour créer des langages procéduraux en tant que plug-ins, et il existe des liaisons pour à peu près n'importe quel langage auquel vous pouvez penser. Et s'il n'y en a pas, vous pouvez toujours suivre Mark Wong pour savoir comment créer un emballage pour votre favori personnel.
Programmation d'applications
Oracle fournit une API d'application pour communiquer avec la base de données. PostgreSQL fournit également une API pour des langages pratiques et fiables. Cependant, le produit est open source, il n'y a donc pas de citoyens du développement de seconde classe. Vous pouvez accéder à tout ce que PostgreSQL a à offrir en incluant le fichier d'en-tête dans votre projet. Faites ce que vous voulez avec.
Internationalisation et localisation
Oracle fournit une boîte à outils de globalisation. PostgreSQL est conçu à partir de zéro pour s'appuyer entièrement sur des services système bien connus et largement compatibles pour la localisation. Il peut utiliser n'importe quel codage de caractères, classement et page de codes fournis par le système d'exploitation.
Développement Web
Oracle reconnaît l'existence de HTML via HTML DB. PostgreSQL prend nativement en charge JSON, XML et intègre Javascript en tant que back-end langage de codage, que vous pouvez utiliser en même temps que Java ou tout autre langage frontal de votre choix.
Authentification
Oracle a un système d'authentification intégré (un clin d'œil ici à Proxy Auth, qui est un peu plus flexible). PostgreSQL s'appuie sur les protocoles Host Based Authentication et SASL pour connecter n'importe quel système d'authentification que l'hôte peut prendre en charge, et quelques-uns qui se connectent directement à PostgreSQL. Cela offre un large éventail de possibilités d'authentification ainsi que la possibilité de décharger le processus d'authentification sur d'autres machines.
Extensibilité
Oracle dispose d'un système de plug-ins avec principalement des plug-ins propriétaires. PostgreSQL dispose d'un système d'extension pris en charge par la communauté générale, avec des milliers de plug-ins disponibles.
Lire l'évolutivité
Oracle a une assez bonne évolutivité de lecture verticale. PostgreSQL peut créer un cluster de lecture pratiquement illimité. Le nombre de nœuds n'est limité que par la quantité de ressources que vous souhaitez y consacrer.
Coût
Il est difficile de battre "gratuit", et Oracle ne fait même pas d'efforts. Avouons-le, Oracle est tout simplement ridiculement cher, et cela ne les dérange pas de vous facturer à nouveau pour chaque instance.
Ce n'est pas non plus une comparaison linéaire. L'un des plus grands avantages de PostgreSQL est que vous pouvez avoir toutes les instances que vous souhaitez, sans frais supplémentaires. (Je suppose que c'est un coût supplémentaire de + 0,00 $, ou multipliez par 0,00 $, vous décidez).
Il n'est pas juste (pour PostgreSQL) de comparer le coût d'une seule instance d'Oracle à une seule instance de PostgreSQL. Une fois que vous aurez goûté à la liberté de la gratuité, il sera difficile de revenir à tout brouiller dans une seule instance juste pour réduire les coûts.
Combien devrait coûter une base de données temporaire qui transforme les données sur le chemin de l'entrepôt ? Je pense que la gratuité suffit. Que diriez-vous d'une base de données transitoire pour les rapports ? Je vais prendre gratuitement pour ça aussi. Que diriez-vous de celui qui est le point d'ingestion de données pour ETL ? La gratuité c'est bien. J'aime la gratuité. C'est très, euh… libérateur.
Performances
Non attends! Écoutez-moi sur celui-ci. J'ai déjà mentionné que PostgreSQL peut créer un nombre illimité de nœuds dans un cluster de lecture. Cela peut diluer le coût de toute opération de lecture particulière à près de zéro. Mais il y a aussi une autre manière dont PostgreSQL est plus performant qu'Oracle.
Étant donné que PostgreSQL ne coûte rien par nœud, vous pouvez l'ajuster différemment pour chaque charge de travail. Bien sûr, vous pouvez également le faire avec Oracle, mais vous paierez par nœud pour pouvoir le régler de cette façon. Donc, si vous souhaitez différencier les paramètres de réglage de votre entrepôt vers OLTP pour les rapports au lac de données, PostgreSQL rend cela assez facile, tout en étant facile pour le portefeuille.
Bien sûr, il y a beaucoup plus de fonctionnalités intéressantes dans PostgreSQL, mais j'ai déjà écrit cet article il y a quelques mois. Faites-moi savoir dans les commentaires si vous avez migré vers PostgreSQL pour toute autre raison.