Qu’est-ce que l’extension PostgreSQL pour Visual Studio Code ? (Aperçu)

L’extension PostgreSQL pour Visual Studio Code simplifie la gestion et le développement de bases de données PostgreSQL. Vous pouvez vous connecter aux bases de données PostgreSQL, écrire et exécuter des requêtes et gérer des objets de base de données sans quitter Visual Studio Code.

L’extension s’intègre aux services PostgreSQL gérés par Azure, notamment :

  • Azure HorizonDB : service PostgreSQL natif cloud conçu pour les charges de travail d’entreprise de niveau 1. HorizonDB offre une architecture désagrégée de stockage et de calcul, des validations de transactions à faible latence, un basculement rapide, une échelle horizontale en lecture avec répartition de charge sur des réplicas haute disponibilité accessibles en lecture, ainsi qu’une intégration poussée de l’IA.

La même extension fonctionne avec les deux services. Lorsque le comportement diffère (par exemple, les points de terminaison de connexion ou les méthodes d’authentification prises en charge), il est appelé dans les sections qui suivent.

Comment installer l’extension

Vous pouvez installer l’extension PostgreSQL directement à partir de la Place de marché extensions dans Visual Studio Code. Suivez ces étapes :

  1. Ouvrez la vue Extensions dans Visual Studio Code en sélectionnant l’icône Extensions dans la barre d’activité ou en utilisant la commande View : Extensions.
  2. Recherchez PostgreSQL dans la Place de marché extensions.
  3. Sélectionnez l’extension PostgreSQL créée par Microsoft, puis sélectionnez Installer.

Lorsque vous installez l’extension, une icône d’éléphant apparaît pour représenter la page PostgreSQL dans la barre latérale de Visual Studio Code.

Features

L’extension PostgreSQL pour Visual Studio Code fournit les fonctionnalités suivantes pour Azure HorizonDB.

Gestionnaire des connexions

Le Gestionnaire de connexions simplifie la connexion aux bases de données PostgreSQL hébergées localement et dans le cloud. Les principales fonctionnalités sont les suivantes :

  • Prise en charge de plusieurs profils de connexion, vous pouvez donc vous connecter à plusieurs instances PostgreSQL et les gérer côte à côte, y compris une combinaison de clusters Azure HorizonDB.
  • Analyse des chaînes de connexion pour une connectivité transparente, que vous vous connectiez à une base de données locale, à un cluster Azure HorizonDB.
  • Intégration à Azure HorizonDB pour la navigation directe et le filtrage des instances par abonnement, groupe de ressources, serveur/cluster et base de données.

Points de terminaison de connexion d’Azure HorizonDB

Azure HorizonDB expose deux points de terminaison, que vous pouvez ajouter en tant que profils de connexion distincts dans l’extension :

  • Point de terminaison en lecture/écriture : se connecte au serveur principal, qui accepte les transactions de lecture et d’écriture. Utilisez ce point de terminaison pour les écritures d’applications, les modifications de schéma et toute charge de travail de lecture nécessitant les données validées les plus récentes. Le point de terminaison est répertorié sur la page Overview et sur la page Replicas du portail Azure.
  • Point de terminaison de lecture : répartit automatiquement la charge des connexions en lecture seule entre tous les réplicas haute disponibilité lisibles du cluster. Utilisez ce point de terminaison pour les charges de travail d’échelle horizontale en lecture, la création de rapports et l’analyse. Jusqu’à quatre réplicas haute disponibilité en lecture sont actuellement pris en charge (ce nombre passera à 8), chacun ayant la même taille que le principal.

Un modèle courant consiste à enregistrer deux profils dans le Gestionnaire de connexions : l’un pointant vers le point de terminaison de lecture/écriture et l’autre vers le point de terminaison de lecture, puis à basculer de l’un à l’autre dans l’Explorateur d’objets selon la tâche à effectuer.

Explorateur d'objets

L’Explorateur d’objets amélioré fournit une vue hiérarchique des objets de base de données, ce qui facilite la navigation et la gestion des schémas, des tables, des vues et des fonctions. Les fonctionnalités notables sont les suivantes :

  • Options de filtrage avancées pour localiser rapidement des objets spécifiques.
  • Fonctionnalités permettant de créer, de modifier et de supprimer des objets de base de données tels que des tables, des vues et des procédures stockées.
  • Visualisation des schémas et des relations de base de données pour la navigation simplifiée.
  • Pour Azure HorizonDB, vous pouvez consulter directement depuis l’Éditeur de requêtes les plus de 55 extensions autorisées disponibles sur le cluster via la vue de catalogue pg_available_extensions.

