PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Десет начина за разширяване на функционалността на PostgreSQL

Както може би знаете, можете да разширите функционалността на PostgreSQL, като използвате разширения на PostgreSQL. Можете да използвате различни разширения, за да направите PostgreSQL като корпоративна версия и да отговаряте на специфични нужди. В този блог ще видим някои от най-популярните разширения с отворен код в PostgreSQL и как може да се използва за разширяване на възможностите му.

PostgreSQL е най-модерната база данни с отворен код. Всяка година общността на PostgreSQL пуска нова версия с някои нови функции, но има много функции, разработени с помощта на разширения, които могат да се използват за конкретен случай на употреба.

Някои от тези разширения са много мощни и популярни за изграждане на PostgreSQL среда от корпоративен клас.

Pg_stat_statements

Модулът pg_stat_statements предоставя средство за проследяване на статистиката за изпълнение на всички SQL оператори, изпълнявани от PostgreSQL сървър. Когато модулът pg_stat_statements е зареден, той проследява статистически данни във всички бази данни на сървъра. Статистическите данни, събрани от модула pg_stat_statements, се предоставят чрез изглед с име pg_stat_statements. Можете да проверите повече подробности за pg_stat_statements функциите и конфигурационния параметър тук.

PostGIS

PostGIS е разширение към системата за бази данни PostgreSQL, което позволява обектите на ГИС (географски информационни системи) да се съхраняват в базата данни. Той включва поддръжка за базирани на GiST пространствени индекси R-Tree и функции за анализ и обработка на GIS обекти.

PostGIS се използва за пространствени и географски обекти за PostgreSQL. PostGIS добавя типове (геометрия, география, растер и т.н.) към базата данни на PostgreSQL. PostGIS също така добавя функции, оператори и подобрения в индекса, които се прилагат към тези пространствени типове. Можете да проверите метода на инсталиране тук.

Postgres_fdw

Модулът postgres_fdw предоставя обвивката на външни данни postgres_fdw, която може да се използва за достъп до данни, съхранявани във външни сървъри на база данни PostgreSQL. Когато има две PostgreSQL бази данни, postgres_fdw се отнася до таблицата на другата база данни от една база данни. След като дефинирате FOREIGN TABLE, можете да правите SELECT, INSERT, UPDATE, DELETE като локална база данни.

Функционалността, предоставена от модула postgres_fdw, се припокрива значително с функционалността на по-стария модул dblink. Но модулът postgres_fdw предоставя по-прозрачен и съвместим със стандартите синтаксис за достъп до отдалечени таблици и може да даде по-добра производителност в много случаи.

Основният случай на използване на чуждите таблици е да предоставят данните на системите, без да ги копират или дублират. Има дори прости реализации на разделяне с помощта на FDW, тъй като данните в другите сегменти могат да бъдат достъпни за заявки чрез FDW.

В Oracle можете да получите данните от таблици на отдалечена база данни с помощта на DBLinks, но основната разлика между DBLinks и FDW е, че FDW може да поддържа локално метаданните или дефиницията на таблица за чужда таблица.

Mysql_fdw

Mysql_fdw е разширение на PostgreSQL, което имплементира Foreign Data Wrapper (FDW) за MySQL. Модулът Mysql_fdw улеснява използването на PostgreSQL сървър като клиент за MySQL Server, което означава, че след това може да извлича данни от базата данни MySQL като клиент. В момента EnterpriseDB поддържа този модул на github.

Предишната версия на mysql_fdw се поддържаше само за четене, но най-новата версия предоставя възможност за запис. Потребителят вече може да издава изрази за вмъкване, актуализиране и изтриване за чуждите таблици, използвайки mysql_fdw. Той използва механизма за прехвърляне на тип PostgreSQL, за да осигури противоположно прехвърляне на типове между MySQL и PostgreSQL типове данни.

Hstore

Модулът hstore реализира тип данни hstore за съхраняване на двойки ключ-стойност в една стойност в PostgreSQL. Типът данни hstore е много полезен в много случаи на използване, като например полуструктурирани данни или редове с много атрибути, които рядко се заявяват. Имайте предвид, че ключовете и стойностите са само текстови низове.

Преди да работите с тип данни hstore, трябва да създадете разширението hstore, което зарежда модула contrib във вашия PostgreSQL екземпляр.

Пгаудит

pgAudit е разширение за одит на PostgreSQL, което предоставя подробна регистрация на сесия и/или обект чрез стандартното средство за регистриране на PostgreSQL.

Основната цел на модула pgAudit е да предостави на потребителите на PostgreSQL възможността да създават регистрационни файлове за одит, които често се изискват за спазване на държавни, финансови или ISO сертификати.

По принцип одитът е официална проверка на сметките на физическо лице или организация, обикновено от независим орган. Информацията, събрана от модула pgAudit, се нарича правилно одитна пътека или одитен журнал.

