查看原文
其他

最强PostgreSQL学习镜像更新了

digoal PostgreSQL码农集散地
2024-09-29

文章开始前推荐2个学习环境: 

1、欢迎使用镜像快速体验PostgreSQL/DuckDB强大功能:《最好的PostgreSQL学习镜像

2、欢迎使用云起实验室: 《免费体验PolarDB开源数据库

2024.1.6日《国产数据库共话未来趋势》第3期沙龙在上海圆满举办, 视频回放.

更新后的内容: 

1、PG 14自带的所有插件.

2、额外安装的插件或工具

类型增强

  • pgmp, PostgreSQL Multiple Precision Arithmetic extension, 支持GMP library, 高性能表达decimal类型.

  • unit, 支持很多国际单位的类型

  • pg_uuidv7, A tiny Postgres extension to create version 7 UUIDs

  • zson, ZSON is a PostgreSQL extension for transparent JSONB compression

  • uint, 无符号整型.

  • nanoid, nanoid类型.

  • ulid, 半高uuid类型.

  • snowflake, snowflakeID 分布式数据库全局唯一ID生成器, 比UUID效率高.

函数增强

  • extra-window-functions, 扩展窗口函数

  • first-last-agg, 扩展聚合函数

  • tdigest, 扩展窗口、聚合函数

  • rational, 扩展插值算法和函数

  • orafce, 扩展Oracle兼容性

  • aggs_for_vecs, 数组类型聚合函数扩展.

  • quantile, 统计分析相关聚合函数扩展.

  • pgjwt, JSON 值转储格式: JSON Web Tokens

  • pg_idkit, 集成了大量UUID方法和函数.

  • pgpcre, 正则. This is a module for PostgreSQL that exposes Perl-compatible regular expressions (PCRE) functionality as functions and operators.

近似统计分析

  • hll, 近似分析, 例如滑动窗口UV, 短视频场景存储已读列表+快速过滤已读视频

  • datasketches, 近似统计算法库

标签圈选

  • smlar, 标签相似搜索

  • roaringbitmap, 标签圈选

  • pgfaceting, 基于rb index的快速降维分析插件(例如任意条件的UV分析, 滑动窗口分析等)

存储引擎、分析加强:

  • citus, 分布式和列存储

  • columnar, Hydra Columnar extension. 列存储引擎.

  • vops, 瓦片存储和向量化计算

  • orioledb, 基于UNDO机制的存储引擎. (未集成.)

  • zedstore, 行列混合存储引擎. (未集成.)

  • pg_cryogen, appendonly的压缩存储引擎. (未集成.)

  • pg_ivm, 增量刷新物化视图

多值列索引扩展加速

  • rum, 多值列+标量复合搜索加速

  • parray_gin, 多值列元素值模糊搜索

多模型业务场景

  • rdkit, 化学类型+算法+索引

  • timescaledb, 时序

  • pggraphblas, 图式关系加速搜索

  • age, 图式关系搜索(兼容cypherQL语法).

  • madlib, 机器学习分析库

  • pg_variables, 会话或事务级内存变量, 例如用于计数器、需要在会话|事务中存储临时值的场景.

  • temporal_tables, 自动按字段时间归档历史数据.

  • pgtt, 全局临时表, 类似Oracle 全局临时表的风格.

  • pipelinedb, 流计算.

  • pg4ml, 使用 plpgsql 编写的机器学习框架.

  • PGMQ, pg消息队列.

空间业务场景

  • pgrouting, 路由算法

  • pgrouting-doc

  • pgrouting-scripts

  • pgsphere, 空间类型+索引

  • pointcloud, 点云

  • q3c, 空间类型+索引

  • postgis-3, 丰富的空间类型+算法+函数接口+索引

  • postgis-3-scripts

  • ip4r, IP转地理位置信息

  • h3, h3_postgis, uber开源的基于H3模型的地图相关插件.

  • MobilityDB, An open source geospatial trajectory data management & analysis platform. https://github.com/MobilityDB/MobilityDB