Éditeur de requêtes

L’Éditeur de requête améliore l’expérience de rédaction et d’exécution des requêtes avec :

  • IntelliSense prenant en charge le contexte pour lacomplétion automatique des mots clés SQL, des noms de tables et des fonctions.
  • Mise en surbrillance de la syntaxe et mise en forme automatique pour une meilleure lisibilité des requêtes.
  • Suivi de l’historique des requêtes, afin de pouvoir réutiliser les requêtes exécutées précédemment.

Visionneuse des résultats

La visionneuse de résultats vous permet d’interagir avec les résultats de requête via des fonctionnalités telles que :

  • Exportation de résultats vers des formats CSV, JSON ou Excel.
  • Rechercher, filtrer et trier des options pour analyser efficacement les données.
  • Vues de données persistantes pour maintenir le contexte lors de la navigation entre les onglets.

Visualisation de schéma

Le visualiseur de schéma vous donne une vue interactive basée sur un diagramme de votre structure de base de données sans écrire de code SQL. Cliquez avec le bouton droit sur une base de données (ou un objet sous celui-ci) dans le Explorateur d'objets, puis sélectionnez Visualize Schema pour lancer le visualiseur.

Les fonctionnalités clés sont les suivantes :

  • Vue table complète : chaque table est restituée sous forme de carte affichant ses colonnes et ses types de données.
  • Lignes de relation : les relations de clé étrangère entre les tables sont dessinées comme des lignes de connexion. Vous pouvez donc voir en un clin d’œil comment votre modèle de données s’adapte ensemble.
  • Organisation basée sur un schéma : les tables sont regroupées par leur schéma parent (par exemple, public, hr, ecom), ce qui facilite la navigation dans les bases de données volumineuses.
  • Afficher /masquer par schéma - Activer ou désactiver les schémas entiers pour vous concentrer uniquement sur les parties du modèle que vous vous souciez, et pour conserver les diagrammes lisibles sur les bases de données volumineuses.
  • Déplacement et zoom - Naviguez dans de grands diagrammes avec les commandes standard de déplacement, de zoom et d’ajustement à l’écran.

La visualisation de schéma fonctionne sur n’importe quelle base de données connectée, y compris les clusters PostgreSQL locaux et Azure HorizonDB.

Visualisation de graphes Apache AGE

Le visualiseur Apache AGE Graph vous permet d’exécuter des requêtes Apache AGE Cypher et d’explorer les résultats sous la forme d’un graphe de bord de nœud interactif. L’extension détecte automatiquement les résultats des requêtes de graphique et les affiche dans un explorateur visuel avec des légendes par nœud, des contrôles de zoom et de panoramique, une prise en charge de l’exportation et un style prenant en charge le thème.

L’extension age est répertoriée par défaut sur Azure HorizonDB. Les charges de travail de graphe peuvent donc s’exécuter sur un cluster HorizonDB sans configuration supplémentaire. Les mêmes exigences s’appliquent lorsque vous créez des requêtes Cypher sur HorizonDB :

  • Retourner des objets complets, et non des propriétés scalaires : le visualiseur de graphique a besoin d’objets de vertex et de bord complets. Les requêtes qui extraient les propriétés scalaires (RETURN p.name, p.title) retournent des valeurs de texte brut et ne s’affichent pas dans le visualiseur. Au lieu de cela, retournez les objets complets et nommez la variable de relation :

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r:BOUGHT_TOGETHER]->(b:Product)
        RETURN a, r, b
    $$) AS (a agtype, r agtype, b agtype);
    
  • Définir disp_label pour un texte de nœud significatif - Sans disp_label, les nœuds affichent des ID internes. Définissez cette propriété pour que le visualiseur affiche des étiquettes utiles :

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r:BOUGHT_TOGETHER]->(b:Product)
        SET a.disp_label = a.title
        SET b.disp_label = b.title
        RETURN a, r, b
    $$) AS (a agtype, r agtype, b agtype);
    
  • Mettre en correspondance les colonnes de sortie aux objets retournés : la clause wrapper AS (...) doit avoir une colonne par objet retourné. Pour les requêtes à sauts multiples, incluez chaque nœud intermédiaire et chaque arête :

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r1:BOUGHT_TOGETHER]->(mid:Product)-[r2:BOUGHT_TOGETHER]->(b:Product)
        RETURN a, r1, mid, r2, b
    $$) AS (a agtype, r1 agtype, mid agtype, r2 agtype, b agtype);
    

