Перейти к основному содержимому

Расширения PostgreSQL TimescaleDB

К базам данных PostgreSQL TimescaleDB можно подключать расширения. Расширения позволяют добавлять функциональности к базе данных без изменения исходного кода самой СУБД.

Список расширений доступных в облачных базах данных можно посмотреть в таблице Описание расширений.

Некоторые расширения зависят от других — зависимые расширения не будут работать без главного расширения. Список зависимых и главных расширений можно посмотреть в таблице Зависимые расширения.

Добавить расширение можно в панели управления, через API Облачных баз данных и через Terraform.

Добавить расширение

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

  1. В панели управления в верхнем меню нажмите Продукты и выберите Облачные базы данных.
  2. Откройте вкладку Активные.
  3. Откройте страницу кластера → вкладка Базы данных → карточка базы данных.
  4. В блоке Расширения нажмите Добавить расширение.
  5. Выберите расширение. Список доступных расширений и их описание можно посмотреть в таблице Описание расширений.
  6. Нажмите Добавить.

Удалить расширение

Зависимое расширение можно удалить отдельно. Чтобы удалить главное расширение, сначала удалите зависимое. Список зависимых и главных расширений можно посмотреть в таблице Зависимые расширения.

  1. В панели управления в верхнем меню нажмите Продукты и выберите Облачные базы данных.
  2. Откройте вкладку Активные.
  3. Откройте страницу кластера → вкладка Базы данных → карточка базы данных.
  4. В блоке Расширения, в строке расширения нажмите.

Описание расширений

address_standardizerИспользуется для структурирования почтовых адресов, переданных в виде строки
address_standardizer_data_usИспользуется для структурирования почтовых адресов США и Канады для расширения address_standardizer
autoinc

Содержит функцию autoinc(). Эта функция возвращает следующее значение для последовательности, которое хранится в поле целочисленного типа. В отличие от встроенных типов, управляющих последовательностями, autoinc():

  • блокирует попытки вставить в поле значение из запроса;
  • позволяет изменять значение в поле при обновлении записи
bloomДобавляет доступ к индексам баз данных на основе фильтров Блума, которые требуют значительно меньше памяти, чем хеш-таблицы, но допускают ложноположительные срабатывания
btree_ginСодержит примеры классов оператора GIN (Generalized Inverted Index, обобщенный инвертированный индекс), который используется для обратного поиска
btree_gistСодержит классы оператора GiST (Generalized Search Tree, обобщенное дерево поиска). В отличие от индексов B-tree, GiST поддерживает операторы <> (не равно) и < - > (дистанция), хотя и не обеспечивает уникальности возвращаемых значений
citextСодержит тип данных citext, который используется для регистронезависимой работы со строками
cubeСодержит тип данных cube, который используется для представления многомерных кубов
dblinkПоддерживает подключение к другим базам данных PostgreSQL из текущей сессии
dict_intСодержит пример дополнительного шаблона словаря для полнотекстового поиска, с помощью которого можно избежать разрастания списка уникальных слов и увеличить скорость поиска
dict_xsynСодержит пример дополнительного шаблона словаря синонимов (Extended Synonym Dictionary) для полнотекстового поиска: при поиске слова будут найдены все его синонимы
fuzzystrmatchСодержит функции, которые используются для определения сходства и различия строк
h3-pg

Предоставляет API к H3 — открытой системе для индексации географических объектов в сетке из шестиугольных зон (тайлов). Позволяет делить территорию на одинаковые тайлы для анализа геоданных, например построения теплокарт, анализа трафика и мобильности. Можно использовать совместно с PostGIS для расширенного анализа геоданных.

Расширение доступно только для версий PostgreSQL TimescaleDB 15, 16 и 17

hstoreСодержит тип hstore, который позволяет хранить пары ключ/значение в одном поле таблицы и эффективно работать с ними
intarrayСодержит функции и операторы для работы с массивами целых чисел, в которых нет пустых (NULL) значений
ip4rПоддерживает индексацию IPv4 и IPv6 адресов для повышения производительности запросов
isnСодержит типы данных для международных стандартов нумерации продукции EAN13, UPC, ISBN, ISMN и ISSN. Проверка и формирование номеров осуществляется по заданному списку префиксов
jsqueryДобавляет поддержку языка JsQuery, который используется для работы с данными типа jsonb. JsQuery позволяет организовать эффективный поиск во вложенных объектах и содержит дополнительные операторы сравнения с поддержкой индексов
loСодержит тип данных lo и функцию lo_manage(), которые используются для управления большими бинарными объектами (Binary Large Object, BLOB) в соответствии с требованиями спецификаций драйверов JDBC и ODBC (стандартное поведение PostgreSQL им не соответствует)
ltreeСодержит тип данных ltree для представления меток данных, хранящихся в древовидной иерархической структуре
moddatetimeСодержит функцию moddatetime(), которая позволяет отслеживать время последней модификации строки таблицы
mysql_fdw

