Расширения 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.0.0 5.0.0 5.0.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
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.5 1.5 1.5 1.5 1.5
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.5.1 0.5.1 0.5.1 0.5.1 0.5.1

Расширения PostGIS

Расширение Description PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
PostGIS Пространственные и географические объекты для PostgreSQL. 3.3.4 3.4.0 3.4.0 3.4.0 3.4.0 3.4.0
address_standardizer Используются для анализа адреса в составных элементы. Используется для поддержки шага нормализации геокодирования адресов. 3.3.4 3.4.0 3.4.0 3.4.0 3.4.0 3.4.0
postgis_sfcgal Функции PostGIS SFCGAL. 3.3.4 3.4.0 3.4.0 3.4.0 3.4.0 3.4.0
postgis_topology Пространственные типы и функции топологии PostGIS. 3.3.4 3.4.0 3.4.0 3.4.0 3.4.0 3.4.0

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 позволяют подключать один сервер PostgreSQL к другому серверу или к другой базе данных на том же сервере. Принимающий сервер должен разрешать подключения с отправляющего сервера при помощи его брандмауэра. Чтобы использовать эти расширения для подключения между кластерами Azure Cosmos DB для PostgreSQL с общедоступным доступом, задайте для этого кластера доступ к службам и ресурсам Azure для доступа к этому кластеру (или серверу) в on. Этот параметр также необходимо включить, если нужно использовать расширения для возврата на тот же сервер. Разрешить службам и ресурсам Azure доступ к этому параметру кластера можно найти на странице портал Azure кластера в разделе "Сеть". В настоящее время исходящие подключения из Azure Cosmos DB для PostgreSQL не поддерживаются.

Расширение orafce

utl_file функции отключены в расширении orafce.

Следующие шаги