向量搜索

  • similarity, 近似算法, 类型+索引

  • imgsmlr, 图像搜索, 类型+索引

  • pgvector, 向量搜索, 类型+索引(ivfflat、hnsw)

  • pg_sparse, paradedb开源. 稀疏向量搜索. 使用rust编写.

  • svector, paradedb开源. 稀疏向量搜索(就是pg_sparse, 更名为svector). 使用c编写. https://docs.paradedb.com/blog/introducing_sparse

  • hnsw, 向量搜索, 类型+索引(hnsw)

  • pg_embedding, 向量搜索, 类型+索引(hnsw)

  • lantern, 向量搜索, 类型+索引(usearch implemented hnsw)

  • lantern_extras, lantern辅助插件: 数据库内置大模型, 外接大模型, 文本|图像向量化, 加速向量索引build等.

  • vectorize, 结合pgvector和OpenAI的应用解决方案型插件, 实现db4ai, ai4db的应用.

文本场景增强

  • prefix, 前缀范围模型

  • groonga, 支持wchar的任意模糊搜索

  • pg_bigm, 增强pg_trgm模糊搜索

  • pg_jieba, 结巴中文分词

  • zhparser, scws中文分词

  • pg_bm25, paradedb开源. bm25(elastic search目前使用的相关算法)支持, 大数据量文本搜索比传统tsvector,tsrank提升20x性能.

  • pg_search, paradedb开源. 通过 bm25+hnsw 支持bm25和向量相似文本搜索

数据融合, 冷热分离

  • mongo_fdw, 读写mongo数据源

  • parquet_s3_fdw, 读写s3,oss对象存储和parquet文件. (未集成, 通过duckdb_fdw可以读写s3, aliyun oss, 更加快捷)

  • mysql-fdw, 读写mysql数据源

  • ogr-fdw, 基于ogr的通用数据源读写插件

  • oracle-fdw, 读写oracle数据源

  • tds-fdw, 读写ms sql数据源

  • dblink_plus, mysql,sqlite3,oracle的dblink

  • duckdb_fdw, 读写duckdb数据源. 通过duckdb_fdw还可以读写存放在s3的csv, parquet文件.

  • sqlite_fdw, 读写sqlite3

  • parquet_fdw, 读parquet文件.

  • hdfs_fdw, 读写hive, spark数据源

  • pgmemcache, 直接的memcache控制函数库

  • pg_curl, 通过curl支持http,ftp,https等网络协议. 将远程数据加载到数据库中.

  • pg_net, 异步HTTP调用接口.

  • pgsql-http, HTTP 调用接口.

  • pg2arrow , 将pg sql结果转换为arrow格式的数据文件. 适合与其他arrow生态的数据分析产品、DB交换数据, 融入大数据生态, 加速数据分析.

  • aws_s3, 读写aws s3对象存储.

  • decoderbufs, 逻辑复制decoding, logical decoder output plugin to deliver data as Protocol Buffers

扩展协议, 兼容其他产品

  • FerretDB, 支持mongodb协议, 可使用mongodb客户端连接. (未集成)

  • babelfish, 支持sql server协议, 可使用sqlserver客户端连接. (未集成)

  • Apache Arrow Flight SQL adapter, arrow 协议, 可使用arrow driver连接. (未集成, 需PG 15及以上版本.)

存储过程和函数语言增强

  • jsquery, 增强json语法查询库

  • pldebugger, 调试plpgsql函数

  • plpgsql-check, 预检查plpgsql函数

  • pljava, java存储过程和函数语言

  • pllua, lua存储过程和函数语言

  • plproxy, 代理(通常用于sharding和并行数据聚合访问场景)

  • plv8, google v8存储过程和函数语言. (未集成, 未来可以通过apt安装)

  • plpython3, python存储过程和函数语言

  • plr, R存储过程和函数语言

  • plprofiler, 存储过程和函数的性能分析功能

  • plrust, rust存储过程语言支持

安全增强

  • postgresql_anonymizer, 敏感信息遮蔽

  • pgsodium, 敏感信息遮蔽以及sodium加密库函数

  • credcheck, 强制约束用户密码复杂度

