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

使用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 saengine = 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)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • huggingface.co 无法访问问题换源解决
  • c++修炼之路之C++11
  • Mac/Linux系统matplotlib中文支持问题
  • Java中类的成员介绍
  • 设计模式-结构性模式
  • Elasticsearch 里的父子文档插入和查询
  • upload-labs通关攻略
  • jetson orin nx安装todesk
  • Matlab三维图的坐标轴标签 自动平行坐标/自动旋转
  • Android耗电优化,如何定位问题,如何修改
  • Unity学习路线
  • vscode上传自己开发的npm包
  • 哈希表(模拟实现)
  • Linux基础指令(2)
  • Mysql 巧秒避开 varchar 类型的 max()、min() 函数的坑
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【译】理解JavaScript:new 关键字
  • exif信息对照
  • Flex布局到底解决了什么问题
  • in typeof instanceof ===这些运算符有什么作用
  • Node + FFmpeg 实现Canvas动画导出视频
  • nodejs调试方法
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python 基础起步 (十) 什么叫函数?
  • Redis中的lru算法实现
  • uva 10370 Above Average
  • vue--为什么data属性必须是一个函数
  • Web Storage相关
  • win10下安装mysql5.7
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 读懂package.json -- 依赖管理
  • 精彩代码 vue.js
  • 警报:线上事故之CountDownLatch的威力
  • 力扣(LeetCode)21
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 线上 python http server profile 实践
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 用简单代码看卷积组块发展
  • 与 ConTeXt MkIV 官方文档的接驳
  • 1.Ext JS 建立web开发工程
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • raise 与 raise ... from 的区别
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​​​【收录 Hello 算法】9.4 小结
  • ​MySQL主从复制一致性检测
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # Apache SeaTunnel 究竟是什么?
  • ### RabbitMQ五种工作模式:
  • #php的pecl工具#
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • #数据结构 笔记一
  • (3) cmake编译多个cpp文件