Расширения PostgreSQL в Azure Cosmos DB для PostgreSQL
Область применения: Azure Cosmos DB для PostgreSQL (на базе расширения базы данных Citus до PostgreSQL)
PostgreSQL расширяет функциональные возможности базы данных с помощью расширений. Расширения позволяют объединить несколько связанных объектов SQL в одном пакете, который затем можно загрузить или удалить из базы данных с помощью одной команды. После загрузки в базу данных расширения могут действовать как встроенные функции. Дополнительные сведения о расширениях PostgreSQL см. на странице Упаковка связанных объектов в расширение.
Использование расширений PostgreSQL
Чтобы использовать расширения PostgreSQL, их необходимо сначала установить в базу данных. Чтобы установить определенное расширение, выполните команду CREATE EXTENSION, используя инструмент psql. При этом упакованные объекты будут загружены в базу данных.
Примечание.
Если CREATE EXTENSION
завершает работу ошибкой из-за отсутствия разрешения, попробуйте вместо этого выполнить функцию create_extension()
. Например:
SELECT create_extension('postgis');
Чтобы удалить расширение, установленное таким образом, используйте drop_extension()
.
Azure Cosmos DB для PostgreSQL в настоящее время поддерживает подмножество расширений ключей, как описано здесь. Другие расширения не поддерживаются. Вы не можете создать собственное расширение с помощью Azure Cosmos DB для PostgreSQL.
Расширения, поддерживаемые Azure Cosmos DB для PostgreSQL
В следующих таблицах перечислены стандартные расширения PostgreSQL, поддерживаемые в Azure Cosmos DB для PostgreSQL. Эти сведения также можно получить, выполнив SELECT * FROM pg_available_extensions;
.
Версии каждого расширения, установленного в кластере, иногда отличаются в зависимости от версии PostgreSQL (11, 12, 13, 14, 15 или 16). В таблицах перечислены версии расширений для каждой версии базы данных.
Расширение Citus
Расширение | Description | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
citus | Распределенная база данных Citus. | 9,5 | 10.2 | 11.3 | 12,1 | 12,1 | 12,1 |
Расширения типов данных
Расширение | Description | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
citext | Предоставляет тип строки символов без учета регистра. | 1.5 | 1,6 | 1,6 | 1,6 | 1,6 | 1,6 |
cube | Предоставляет тип данных для многомерных кубов. | 1.4 | 1.4 | 1.4 | 1.5 | 1.5 | 1.5 |
hll | Предоставляет структуру данных HyperLogLog. | 2.18 | 2.18 | 2.18 | 2.18 | 2.18 | 2.18 |
hstore | Предоставляет тип данных для хранения наборов пар "ключ — значение". | 1.5 | 1,6 | 1,7 | 1.8 | 1.8 | 1.8 |
isn | Предоставляет типы данных для международных стандартов нумерации продуктов. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
lo | Обслуживание больших объектов. | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 |
ltree | Предоставляет тип данных для иерархических древовидных структур. | 1,1 | 1,1 | 1.2 | 1.2 | 1.2 | 1.2 |
seg | Тип данных для представления сегментов линии или интервалов с плавающей точкой. | 1,3 | 1,3 | 1,3 | 1.4 | 1.4 | 1.4 |
tdigest | Тип данных для онлайн-накопления статистики на основе ранжирования, например квантили и обрезка. | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 |
topn | Тип для top-n JSONB. | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 |
Расширения для полнотекстового поиска
Расширение | Description | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
dict_int | Предоставляет шаблон словаря текстового поиска для целых чисел. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
dict_xsyn | Шаблон словаря текстового поиска для расширенной обработки синонимов. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
unaccent | Словарь для текстового поиска, который удаляет из лексем знаки ударения (диакритические знаки). | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 |
Расширения функций
Расширение | Description | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 15 |
---|---|---|---|---|---|---|---|
autoinc | Предназначено для автоприращения полей. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
earthdistance | Предоставляет средства для вычисления ортодромических расстояний на поверхности Земли. | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 |
fuzzystrmatch | Предоставляет несколько функций для определения сходства и расстояния между строками. | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1.2 |
insert_username | Предназначено для отслеживания изменений в таблице. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
intagg | Агрегатор и перечислитель целых чисел (устарело). | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 |
intarray | Предоставляет функции и операторы для управления массивами целых чисел, не содержащими значений null. | 1.2 | 1.2 | 1,3 | 1.5 | 1.5 | 1.5 |
moddatetime | Предназначено для отслеживания времени последнего изменения. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
orafce | Функции и операторы, эмулирующие подмножество функций и пакетов из Oracle RDBMS. | 4,9 | 4,9 | 4,9 | |||
pg_partman | Управляет секционированными таблицами по времени или идентификатору. | 4.7.4 | 4.7.4 | 4.7.4 | 5.1.0 | 5.1.0 | 5.1.0 |
pg_surgery | Функции для выполнения операции на поврежденной связи. | 1.0 | 1.0 | 1.0 | |||
pg_trgm | Предоставляет функции и операторы для определения сходства буквенно-цифрового текста на основе сопоставления триграмм. | 1.4 | 1.4 | 1.5 | 1,6 | 1,6 | 1,6 |
pgcrypto | Предоставляет функции шифрования. | 1,3 | 1,3 | 1,3 | 1,3 | 1,3 | 1,3 |
refint | Предназначено для поддержания целостности данных (устарело). | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
tablefunc | Предоставляет функции для полного управления таблицами, включая перекрестные таблицы. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
tcn | Активирует уведомления об изменениях. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
timetravel | Предназначено для реализации перехода по времени. | 1.0 | |||||
uuid-ossp | Создает глобально уникальные идентификаторы (UUID). | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 |
Расширения типов индекса
Расширение | Description | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
bloom | Метод доступа раскрытия — индекс на основе файла сигнатуры. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
btree_gin | Предоставляет примеры классов оператора GIN, которые реализуют поведение сбалансированного дерева для определенных типов данных. | 1,3 | 1,3 | 1,3 | 1,3 | 1,3 | 1,3 |
btree_gist | Предоставляет классы оператора индекса GiST, которые реализуют сбалансированное дерево. | 1.5 | 1.5 | 1.5 | 1,6 | 1,7 | 1,7 |
Расширения языка
Расширение | Description | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
plpgsql | Загружаемый процедурный язык PL/pgSQL. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
Прочие расширения
Расширение | Description | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
amcheck | Предназначено для проверки целостности отношений. | 1,1 | 1.2 | 1.2 | 1,3 | 1,3 | 1,3 |
dblink | Модуль, который поддерживает подключения к другим базам данных PostgreSQL из сеанса базы данных. Сведения об этом расширении см. в "dblink и postgres_fdw". | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
old_snapshot | Позволяет проверить состояние сервера, используемого для реализации old_snapshot_threshold. | 1.0 | 1.0 | 1.0 | |||
pageinspect | Проверяет содержимое страниц базы данных на низком уровне. | 1,7 | 1,7 | 1.8 | 1,9 | 1.11 | 1.12 |
pg_azure_storage | Интеграция Azure для PostgreSQL. | 1,3 | 1,3 | 1,3 | 1,3 | ||
pg_buffercache | Предоставляет средства для анализа того, что происходит в общем буферном кэше в режиме реального времени. | 1,3 | 1,3 | 1,3 | 1,3 | 1,3 | 1.4 |
pg_cron | Планировщик заданий для PostgreSQL. | 1.5 | 1,6 | 1,6 | 1,6 | 1,6 | 1,6 |
pg_freespacemap | Проверяет карту свободного места (FSM). | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pg_prewarm | Предоставляет способ загрузки реляционных данных в буферный кэш. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pg_stat_statements | Предоставляет средства для отслеживания статистики выполнения всех инструкций SQL, выполняемых сервером. Сведения об этом расширении см. в "pg_stat_statements". | 1,6 | 1,7 | 1.8 | 1,9 | 1,10 | 1,10 |
pg_visibility | Проверяет сведения о карте видимости и видимость на уровне страницы. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pgrowlocks | Предоставляет средства для отображения сведений о блокировке на уровне строк. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pgstattuple | Предоставляет средства для отображения статистических данных на уровне кортежей. | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 |
postgres_fdw | Оболочка для внешних данных, используемая для доступа к данным на внешних серверах PostgreSQL. Сведения об этом расширении см. в "dblink и postgres_fdw". | 1.0 | 1.0 | 1.0 | 1,1 | 1,1 | 1,1 |
sslinfo | Сведения о TLS/SSL-сертификатах | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
tsm_system_rows | Метод TABLESAMPLE, который принимает число строк в качестве ограничения. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
tsm_system_time | Метод TABLESAMPLE, который принимает время в миллисекундах в качестве ограничения. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
xml2 | Запросы XPath и XSLT. | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 |
Расширение Pgvector
Расширение | Description | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
pgvector | Поиск сходства вектора с открытым исходным кодом для Postgres | 0.5.1 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 |
Расширения PostGIS
Расширение | Description | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
PostGIS | Пространственные и географические объекты для PostgreSQL. | 3.3.4 | 3.4.1 | 3.4.1 | 3.4.1 | 3.4.1 | 3.4.1 |
address_standardizer | Используются для анализа адреса в составных элементы. Используется для поддержки шага нормализации геокодирования адресов. | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
postgis_sfcgal | Функции PostGIS SFCGAL. | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
postgis_topology | Пространственные типы и функции топологии PostGIS. | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
pg_stat_statements
Расширение pg_stat_statements предварительно загружено в каждом кластере Azure Cosmos DB для PostgreSQL, чтобы обеспечить возможность отслеживания статистики выполнения инструкций SQL.
Параметр pg_stat_statements.track
определяет, какие инструкции учитываются расширением. По умолчанию используется значение top
, то есть выполняется отслеживание всех инструкций, создаваемых непосредственно клиентами. Два других уровня отслеживания: none
и all
.
Существует компромисс между информацией о выполнении запроса, предоставляемой pg_stat_statements, и воздействием на производительность сервера при регистрации каждой инструкции SQL. Если расширение pg_stat_statements не используется активно, рекомендуется задать для параметра pg_stat_statements.track
значение none
. Некоторые сторонние службы мониторинга могут полагаться на pg_stat_statements для доставки аналитических сведений о производительности запросов, поэтому убедитесь, что это так для вас или нет.
dblink и postgres_fdw
dblink и postgres_fdw позволяют подключать один сервер PostgreSQL к другому серверу или к другой базе данных на том же сервере. Принимающий сервер должен разрешать подключения с отправляющего сервера при помощи его брандмауэра. Чтобы использовать эти расширения для подключения между кластерами Azure Cosmos DB для PostgreSQL с общедоступным доступом, задайте для этого кластера доступ к службам и ресурсам Azure для доступа к этому кластеру (или серверу) в on. Этот параметр также необходимо включить, если нужно использовать расширения для возврата на тот же сервер. Разрешить службам и ресурсам Azure доступ к этому параметру кластера можно найти на странице портал Azure кластера в разделе "Сеть". В настоящее время исходящие подключения из Azure Cosmos DB для PostgreSQL не поддерживаются.
Расширение orafce
utl_file функции отключены в расширении orafce.
Следующие шаги
- Узнайте о поддерживаемых версиях PostgreSQL.