数据库管理、审计、性能优化等

  • powa, 索引推荐, 等待事件分析, 命中率, 配置变更跟踪等

  • hypopg, 虚拟索引, 索引推荐

  • pg-qualstats, 索引推荐

  • pg-stat-kcache, 跟踪cpu、文件系统真实读写行为

  • pg-wait-sampling, 等待事件采样分析

  • show-plans, 执行过程中的SQL执行计划查询

  • pg_hint_plan, 强制设定SQL执行计划

  • plantuner, 增加了一些参数用来控制SQL执行计划

  • pg_store_plans, 保存SQL执行计划

  • pg_plan_inspector, 复杂SQL执行计划优化修正插. 使用机器学习的方法对收集到的SQL和执行计划等信息进行分析, 从而提升性能. 通过sql安装, 没有extension control file

  • pg_stat_monitor, 保存数据库运行时统计信息快照, 用于分析性能

  • pg_statviz, 保存统计信息快照, 使用matplotlib绘图.

  • pg_profile, 使用pg_stat_statements, pg_stat_kcache的统计信息打快照并对快照进行分析. 类似awr. 不过我觉得perf insight和pg_stat_monitor更好用.

  • pg_statsinfo, PG数据库监控工具, 支持按快照选取分析系统运行状态, 类似Oracle statspark.

  • pg_stats_reporter, pg_statsinfo报告的网页呈现, 更加美观, 类似awr效果.

  • pgtelemetry, 一些DBA常用的监控数据库和操作系统运行状态的视图.

  • pgfincore, 修改数据文件的page cache行为

  • pg_repack, 几乎不影响业务的收缩膨胀的表和索引浪费的存储空间

  • pg_migrate, online DDL, fork自pg_repack, 实现最短时间持有排他锁的DDL, DDL过程中支持DML.

  • squeeze, 几乎不影响业务的收缩膨胀的表和索引浪费的存储空间, 支持设置阈值, 自动调度.

  • pgagent, 定时任务

  • pg_cron, 定时任务

  • pg_task, 数据库后台任务管理. 类似oracle dbms_jobs

  • pgaudit, 审计用户行为

  • tablelog, 审计表的修改过程

  • dirtyread, 脏读

  • wal2json, WAL日志转换为json

  • pg_bulkload, 高速导入数据

  • sqlbench, 压测tpc-c

  • pgxnclient, pgxn插件管理

  • icu-ext, 扩展的icu字符集

  • pg_plan_filter, 基于cbo的限制插件, 例如限制某些用户执行cost大于指定值的SQL. 防止用户"捣乱".

  • pg_query_rewrite, 自定义查询重写规则的插件.

  • pg_track_settings, 跟踪审计GUC参数设置.

  • pg_utility_trigger_functions, 常用功能场景的触发器函数.

  • pg_safer_settings, 记录guc参数设置, 并增加一些基于角色的guc 参数setting权限控制和审计.

  • ddlx, 生成数据库对象的create语句的插件

  • pg_dbms_stats, 统计信息快照, 使用统计信息快照生成执行计划. 类似基线, 确保执行计划的普遍最优性.

  • pg_rman, 块级别数据库增量备份, 根据数据块的LSN判断自上次备份后是否被修改. 类似Oracle incremental backup.

  • online_analyze, 事务中分析DML后的统计信息, 适合OLAP跑复杂任务场景的及时统计信息刷新, 用于确保复杂SQL的执行计划正确性.

  • gevel, 观察gin,gist,sp-gist索引内部结构的插件.

  • toastinfo, 观察toast存储结构

  • pg_later, PG 异步SQL执行插件.

  • mimeo, 表级别复制(逻辑复制前的方法, 现在不建议使用)

  • pre_prepare, 数据库端prepared statement自动保存, 便于pool调用.

  • prioritize, 结合OS PID task优先级功能, 设置pg backend pid cpu调度优先级

  • pgsentinel, postgresql extension providing Active session history

  • pgwatch2, PostgreSQL metrics monitor/dashboard. 暂未集成

  • pg_top, postgresql的top命令, 类似linux top.

  • pgcenter, 类似pg_top, 可一屏显示多个实例的top情况. pgCenter is a command line admin tool for PostgreSQL.

  • pg_proctab, 配合pg_top使用, 观察远程postgresql的top资源.

  • pgbadger, A fast PostgreSQL Log Analyzer. http://pgbadger.darold.net/

  • pg_auto_failover, Postgres extension and service for automated failover and high-availability. https://github.com/hapostgres/pg_auto_failover

  • pghero, A performance dashboard for Postgres. https://github.com/ankane/pghero

  • ora2pg, oracle,mysql迁移到postgresql的工具

  • pgloader, 使用fdw读取其他数据库的数据, 并快速迁移到PostgreSQL的迁移工具

  • pgreplay, 回放postgresql log的工具. 需要开启log_statements.

  • pg_subtrans_infos, 查看子事务信息

  • pg_subxact_counters, 统计子事务

  • pgbackrest, 备份管理工具.

  • elephant-shed-pgbackrest, PG备份管理工具pgbackrest web控制台, 同时集成了一些有趣的工具

  • PgDD, PostgreSQL Data Dictionary for 开发者, 快速了解数据库概貌. https://github.com/rustprooflabs/pgdd

  • pg_partman, Partition management extension for PostgreSQL

  • pg_filedump, pg_filedump is a utility to format PostgreSQL heap/index/control files into a human-readable form.

  • pg_partman, Partition management extension for PostgreSQL

  • pg_jobmon, PostgreSQL extension which provides persistent logging within transactions and functions. 事务即使回滚也能留下数据, 使用的是dblink外部事务实现.

  • pgroll, PostgreSQL zero-downtime migrations made easy

