onesparse
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
one_sparse | 1.0.0 | FEAT | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2980 | onesparse | 否 | 是 | 否 | 是 | 否 | 否 | onesparse |
| 相关扩展 | age pgrouting postgis |
|---|
PG18 only; upstream release v1.0.0 ships extension SQL version 0.1.0
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0.0 | 1817161514 | one_sparse | - |
| RPM | PIGSTY | 1.0.0 | 1817161514 | onesparse_$v | graphblas, lagraph |
| DEB | PIGSTY | 1.0.0 | 1817161514 | postgresql-$v-onesparse | libgraphblas10, liblagraph1, liblagraphx1 |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 1.0.0 el8.x86_64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el8.aarch64 | PIGSTY 1.0.0 el8.aarch64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.x86_64 | PIGSTY 1.0.0 el9.x86_64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.aarch64 | PIGSTY 1.0.0 el9.aarch64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.x86_64 | PIGSTY 1.0.0 el10.x86_64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.aarch64 | PIGSTY 1.0.0 el10.aarch64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.x86_64 | PIGSTY 1.0.0 d12.x86_64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.aarch64 | PIGSTY 1.0.0 d12.aarch64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.x86_64 | PIGSTY 1.0.0 d13.x86_64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~trixie_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.aarch64 | PIGSTY 1.0.0 d13.aarch64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~trixie_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.x86_64 | PIGSTY 1.0.0 u22.x86_64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~jammy_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.aarch64 | PIGSTY 1.0.0 u22.aarch64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~jammy_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.x86_64 | PIGSTY 1.0.0 u24.x86_64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~noble_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.aarch64 | PIGSTY 1.0.0 u24.aarch64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~noble_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
构建
您可以使用 pig build 命令构建 one_sparse 扩展的 RPM / DEB 包:
pig build pkg one_sparse # 构建 RPM / DEB 包
安装
您可以直接安装 one_sparse 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install one_sparse; # 当前活跃 PG 版本安装
pig ext install -y one_sparse -v 18 # PG 18
dnf install -y onesparse_18 # PG 18
apt install -y postgresql-18-onesparse # PG 18
创建扩展:
CREATE EXTENSION onesparse;
用法
来源: 主页、入门文档、Matrix、Vector 和 Algorithms。
OneSparse 是一个将 SuiteSparse:GraphBLAS 绑定到 PostgreSQL 的扩展,并以新类型、函数和运算符的形式提供稀疏线性代数与图算法能力。
文档将 matrix 视为核心类型,vector 和 scalar 都建立在同一模型之上。
核心设置
CREATE EXTENSION onesparse;
SET search_path TO public,onesparse;
SELECT 'int32'::matrix;
SELECT 'int32'::vector;
SELECT 'int32:42'::scalar;
入门文档指出,OneSparse 将 API 放在 onesparse 模式中,matrix 和 vector 页面也展示了同样的 search_path 交互方式。
矩阵与向量
Matrix 页面展示了常见的矩阵操作,例如构造、打印、绘制、调整大小、类型转换和聚合。
Vector 页面展示了对应的向量 API,包括 nvals、size、set_element、get_element、eadd、emult、reduce_scalar、choose 和 apply。
SELECT print('int32(4:4)'::matrix);
SELECT draw('int32(4:4)[1:2:1 2:3:2 3:1:3]'::matrix);
SELECT eadd('int32[0:1 1:2 2:3]'::vector, 'int32[0:1 1:2 2:3]'::vector, 'plus_int32');
SELECT reduce_scalar('int32[0:1 1:2 2:3]'::vector, 'plus_monoid_int32');
图算法
入门文档使用 Matrix Market 文件和随机图来演示图算法。 它重点介绍了以下算法:
bfs(graph, 1),用于层级和父节点 BFSsssp(cast_to(graph, 'int32'), 1::bigint, 1),用于单源最短路径pagerank(graph),用于按链接结构对顶点排序triangle_centrality(graph),用于基于三角形的中心性分析betweenness(graph, ARRAY[...])和square_clustering(graph),用于更多图分析
文档中的代表性示例:
SELECT draw(triu(graph), (SELECT level FROM bfs(graph, 1)), false, false, true, 0.5)
FROM karate;
同一指南还展示了使用 mmread(...) 加载图,以及使用 draw(...) 进行图可视化。
范围
这套文档覆盖面很广。本 stub 只提炼了核心接口,以及在入门、矩阵、向量和算法页面中反复出现的主要示例,而不重复完整的 GraphBLAS 能力清单。