pg_fact_loader
在 Postgres 中构建事实表
仓库
enova/pg_fact_loader
https://github.com/enova/pg_fact_loader
源码
pg_fact_loader-2.0.1.tar.gz
pg_fact_loader-2.0.1.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_fact_loader | 2.0.1 | ETL | MIT | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 9820 | pg_fact_loader | 否 | 是 | 否 | 是 | 否 | 否 | fact_loader |
PGDG provides the regular DEB channel; Pigsty fills the missing PostgreSQL 18 packages on Debian/Ubuntu and builds PG14-18 for Ubuntu 26.04 (Resolute).
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 2.0.1 | 1817161514 | pg_fact_loader | - |
| RPM | PGDG | 2.0.1 | 1817161514 | pg_fact_loader_$v | - |
| DEB | PGDG | 2.0.1 | 1817161514 | postgresql-$v-pg-fact-loader | - |
构建
您可以使用 pig build 命令构建 pg_fact_loader 扩展的 DEB 包:
BASH
安装
您可以直接安装 pg_fact_loader 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
使用基于队列的变更数据捕获来构建和维护事实表。通过处理审计/变更日志表来增量更新事实表。
启用
SQL
可选地与 pglogical 配合用于基于副本的设置:
SQL
工作流程
- 复制源表 到报表数据库(通过 pglogical 或其他方式)
- 创建审计/变更日志表 在 OLTP 系统中为源表创建
- 创建事实表 结构用于聚合数据
- 创建合并函数 接受一个键 ID 并返回事实表的一行
- 配置 pg_fact_loader 将队列表关联到事实表
- 回填 初始化事实表数据
- 调度 工作进程持续处理变更
配置表
SQL
运行工作进程
SQL
初始回填
SQL
添加批次 ID 字段
SQL
主要功能
- 基于队列的增量事实表更新
- 支持插入、更新和删除事件
- 支持多级键检索(通过多个表的联接)
- 事实表依赖链(父事实更新后再更新子事实)
- 处理前检查复制延迟(与 pglogical 配合使用时)