Intégration de l’IA (Azure HorizonDB)

Lorsqu'elle est connectée à un cluster Azure HorizonDB, l'extension vous offre une surface de création de première classe pour les fonctionnalités IA d'HorizonDB, qui sont exposées en tant qu'extensions et fonctions PostgreSQL standard :

  • pgvector
    • Types de données vectorielles et opérateurs de similarité.
  • pg_diskann
    • Un index vectoriel haute performance avec filtrage avancé, qui évalue les prédicats WHERE pendant la traversée du graphe vectoriel afin que les requêtes de similarité filtrées retournent plus rapidement et plus régulièrement.
  • azure_ai
    • Fonctions IA telles que azure_ai.generate(), , azure_ai.is_true()azure_ai.extract(), et azure_openai.create_embeddings().
  • AI Model Management (préversion limitée)
    • Lorsqu’il est activé sur le cluster, HorizonDB provisionne automatiquement un modèle de conversation par défaut (gpt-5) et un modèle d’incorporation par défaut (text-embedding-3-small) via Microsoft Foundry, installe et configure azure_ai, et envoie les fonctions IA à ces modèles managés , aucune gestion manuelle des clés requise. Vous pouvez également enregistrer vos propres déploiements Microsoft Foundry (« apportez votre propre modèle ») et les appeler à l’aide d’un alias depuis ces mêmes fonctions IA.

Vous pouvez créer et exécuter ces charges de travail IA directement à partir du Éditeur de requête, et la Visionneuse de résultats affiche le vecteur et la sortie JSONB inline.

Pipelines et flux de travail

Lorsqu’elle est connectée à un cluster Azure HorizonDB avec des pipelines d’IA ou pg_durable des workflows, l’extension fournit une vue Pipelines et workflows pour consulter l’historique d’exécution et surveiller l’état d’exécution.

Accédez-y en cliquant avec le bouton droit sur votre base de données et en sélectionnant Pipelines &Workflows. Vous verrez deux onglets :

  • Pipelines IA : affichez les définitions de pipeline, inspectez les exécutions et suivez les graphiques d’exécution avec des types d’étapes codés en couleur (bleu pour source/récepteur, vert pour le traitement, rose pour les appels externes). Utilisez-le pour vérifier le comportement du pipeline et vérifier l’état de l’exécution, les ID d’exécution, les heures de début et la durée.
  • Flux de travail : consultez les instances de workflow pg_durable dotées d’onglets pour les graphiques, l’analyse temporelle et les résultats. Accédez d’une exécution de flux de travail à sa définition de pipeline associée pour la comparaison et la résolution des problèmes.

Cette vue évite d’avoir à basculer entre les requêtes SQL et votre éditeur, ce qui facilite la surveillance des charges de travail d’IA de longue durée et des orchestrations pg_durable.

Intégration de GitHub Copilot

Cette extension s’intègre à GitHub Copilot pour offrir une assistance basée sur l’IA adaptée au développement PostgreSQL. Avec des commandes telles que @pgsql, vous pouvez interroger votre base de données, optimiser votre schéma et demander Copilot pour exécuter des opérations SQL spécifiques sur un cluster HorizonDB Azure. Copilot récupère le contexte de connexion en direct, y compris les extensions installées sur la cible. Par conséquent, les suggestions sur une connexion HorizonDB sont conscientes de pgvector, pg_diskann, azure_ai et age.

Systèmes d'exploitation pris en charge

L’extension PostgreSQL fonctionne avec les systèmes d’exploitation suivants :

  • Windows
  • macOS
  • Linux

L’extension prend en charge différentes distributions Linux, notamment Ubuntu, Fedora et Red Hat Enterprise Linux.

Commentaires et support

Pour les bogues, les demandes de fonctionnalités et les problèmes, utilisez l’outil de commentaires intégré dans Visual Studio Code. Vous pouvez effectuer ces commentaires via le menu Aide de Visual Studio Code ou la palette de commandes PGSQL.

  • Menu Aide
    • Accéder à Aide > Signaler un problème
  • Palette de commandes
    • Ouvrez la palette de commandes avec Ctrl + Shift + P et exécutez : PGSQL: Report Issue