Поделиться через


Расширения 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

Расширение Описание 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

Расширения типов данных

Расширение Описание 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
куб Предоставляет тип данных для многомерных кубов. 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
не является Предоставляет типы данных для международных стандартов нумерации продуктов. 1.2 1.2 1.2 1.2 1.2 1.2
вот Обслуживание больших объектов. 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

Расширения для полнотекстового поиска

Расширение Описание 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
без акцента Словарь для текстового поиска, который удаляет из лексем знаки ударения (диакритические знаки). 1,1 1,1 1,1 1,1 1,1 1,1

Расширения функций

Расширение Описание 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
расстояние до Земли Предоставляет возможность вычисления великокруговых расстояний на поверхности Земли. 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

Расширения типов индекса

Расширение Описание PG 11 PG 12 PG 13 PG 14 PG 15 PG 16
цвести Метод доступа Блума — индекс на основе файла сигнатуры. 1.0 1.0 1.0 1.0 1.0 1.0
btree_gin Предоставляет примеры классов операторов GIN, которые реализуют поведение, подобное B-дереву, для определенных типов данных. 1,3 1,3 1,3 1,3 1,3 1,3
btree_gist Предоставляет классы операторов индекса GiST, которые реализуют B-дерево. 1.5 1.5 1.5 1,6 1,7 1,7

Расширения языка

Расширение Описание 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

Прочие расширения

Расширение Описание 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 Изучите карту видимости (VM) и информацию о видимости на уровне страницы. 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
строки_системы_тсм Метод 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

Расширение Описание 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

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

Расширение orafce

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

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