Что такое расширение PostgreSQL для Visual Studio Code? (Предварительная версия)

Расширение PostgreSQL для Visual Studio Code упрощает управление базами данных и разработку баз данных PostgreSQL. Вы можете подключаться к базам данных PostgreSQL, записывать и выполнять запросы, а также управлять объектами базы данных, не покидая Visual Studio Code.

Расширение интегрируется со службами PostgreSQL, управляемыми Azure, включая:

  • Azure HorizonDB — облачная служба PostgreSQL, созданная для корпоративных рабочих нагрузок уровня 1. HorizonDB предлагает дизагрегированную архитектуру хранения и вычислений, низкие задержки при фиксации транзакций, быстрое переключение при сбое, масштабирование чтения с балансировкой нагрузки на доступных для чтения HA-репликах и глубокую интеграцию ИИ.

Одно и то же расширение работает с обоими сервисами. Где поведение отличается (например, конечные точки подключения или поддерживаемые методы проверки подлинности), оно вызывается в следующих разделах.

Установка расширения

Расширение PostgreSQL можно установить непосредственно из Extensions Marketplace в Visual Studio Code. Выполните следующие действия:

  1. Откройте представление расширений в Visual Studio Code, выбрав значок Extensions в строке действий или с помощью команды View: Extensions.
  2. Найдите PostgreSQL в Extensions Marketplace.
  3. Выберите расширение PostgreSQL , созданное корпорацией Майкрософт, и выберите "Установить".

При установке расширения значок слона отображается для представления страницы PostgreSQL на боковой панели Visual Studio Code.

Features

Расширение PostgreSQL для Visual Studio Code предоставляет следующие функции для Azure HorizonDB.

Диспетчер соединений

Диспетчер соединений упрощает подключение к локальным и облачным базам данных PostgreSQL. К ключевым функциям относятся:

  • Поддержка нескольких профилей подключений, поэтому вы можете подключаться к нескольким экземплярам PostgreSQL и управлять ими параллельно, включая сочетание кластеров Azure HorizonDB.
  • Разбор строки подключения для бесперебойного подключения, независимо от того, подключаетесь ли вы к локальной базе данных или к кластеру Azure HorizonDB.
  • Интеграция с Azure HorizonDB для прямого просмотра и фильтрации экземпляров по подписке, группе ресурсов, серверу или кластеру и базе данных.

конечные точки подключения Azure HorizonDB

Azure HorizonDB предоставляет две конечные точки, которые можно добавить в расширение в виде отдельных профилей подключений:

  • Конечная точка чтения и записи — подключается к основной, которая принимает как транзакции чтения, так и записи. Используйте этот эндпоинт для операций записи приложений, изменений схемы и любых операций чтения, требующих самых последних зафиксированных данных. Конечная точка указана на странице кластера Overview и на странице Replicas на портале Azure.
  • Конечная точка для чтения — автоматически распределяет нагрузку между всеми доступными для чтения подключениями к репликам высокой доступности в кластере. Используйте эту конечную точку для операций горизонтального масштабирования, отчетов и аналитики. Сегодня поддерживается до четырех реплик HA, доступных для чтения (в дальнейшем — до 8), при этом размер каждой из них идентичен размеру основного экземпляра.

Обычно в диспетчер подключений сохраняют два профиля: один указывает на конечную точку для чтения и записи, второй — на конечную точку чтения, а затем переключаются между ними в обозреватель объектов в зависимости от текущей задачи.

обозреватель объектов

Расширенный обозреватель объектов предоставляет иерархическое представление объектов базы данных, что упрощает просмотр схем, таблиц, представлений и функций. К заметным функциям относятся:

  • Дополнительные параметры фильтрации для быстрого поиска определенных объектов.
  • Возможности создания, изменения и удаления объектов базы данных, таких как таблицы, представления и хранимые процедуры.
  • Визуализация схем и связей базы данных для упрощенной навигации.
  • Для Azure HorizonDB можно проверить 55+ разрешенных расширений, доступных в кластере, с помощью представления каталога pg_available_extensions непосредственно из Редактор запросов.

Редактор запросов

Редактор запросов улучшает процесс разработки и выполнения запросов с помощью следующих возможностей:

  • IntelliSense с поддержкой контекста для автозаполнения ключевых слов SQL, имен таблиц и функций.
  • Выделение синтаксиса и автоматическое форматирование для повышения удобства чтения запросов.
  • Отслеживание журнала запросов, чтобы можно было повторно использовать ранее выполненные запросы.

Средство просмотра результатов

Средство просмотра результатов позволяет взаимодействовать с результатами запроса с помощью таких функций, как:

  • Экспорт результатов в форматы CSV, JSON или Excel.
  • Параметры поиска, фильтрации и сортировки для эффективного анализа данных.
  • Представления персистентных данных для поддержания контекста при переходе между вкладками.

Визуализация схемы

Визуализатор схемы предоставляет интерактивное представление структуры базы данных на основе схемы без написания sql. Щелкните правой кнопкой мыши базу данных (или любой объект под ним) в обозреватель объектов и выберите Visualize Schema для запуска визуализатора.

К ключевым возможностям относятся:

  • Полное представление таблицы — каждая таблица отображается в виде карточки со столбцами и типами данных.
  • Линии связей — связи по внешним ключам между таблицами отображаются в виде соединительных линий, чтобы вы могли сразу увидеть, как устроена ваша модель данных.
  • Организация на основе схемы — таблицы группируются по родительской схеме (например, public, hr), ecomчто упрощает навигацию по большим базам данных.
  • Показать / скрыть по схеме — включайте или отключайте схемы целиком, чтобы сосредоточиться только на тех частях модели, которые вас интересуют, и сохранять читаемость диаграмм в крупных базах данных.
  • Сдвиг и масштабирование — навигация по большим схемам с помощью стандартных элементов управления сдвига, масштабирования и размещения на экране.

