当前位置: 首页 > article >正文

使用pgrs在wsl中为postgres写拓展

今天开始研究pgrs写pg扩展. 这是postgres is everything数据组合流派核心功法,近期duckdb,zombodb,datafusion等等产品都是数据组合流思路体现, 把这套功法练到大成,处于2024年,综合数据规模/相应速度/和数据应用层解耦,就有了一个最佳答案. 比以前hadoop,spark那套鬼真的好很多. 应用层面对的是老朋友pg,写的也是熟悉的sql,.但是可以去操作parquet,mysql,mongodb,甚至搜索引擎数据,而且性能不存在理论短板,就说以目前技术水平,都是零成本.

网上资料较少,中文基本没有,英文也很少. 摸索了一上午,跑通了hello world,记录下,后面就是深入的事情. 本文不搬运所有细节,大概把关键坑说出来.

  1. wsl 以及rust 安装自己查,注意此刻不需要安装pg,开发也不需要安装pg,pgrs自动把改安装的都安装了,还是多版本安装
  2. 按照 https://github.com/pgcentralfoundation/pgrx 一路创建项目,我就不搬运了. 创建的项目自带hello_first
  3. 如何验证代码? 运行 cargo pgrx run pg14 ,此刻进入了一个psql环境.注意这个pg14环境就是给你写代码的,和你真正运行的数据库没关系. 所有的psql关于pg拓展有这么几个基本命令可以使用:
    • SELECT * FROM pg_available_extensions; 显示
    • create extention xxx;注意是项目文件夹名称
    • drop extention xxx ;
    • 当你create了后select hello_first(); 就可以验证刚才代码.

4 如何把拓展拷贝到真正的环境:
- 方法1 安装postgres后,版本对好, 把上面代码cargo pgrs package,找到对应的.sql和.control两个文件,这就是拓展,拷贝到/usr/share/postgresql/14/extension
- 方法2 直接cargo pgrs install 他帮帮你拷贝了. 但可能有权限问题.

5 wsl的pg,win如何访问?
- 设置密码 sudo passwd postgres
- /etc posgresql.conf listen “*”
- pg_hba.conf host all all 0.0.0.0/0 trust

6 如何配置vscode ? 用wsl拓展

7 如何使用py调用拓展:

import sqlalchemy as sa

engine = sa.create_engine('postgresql+psycopg2://postgres:a@172.20.196.29:5432/wq',pool_recycle=3600, pool_size=80, max_overflow=0)

query = sa.select(sa.func.hello_first().label('hello_res'))
with engine.connect() as conn:
    rows = conn.execute(query)
    for row in rows:
        print(row.hello_res)


http://www.kler.cn/news/285277.html

相关文章:

  • HTTP/1和HTTP/2
  • Java面试前言
  • 【Sql Server】sql server 2019设置远程访问,外网服务器需要设置好安全组入方向规则
  • 腾讯开源突破技术:V-Express引领人像照片视频化新潮流
  • 数学建模强化宝典(3)fminsearch
  • C++笔记9•list•
  • 使用 Nginx 部署前端 Vue 项目
  • Excel下拉框多选
  • MIT的10门免费线上课,YYDS!
  • 算法day17|如何求普通二叉树的众数
  • DevOps实现CI/CD实战(二)-Jenkins配置
  • 鸿蒙( API 12 Beta5版)开发实战-UI优化布局性能
  • 视频中间件:与海康ISC平台级联
  • linux文件——文件系统——学习、理解、应用软硬件链接
  • 2025届北森智鼎SHL牛客倍智易考智联题库、十大测评系统通关攻略
  • 数值分析笔记(六)非线性方程求根
  • 周末总结(2024/08/31)
  • C语言 | Leetcode C语言题解之第383题赎金信
  • 宿舍|基于SprinBoot+vue的宿舍管理系统(源码+数据库+文档)
  • 访问者模式详解
  • 【摸鱼笔记】python 提取和采集 finereport 未绑定目录的报表模板
  • GPT-SoVITS:零样本语音合成AI
  • 如何使用pytest的fixtures以及pytest-dependency插件来管理接口之间的依赖关系(下)
  • V8 引擎的核心架构
  • DCB简介
  • Python入门全解析丨Part3-Python的循环语句
  • 英语2-小作文
  • Java | Leetcode Java题解之第386题字典序排数
  • 性能优化笔记二(本地缓存)
  • 05:【江科大stm32】:定时器输出比较功能(PWM)