Модулът pgAudit е разработен за поддръжка на PostgreSQL 9.5 и по-нови версии.

Регистрирането на одит на сесията от модула pgAudit предоставя подробни регистрационни файлове на всички оператори, изпълнени от потребител в бекенда. Можете да проверите повече подробности, конфигурация и как да го инсталирате и използвате в PostgreSQL тук.

Orafce

Orafce е модул, който реализира съвместими с Oracle функции, типове данни и пакети. Това е инструмент с отворен код с BSD лиценз, така че всеки може да използва този инструмент. Този модул е ​​много полезен в задачата за миграция на Oracle към PostgreSQL, има много функции на Oracle, внедрени в PostgreSQL.

Приложенията обикновено използват тези функции с множество поява. Можете да намалите разходите за модификация на SQL, като използвате този инструмент. Можете да проверите как да мигрирате от Oracle към блог PostgreSQL.

Всички функции и пакети са имплементирани правилно и е добре тестван.

Някои от функциите са:

  • Dbms_output
  • Dbms_random
  • utl_file – функции, свързани с файловата система
  • Dbms_pipe и dbms_alert
  • PLVdate,PLVstr, PLVchr
  • Съвместим с Oracle тип данни DATE и функции като ADD_MONTHS, LAST_DAY, NEXT_DAY и така нататък.
  • NVL функция
  • Функция SUBSTR и SUBSTRB
  • Поддръжка на VARCHAR2 и NVARCHAR2
  • ДО_ДАТА()
Изтеглете Бялата книга днес Управление и автоматизация на PostgreSQL с ClusterControl Научете какво трябва да знаете, за да внедрите, наблюдавате, управлявате и мащабирате PostgreSQLD Изтеглете Бялата книга

Pg_bulkload

Модулът Pg_bulkload предоставя възможност за високоскоростно зареждане на данни на потребителите на PostgreSQL. Модулът pg_bulkload е предназначен да зареди огромно количество данни в база данни. Можете да заредите данните в таблицата, заобикаляйки споделените буфери на PostgreSQL. Модулът pg_bulkload също има някои ETL функции като валидиране на входни данни и трансформация на данни с филтърни функции.

Първоначалната цел на модула pg_bulkload беше по-бърза алтернатива на командата COPY в PostgreSQL.

Модулът Pg_bulkload е разработен и поддържан от NTT OSS Center.

ВАЖНА ЗАБЕЛЕЖКА:В среда за стрийминг репликация в PostgreSQL модулът pg_bulkload не работи правилно. Вижте тук за повече подробности.

Pgstattuple

Модулът pgstattuple предоставя различни функции за получаване на статистика на ниво кортежи в PostgresQL. Функцията в модула pgstattuple връща физическата дължина на релацията, процента на „мъртвите“ кортежи и друга информация. Това може да бъде полезно за потребителите да определят дали вакуумът е необходим или не. Аргументът на функцията е името на целевата релация (по избор с квалифицирана схема) или OID.

Pg_trgm

pg_trgm е разширение на PostgreSQL, осигуряващо просто размито съвпадение на низове в PostgreSQL. Неговите оперативни и концептуални разходи са много по-ниски от търсенето в пълен текст на PostgreSQL или отделна търсачка.

Триграма или триграф е група от три последователни знака, взети от низ. Можете да измерите сходството на два низа, като преброите броя на триграмите, които споделят. Тази проста идея за триграма се оказва много ефективна за измерване на сходството на думите в много естествени езици.

Като цяло модулът pg_trgm може да помогне, когато:

  • В PostgreSQL имате нужда от размито съвпадение на низовете, независимо от главни и малки букви.
  • Искате да ускорите LIKE, ILIKE, ~ или ~* в PostgreSQL.
  • Искате да търсите модели, които не са закотвени вляво (напр. %john%). Такива модели не се поддържат от B-дърво индекси в PostgreSQL.

Горният списък с модули/разширения е много полезен за разширяване на възможностите на PostgreSQL. Има още някои разширения, които не са включени в блога, но е много полезно да разширите PostgreSQL функционалността. Те са както следва.

  • Езикови разширения:PL/Python, PL/Perl, PL/R, PL/v8, PL/sh и др.
  • Cstore_fdw
  • Mongo_fdw
  • HypoPG
  • Tds_fdw
  • Plprofiler

Заключение

Има много разширения в поддържаните от общността PostgreSQL разширения и някои разширения на трети страни, всички използвани за конкретен случай на употреба. Можете да разширите възможностите или функционалността на PostgreSQL, като използвате тези модули.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Framework 6 с Npgsql

  2. Ограничение за припокриване на дата Postgres

  3. Как да решим проблемите с привилегиите при възстановяване на PostgreSQL база данни

  4. Стимулиране на производителността за PostgreSQL с HAProxy

  5. PostgreSQL:използване на изчислена колона в същата заявка