AWS Babelfish pour PostgreSQL: une chance de perdre le filet de certains coûts de licence SQL Server?

  • FrançaisFrançais


  • Re: inventer Arrivé en 2021, Babelfish est un projet AWS qui fournit un point de terminaison pour PostgreSQL compatible avec Microsoft SQL Server, l’idée étant de permettre le portage d’une application sans avoir à modifier le code.

    L’idée derrière Babelfish est que les organisations ont des applications utilisant des bases de données SQL Server qu’elles aimeraient migrer vers PostgreSQL, mais que l’effort et les risques impliqués dans le portage sont tels qu’ils sont bloqués.

    Pourquoi AWS fournit-il cela? L’idée est d’attirer de nouveaux clients soit vers Aurora compatible PostgreSQL, soit vers son PostgreSQL RDS (Relational Database Service).

    Babelfish est actuellement en avant-première privée pour Aurora. Il est écrit en C et PL / pgSQL et sortira en open source en 2021, sous la licence Apache 2.0; il devrait fonctionner avec n’importe quelle saveur de PostgreSQL. Le nom est un clin d’œil à Guide de l’auto-stoppeur de la galaxie par Douglas Adams, dans lequel le Babel Fish, «peut-être la chose la plus étrange de l’univers», permet à quelqu’un de comprendre n’importe quelle langue en se nichant dans son oreille.

    Babelfish était également un précurseur désormais disparu de Bing Translator appartenant à AltaVista / Yahoo!.

    SQL Server est le troisième moteur de base de données le plus populaire selon le classement des moteurs de base de données, derrière Oracle et MySQL, mais avec presque le double du score de PostgreSQL (Aurora est actuellement 44e).

    Une partie de cette popularité est due au fait que SQL Server existe en tant que SGBD gratuit capable mais limité en taille sous la forme de SQL Server Express, ainsi que des versions d’entreprise dont la licence est coûteuse.

    Microsoft adapte la plupart de sa documentation et des exemples pour les développeurs à SQL Server, ce qui signifie que de nombreux projets commencent à l’utiliser, dont certains vont se développer et finir par nécessiter des licences.

    Vous convient sans serveur! Google propose un service de portage de bases de données SQL sur mesure pour son cloud

    LIRE LA SUITE

    La migration des données est relativement simple, mais le portage des applications est plus gênant, en fonction du nombre de fonctionnalités spécifiques à SQL Server utilisées et des composants installés. C’est un produit énorme et possède son propre langage, appelé Transact-SQL ou T-SQL, et des fonctionnalités supplémentaires, notamment Analysis Services, Reporting Services et Machine Learning Services.

    Babelfish facilite le portage en fournissant deux fonctionnalités clés. Premièrement, il comprend le protocole Tabular Data Stream (TDS) que SQL Server utilise pour les demandes et les réponses entre les clients et les serveurs. Deuxièmement, il comprend les types de colonnes T-SQL et SQL Server, les traduisant en code PostgreSQL équivalent.

    En utilisant Babelfish, il est possible de se connecter à PostgreSQL en utilisant des pilotes SQL Server et il se comporte comme s’il s’agissait de SQL Server – dans ses limites. Tout ne fonctionne pas; mais selon Tobias Ternström (qui a travaillé chez Microsoft sur des bases de données open source pendant 10 ans, puis chez Google, et dirige maintenant la gestion de produits pour Aurora et RDS chez AWS), «soit vous obtenez exactement le même comportement de votre requête que vous aurait obtenu sur Microsoft SQL Server, ou vous obtenez une erreur. Vous n’obtenez pas quelque chose entre les deux. Ternström parlait à la conférence virtuelle re: Invent d’AWS, qui a débuté cette semaine.

    Si quelque chose ne fonctionne pas ou si les développeurs souhaitent ajouter de nouvelles fonctionnalités, ils peuvent choisir entre modifier ou écrire un nouveau code T-SQL, ou utiliser PL / pgSQL (Procedural Language / PostgreSQL) via le pilote SQL Server. Les deux sont pris en charge. «La performance entre les deux devrait être négligeable», a déclaré Ternström.

    Quelle est l’étendue de la compatibilité? C’est une question clé, et actuellement elle n’est pas tout à fait claire. «La réponse simple est peut-être», a déclaré Ternström, se demandant si une fonctionnalité particulière fonctionnera. «Nous nous sommes concentrés sur les parties les plus couramment utilisées de T-SQL, d’après ce que nous comprenons.»

    Il a mentionné certaines choses qui fonctionnent, notamment les procédures stockées, les curseurs, les curseurs côté client, les fonctions scalaires et table et les transactions imbriquées (même si les transactions imbriquées ne font pas partie de PL / pgSQL). Le projet devrait également s’améliorer au fil du temps, en particulier une fois qu’il est open source.

    Le fruit à portée de main pour Babelfish sera pour les projets qui utilisent SQL Server mais utilisent peu ses fonctionnalités avancées, avec des économies importantes sur les frais de licence. Les projets qui utilisent en profondeur les capacités de SQL Server (et qui tirent donc une meilleure valeur de son coût) peuvent être moins adaptés.

    Álvaro Hernández de la société de support PostgreSQL Ongres est enthousiaste, comme vous vous en doutez. Il a déclaré que «la compatibilité ne sera pas à 100% au lancement».

    «Mais tant qu’il est suffisamment élevé», a-t-il poursuivi, «cela permettra une transition transparente d’une base de données commerciale et propriétaire vers la base de données open source Postgres pour des milliers, des millions d’utilisateurs. Et l’approche adoptée pour l’exactitude (si une fonctionnalité n’est pas pris en charge, une erreur est générée… est solide et construit la confiance sur le succès des migrations. »Il aimerait voir le projet« réintégré dans la base de code PostgreSQL principale. »

    AWS s’améliore-t-il avec l’open source? Peut-être; mais il est à noter que si PostgreSQL est open source, Aurora ne l’est pas. Aurora est une base de données propriétaire avec deux variantes, l’une compatible avec MySQL, l’autre compatible avec PostgreSQL. AWS propose PostgreSQL lui-même en tant que service distinct.

    «Aurora est probablement le meilleur choix lorsque la haute disponibilité, l’évolutivité et l’élasticité sont les plus importantes. PostgreSQL peut fournir une latence plus faible sur le stockage en mode bloc, et est probablement moins cher », affirme l’ancien DBA du CERN Frank Pachot, maintenant consultant chez DBI Services.

    Cela dit, “il y a encore une certaine confusion et certains utilisateurs d’Aurora demandent de l’aide à la communauté PostgreSQL”, a-t-il ajouté. “La communauté PostgreSQL aide beaucoup ses utilisateurs car ils connaissent le moteur (qui est très bien documenté, et le code source et les commentaires de la source sont accessibles). Mais ils ne peuvent rien faire pour Aurora car nous ne savons même pas ce qui a été modifié … Je pense aussi que la communauté PostgreSQL apprécierait que les améliorations apportées par Amazon sur le code PostgreSQL soient partagées avec la communauté.

    L’open source pour quelque chose comme Babelfish est une victoire facile pour AWS; mais il pourrait faire beaucoup plus, s’engager avec la communauté.

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *