PostgreSQL use UDF combine NoSQL DB's Computing Power

Postgres2015全国用户大会将于11月20至21日在北京丽亭华苑酒店召开。本次大会嘉宾阵容强大,国内顶级PostgreSQL数据库专家将悉数到场,并特邀欧洲、俄罗斯、日本、美国等国家和地区的数据库方面专家助阵:

  • Postgres-XC项目的发起人铃木市一(SUZUKI Koichi)
  • Postgres-XL的项目发起人Mason Sharp
  • pgpool的作者石井达夫(Tatsuo Ishii)
  • PG-Strom的作者海外浩平(Kaigai Kohei)
  • Greenplum研发总监姚延栋
  • 周正中(德哥), PostgreSQL中国用户会创始人之一
  • 汪洋,平安科技数据库技术部经理
  • ……
 
  • 2015年度PG大象会报名地址:http://postgres2015.eventdove.com/
  • PostgreSQL中国社区: http://postgres.cn/
  • PostgreSQL专业1群: 3336901(已满)
  • PostgreSQL专业2群: 100910388
  • PostgreSQL专业3群: 150657323



PostgreSQL数据库如何利用NoSQL数据库的强大计算能力或某些特性呢?
这个问题实际上是因为一种数据库不可能做到适合任何场景,一个企业的不同业务类型可能使用的数据产品也千差万别。昨天和一位朋友聊到一个应用场景,他们有部分数据是存储在aerospike的,在aerospike中做BIT运算是很快的,但是当需要多个条件的组合时(多级索引),可能就不是那么适合了。
这个时候PostgreSQL就派上用场了,将aerospike中的KEY存储到PostgreSQL中,还有多级索引涉及的字段内容也存储到PostgreSQL中,VALUE(bitmap)还是存储在aerospike中。
这么做之后,原来的查询就变成PostgreSQL中的查询了,但是如何才能结合aerospike中的bit运算结果呢?这个时候需要使用PostgreSQL的UDF功能,参考本文参考部分,例如aerospike支持python,那么我们就在PostgreSQL中使用PL/python语言来编写这个UDF。
PostgreSQL use UDF combine NoSQL DBs Computing Power - 德哥@Digoal - PostgreSQL research
使用UDF可以很好的调动外部数据源的计算能力。目前PostgreSQL支持多种语言的函数,例如C,python,perl,tcl,java,javascript,R等等。

当然除了UDF,实际上PostgreSQL还有FDW,只是不是所有的数据源目前都有开源的FDW,所以UDF使用起来门槛更低,还有一点,并不是所有的查询FDW都支持where条件的push down,所以这个时候还是要靠UDF。
目前PostgreSQL支持的FDW请参考:

UDF这种用法,其实在其他产品中也屡见不鲜,例如R的pivotalR包,也可以认为是一种UDF包,它实际上是在Greenplum或HAWQ中执行相应的SQL语句,并将数据返回给R,这正是R利用MPP的数据处理能力的一种手段。与本文在PostgreSQL中使用UDF利用aerospike的计算能力的思路是一样的。

[参考]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值