Позволяет подключать таблицы из баз данных MySQL к кластеру PostgreSQL TimescaleDB и работать с ними. Для использования расширения необходима роль dbaas_admin — эта роль автоматически выдается владельцу базы данных, назначить ее другим пользователям нельзя.

Расширение доступно только для версий PostgreSQL TimescaleDB 15, 16 и 17

pg_repackПозволяет без блокировки перестраивать таблицы и индексы, чтобы уменьшить их размер и фрагментацию. Для использования расширения необходима роль dbaas_admin — эта роль автоматически выдается владельцу базы данных, назначить ее другим пользователям нельзя
pg_stat_statementsДобавляет возможности отслеживания планирования и сбора статистики выполнения всех SQL-запросов, запущенных в кластере. Для использования расширения необходима роль dbaas_admin — эта роль автоматически выдается владельцу базы данных, назначить ее другим пользователям нельзя
pg_trgm

Содержит инструменты для быстрого поиска похожих строк на основе сопоставления триграмм.

Расширение доступно только для версий PostgreSQL TimescaleDB 15, 16 и 17

pgcryptoПредоставляет набор криптографических функций для защиты данных. Подробнее о шифровании данных с помощью расширения pgcrypto и примеры использования в инструкции Шифрование данных
pgrowlocksСодержит функцию pgrowlocks(), которая возвращает сведения о блокировке строк в указанной таблице
pgstattuple

Предоставляет детальную статистику использования дискового пространства и позволяет анализировать фрагментацию индексов, количество «мертвых» кортежей и свободного пространства. Расширение полезно для диагностики производительности, оптимизации индексов, планирования операций VACUUM и использования расширения pg_repack

pgTAPПредоставляет набор инструментов для тестирования схемы базы данных и SQL-функций
plpgsql

Позволяет использовать процедурный язык PL/pgSQL для создания функций, процедур и триггеров. Расширение включено по умолчанию и автоматически доступно во всех базах данных, созданных в кластере. Отдельно подключать его через панель управления не нужно

plv8Позволяет использовать JavaScript для написания хранимых процедур и триггеров
postgisПозволяет хранить и обрабатывать объекты геоинформационных систем (ГИС) в базах данных PostgreSQL. Для использования расширения необходима роль dbaas_admin — эта роль автоматически выдается владельцу базы данных, назначить ее другим пользователям нельзя
postgis_rasterПозволяет работать с растровыми изображениями и проводить анализ объектов геоинформационных систем (ГИС) в базах данных
postgres_fdwДобавляет поддержку Foreign Data Wrapper, чтобы получить доступ к внешним серверам PostgreSQL. Для использования расширения необходима роль dbaas_admin — эта роль автоматически выдается владельцу базы данных, назначить ее другим пользователям нельзя
prefixДобавляет поддержку префиксов и масок для оптимизации запросов
rumДобавляет метод доступа для работы с индексами RUM
segСодержит тип данных seg для представления отрезков линий или интервалов с плавающей запятой
tablefuncСодержит набор функций, возвращающих таблицы (наборы строк)
tcn

Предоставляет триггерную функцию для создания уведомлений об изменениях в таблицах, к которым привязан триггер.

Расширение доступно только для версий PostgreSQL TimescaleDB 15, 16 и 17

tsm_system_rows

Предоставляет метод выборки по количеству строк (SYSTEM_ROWS), который можно использовать в предложении TABLESAMPLE команды SELECT.

Расширение доступно только для версий PostgreSQL TimescaleDB 15, 16 и 17

tsm_system_time

Предоставляет метод выборки по времени выполнения (SYSTEM_TIME), который можно использовать в предложении TABLESAMPLE команды SELECT.

Расширение доступно только для версий PostgreSQL TimescaleDB 15, 16 и 17

unaccentСодержит словарь для поиска текста без учета диакритических знаков
uuid-osspСодержит функции для генерации UUID по стандартным алгоритмам
vectorПозволяет работать с векторными данными — хранить, индексировать и выполнять запросы
xml2Добавляет поддержку запросов XPath и языка XSLT

Зависимые расширения

earthdistanceСодержит модуль для вычисления расстояний между точками на поверхности Земли. Работает только вместе с главным расширением cube
pg_stat_kcacheДобавляет возможность сбора статистики по операциям чтения и записи, выполненным на уровне файловой системы. Работает только вместе с главным расширением pg_stat_statements. Для использования расширения необходима роль dbaas_admin — эта роль автоматически выдается владельцу базы данных, назначить ее другим пользователям нельзя
pgroutingСодержит функции для геопространственной маршрутизации базы данных PostGIS. Работает только вместе с главным расширением postgis
postgis_tiger_geocoderСодержит функции для геокодирования на основе данных в формате TIGER. Работает только вместе с главным расширением postgis
postgis_topologyСодержит типы данных и функции расширения postgis для управления топологическими объектами. Работает только вместе с главным расширением postgis. Для использования расширения необходима роль dbaas_admin — эта роль автоматически выдается владельцу базы данных, назначить ее другим пользователям нельзя