连接池和读写分离

  • pgpool2, 连接池和读写分离

  • pgagroal, 高性能连接池

  • pgbouncer, 高性能连接池

  • pgcat, 连接池和读写分离,sharding等特性, 未来发展前景比较可观

嵌入式OLAP数据库

  • DuckDB, 嵌入式的OLAP库, 功能非常强大性能非常好. 兼容SQLite3语法和PostgreSQL语法.


插件列表:

Display all 210 possibilities? (y or n)
address_standardizer parquet_fdw pgtelemetry
"address_standardizer-3" parray_gin pg_tiktoken
address_standardizer_data_us pg4ml pg_track_settings
"address_standardizer_data_us-3" pgagent pg_trgm
adminpack pgaudit pgtt
age pgautofailover pg_utility_trigger_functions
aggs_for_vecs pg_bigm pg_uuidv7
amcheck pg_bm25 pg_variables
anon pg_buffercache pg_visibility
autoinc pg_bulkload pg_wait_sampling
aws_s3 pg_cron pipelinedb
bloom pgcrypto pldbgapi
btree_gin pg_curl pljava
btree_gist pg_dbms_stats pllua
citext pgdd plluau
citus pg_dirtyread plpgsql_check
citus_columnar pgfaceting plprofiler
columnar pgfincore plproxy
credcheck pg_freespacemap plpython3u
cube pggraphblas plr
datasketches pg_hint_plan plrust
dblink pg_idkit pointcloud
dblink_plus pg_ivm pointcloud_postgis
ddlx pg_jieba postgis
decoderbufs pg_jobmon "postgis-3"
dict_int pgjwt postgis_raster
dict_xsyn pgmemcache "postgis_raster-3"
duckdb_fdw pg_migrate postgis_sfcgal
earthdistance pgmp "postgis_sfcgal-3"
embedding pg_nanoid postgis_tiger_geocoder
extra_window_functions pg_net "postgis_tiger_geocoder-3"
file_fdw pg_onnx postgis_topology
first_last_agg pg_partman "postgis_topology-3"
fuzzystrmatch pgpcre postgres_fdw
gevel pgpool_adm powa
h3 pgpool_recovery prefix
h3_postgis pgpool_regclass pre_prepare
hdfs_fdw pg_prewarm prioritize
hll pg_proctab q3c
hnsw pg_profile quantile
hstore pg_qualstats rdkit
hstore_pllua pg_query_rewrite refint
hstore_plluau pg_rational roaringbitmap
hstore_plpython3u pg_repack rum
http pgroonga seg
hypopg pgroonga_database smlar
icu_ext pgrouting sqlite_fdw
imgsmlr pgrowlocks sslinfo
insert_username pg_safer_settings svector
intagg pg_safer_settings_table_dependent_extension tablefunc
intarray pg_safer_settings_table_dependent_subextension table_log
ip4r pg_search tcn
isn pgsentinel tdigest
jsonb_plpython3u pg_show_plans tds_fdw
jsquery pg_similarity temporal_tables
lantern pgsodium timescaledb
lantern_extras pg_sparse timescaledb_toolkit
lo pg_sphere toastinfo
ltree pg_squeeze tsm_system_rows
ltree_plpython3u pg_stat_kcache tsm_system_time
mimeo pg_stat_monitor uint
mobilitydb pg_stat_statements ulid
moddatetime pgstattuple unaccent
mongo_fdw pg_statviz unit
mysql_fdw pg_store_plans "uuid-ossp"
ogr_fdw pg_subtrans_infos vector
old_snapshot pg_subxact_counters vops
oracle_fdw pg_surgery xml2
orafce pgtap zhparser
pageinspect pg_task zson


欢迎关注我的github (https://github.com/digoal/blog) , 学习数据库不迷路.  

近期正在写公开课材料, 未来将通过视频号推出, 欢迎关注视频号:


文章中的参考文档请点击阅读原文获得. 


继续滑动看下一个
PostgreSQL码农集散地
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存