绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
vertica 如何实现存储过程?
2022-02-14 16:04:47

JAVA 等通用语言缺乏结构化计算类库,即使简单的结构化算法,比如查询、排序、聚合,也要从零开始硬编码。对于很常用的算法,比如分组汇总、关联查询,则要编写大篇幅的代码。对于复杂些的算法,甚至要设计多个类才能勉强实现。

只要多花时间,JAVA 总是可以实现算法的,但高耦合性的缺点却无法避免。存储过程本应独立于 JAVA 代码,修改存储过程本不该影响 JAVA 代码。但 JAVA 开发的存储过程会和其他 JAVA 代码紧密耦合,只要修改存储过程,就必然重新编译打包整个项目,项目的维护成本必然升高。

如果使用集算器,实现 vertica 存储过程就会容易很多。



集算器具有丰富的结构化类库,无论查询、排序、聚合还是分组汇总、关联查询,都可以用内置函数直接实现。集算器也提供了针对结构化数据的分支判断、循环语句、动态语法,复杂业务逻辑也可轻松实现。集算器还提供了标准的 JDBC 接口,供 JAVA 代码调用,实际的存储过程则以脚本文件的形式存在,修改存储过程不影响 JAVA 代码。

例如:vertica 中 sales 表存储销售员的订单信。



逻辑算法:对每一位销售,找到他金额大和小的 3 笔订单,分别打上 "top3" 和 "bottom3" 的标记,考虑到订单数太少没意义,特规定某销售的订单数小于 3 时,则不计算 top3,订单数小于 6 时,则不计算 bottom3。计算结果应当如下:



集算器代码如下:

关于集算器 JDBC 接口,可以参考 Java 如何调用 SPL 脚本

关于集算器安装使用、获得免费授权和相关技术资料,可以参 如何使用集算器?

来源 https://zhuanlan.zhihu.com/p/152348902

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Vertica
创建时间:2022-02-08 14:13:51
Vertica
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~