Визуализация схемы работает с любой подключенной базой данных, включая локальные кластеры PostgreSQL и Azure HorizonDB.

Визуализация графов Apache AGE

Визуализатор Apache AGE Graph позволяет запускать запросы Apache AGE Cypher и просматривать результаты в виде интерактивного графа на пограничных узлах. Расширение автоматически обнаруживает результаты запросов графа и визуализирует их с помощью визуального обозревателя, предоставляя выноски для каждого узла, элементы управления масштабированием и сдвигом, поддержку экспорта и стили, поддерживающие тему.

Расширение age по умолчанию указано в Azure HorizonDB, поэтому рабочие нагрузки графов могут выполняться в кластере HorizonDB без дополнительной настройки. Те же требования применяются при создании запросов Cypher к HorizonDB:

  • Возвращает полные объекты, а не скалярные свойства . Визуализатор графа нуждается в полных вершинах и пограничных объектах. Запросы, извлекающие скалярные свойства (RETURN p.name, p.title) возвращают значения обычного текста и не отображаются в визуализаторе. Вместо этого верните полные объекты и назовите переменную связи:

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r:BOUGHT_TOGETHER]->(b:Product)
        RETURN a, r, b
    $$) AS (a agtype, r agtype, b agtype);
    
  • Установите disp_label для осмысленного текста узлов — без disp_label узлы отображают внутренние идентификаторы. Задайте это свойство, чтобы визуализатор отображал полезные метки:

    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);
    
  • Сопоставьте выходные столбцы с возвращаемыми объектами - Оболочечное предложение AS (...) должно иметь по одному столбцу на каждый возвращаемый объект. Для многопереходных запросов включите каждый промежуточный узел и ребро:

    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);
    

Интеграция ИИ (Azure HorizonDB)

При подключении к кластеру HorizonDB Azure расширение предоставляет первоклассную область разработки для возможностей ИИ HorizonDB, которые предоставляются в качестве стандартных расширений и функций PostgreSQL:

  • pgvector
    • Векторные операторы данных и операторы сходства.
  • pg_diskann
    • Высокопроизводительный векторный индекс с расширенной фильтрацией, который оценивает WHERE предикаты во время обхода векторного графа так, чтобы отфильтрованные запросы сходства возвращались быстрее и согласованно.
  • azure_ai
    • Функции ИИ, такие как azure_ai.generate(), azure_ai.is_true()azure_ai.extract()и azure_openai.create_embeddings().
  • Управление моделями ИИ (ограниченная предварительная версия)
    • При включении в кластере HorizonDB автоматически развёртывает модель чата по умолчанию (gpt-5) и модель эмбеддингов по умолчанию (text-embedding-3-small) через Microsoft Foundry, устанавливает и настраивает azure_ai, а также подключает функции ИИ к этим управляемым моделям — без необходимости вручную управлять ключами. Вы также можете зарегистрировать собственные развертывания Microsoft Foundry (Bring Your Own Model) и обращаться к ним по псевдониму из тех же AI Functions.

Вы можете создавать и запускать эти ИИ-задачи непосредственно в Редактор запросов, а Results Viewer отображает векторный вывод и вывод JSONB прямо в интерфейсе.

Конвейеры и рабочие процессы

При подключении к кластеру Azure HorizonDB с конвейерами ИИ или pg_durable рабочими процессами расширение добавляет представление Конвейеры и рабочие процессы для просмотра истории выполнения и отслеживания состояния запусков.

Для доступа к ней щелкните правой кнопкой мыши базу данных и выберите конвейеры и рабочие процессы. Вы увидите две вкладки:

  • Конвейеры ИИ: просмотр определений конвейера, проверка запусков и отслеживание графиков выполнения с помощью типов шагов, закодированных цветом (синий для исходного или приемника, зеленый для обработки, розового для внешних вызовов). Используйте это для проверки поведения конвейера и проверки состояния выполнения, идентификаторов запуска, времени начала и длительности.
  • Рабочие процессы. Проверка pg_durable экземпляров рабочих процессов с помощью вкладок для графов, анализа времени и результатов. Перейдите из рабочего процесса в соответствующее определение конвейера для сравнения и устранения неполадок.

Это представление устраняет необходимость переключаться между SQL-запросами и редактором кода, упрощая мониторинг долго выполняющихся задач ИИ и оркестраций pg_durable.

Интеграция GitHub Copilot

Это расширение интегрируется с GitHub Copilot для предоставления помощи на основе искусственного интеллекта, адаптированной к разработке PostgreSQL. С помощью таких команд, как @pgsql, можно запрашивать базу данных, оптимизировать схему и запрашивать Copilot для выполнения определенных операций SQL в кластере HorizonDB Azure. Copilot учитывает контекст активного подключения, включая расширения, установленные на целевом объекте, поэтому подсказки для подключения к HorizonDB учитывают pgvector, pg_diskann, azure_ai и age.

Поддерживаемые операционные системы

Расширение PostgreSQL работает со следующими операционными системами:

  • Windows
  • macOS
  • Linux

Расширение поддерживает различные дистрибутивы Linux, включая Ubuntu, Fedora и Red Hat Enterprise Linux.

Отзывы и поддержка

Для ошибок, запросов функций и проблем используйте встроенное средство обратной связи в Visual Studio Code. Вы можете выполнить эту обратную связь с помощью меню справки Visual Studio Code или палитры команд PGSQL.

  • Меню "Справка"
    • Перейти к Помощь > Сообщить о проблеме
  • Палитра команд
    • Откройте палитру команд с помощью Ctrl + Shift + P и выполните: PGSQL: Report Issue