Использование расширений PostgreSQL на сервере PostgreSQL с поддержкой Azure Arc

PostgreSQL лучше использовать с расширениями.

Примечание.

В отношении технологии (как предварительной версии функции), описанной в этой статье, действуют дополнительные условия использования предварительных версий Microsoft Azure.

Последние обновления доступны в заметках о выпуске.

Поддерживаемые расширения

Следующие расширения развертываются по умолчанию в контейнерах сервера PostgreSQL с поддержкой Azure Arc, некоторые из них являются стандартными contrib расширениями:

  • address_standardizer_data_us 3.3.1
  • adminpack 2.1
  • amcheck 1.3
  • autoinc 1
  • bloom 1
  • btree_gin 1.3
  • btree_gist 1.6
  • citext 1.6
  • cube 1.5
  • dblink 1.2
  • dict_int 1
  • dict_xsyn 1
  • earthdistance 1.1
  • file_fdw 1
  • fuzzystrmatch 1.1
  • hstore 1.8
  • hypopg 1.3.1
  • insert_username 1
  • intagg 1.1
  • intarray 1.5
  • isn 1.2
  • lo 1.1
  • ltree 1.2
  • moddatetime 1
  • old_snapshot 1
  • orafce 4
  • pageinspect 1.9
  • pg_buffercache 1.3
  • pg_cron 1.4-1
  • pg_freespacemap 1.2
  • pg_partman 4.7.1
  • pg_prewarm 1.2
  • pg_repack 1.4.8
  • pg_stat_statements 1.9
  • pg_surgery 1
  • pg_trgm 1.6
  • pg_visibility 1.2
  • pgaudit 1.7
  • pgcrypto 1.3
  • pglogical 2.4.2
  • pglogical_origin 1.0.0
  • pgrouting 3.4.1
  • pgrowlocks 1.2
  • pgstattuple 1.5
  • plpgsql 1
  • postgis 3.3.1
  • postgis_raster 3.3.1
  • postgis_tiger_geocoder 3.3.1
  • postgis_topology 3.3.1
  • postgres_fdw 1.1
  • refint 1
  • seg 1.4
  • sslinfo 1.2
  • tablefunc 1
  • tcn 1
  • timescaledb 2.8.1
  • tsm_system_rows 1
  • tsm_system_time 1
  • unaccent 1.1

Обновления для этого списка будут публиковаться со временем по мере развития.

Включение расширений на сервере PostgreSQL с поддержкой Arc

Сервер PostgreSQL с поддержкой Arc можно создать с любым из поддерживаемых расширений, передав разделенный запятыми список расширений --extensions в параметр create команды.

az postgres server-arc create -n <name> --k8s-namespace <namespace> --extensions "pgaudit,pg_partman" --use-k8s

ПРИМЕЧАНИЕ. В конфигурацию shared_preload_librariesдобавляются включенные расширения. Расширения должны быть установлены в базе данных, прежде чем его можно будет использовать. Чтобы установить определенное расширение, выполните CREATE EXTENSION команду. Эта команда загружает упакованные объекты в базу данных.

Например, подключитесь к базе данных и выполните следующую команду PostgreSQL, чтобы установить расширение pgaudit:

CREATE EXTENSION pgaudit;

Обновление расширений

Вы можете добавлять или удалять расширения с существующего сервера PostgreSQL с поддержкой Arc.

Чтобы получить текущий список включенных расширений, выполните команду kubectl:

kubectl describe postgresqls <server-name> -n <namespace>

Если в выходных данных включены расширения, в нем содержится следующий раздел:

  config:
    postgreSqlExtensions: pgaudit,pg_partman

Проверьте, установлено ли расширение после подключения к базе данных, выполнив следующую команду PostgreSQL:

select * from pg_extension;

Включите новые расширения путем добавления их в существующий список или удаления расширений, удалив их из существующего списка. Передайте нужный список в команду обновления. Например, чтобы добавить pgcrypto и удалить pg_partman сервер из приведенного выше примера:

az postgres server-arc update -n <name> --k8s-namespace <namespace> --extensions "pgaudit,pgrypto" --use-k8s

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

CREATE EXTENSION pgcrypto;

Аналогичным образом, чтобы удалить расширение из существующей базы данных, выполните команду DROP EXTENSION :

DROP EXTENSION pg_partman;

Отображение списка установленных расширений

Подключение в базу данных с помощью клиентского средства и выполните стандартный запрос PostgreSQL:

select * from pg_extension;
  • Попробуйте. Изучите документацию Быстрое начало работы с Azure Arc и приступайте к работе со службой Azure Kubernetes (AKS), службой AWS Elastic Kubernetes (EKS), подсистемой Google Cloud Kubernetes (GKE) или виртуальной машиной Azure.