文档章节

FunDA:一个开源的函数式数据处理工具库,也是Slick的补充

TIGER_XC
 TIGER_XC
发布于 2017/04/10 13:38
字数 651
阅读 20
收藏 0

  如果你是一个Slick用户,或者你是一个数据库编程人员正在尝试进入函数式编程模式,那么FunDA可能会帮到你。

目前市面上FRM(Functional Relational Mapper),即函数式的数据库处理工具库的选择并不多,Typesafe公司的Slick可能是最通用的选择了。整体上来说:Slick还是一个不错的函数式数据库编程工具,用scala语言,很多地方引用了函数式的抽象模式和对象(functional abstractions and objects)。但是,FRM是一种偏重数据读取(data access)的开发模式,骨子里是一种批次运算模式,缺少了数据处理(data persistence)所惯用的recordset逐行处理方式。对于那些习惯了使用ORM(Object Relational Mapper)的资深数据库软件编程人员来说,这几乎是他们在大型复杂数据库软件开发项目中无法使用Slick的致命弱点。另一方面市面上容易掌握的能实现数据处理并行运算的开发工具也不多,对这方面的需求也比较旺盛。

  FunDA在Slick功能的基础上增加了recordset数据集逐行处理功能,让使用者感觉亲切,能更灵活自然的在前台内存里实现强大的数据处理功能。更重要的是FunDA增加了并行运算功能,可以实现对数据库的并行读写、以及数据处理函数的并行运算。此外,FunDA的数据库读取方式支持reactive-streams标准,能对大量数据进行后台缓存,然后逐块输出,保证了资源的安全使用。

  虽然作为一个函数式组件库(combinator library),但考虑到FunDA的使用人群是面向那些有着丰富数据库编程经验的编程人员,应该尽量降低用户对函数式编程技能的水平要求。FunDA通过一套自定义函数编程模式能使用户按照固定的方式编写程序,避开函数式编程的多样方式,把精力集中在数据处理功能上。

  FunDA现在已经是一个开源项目了。项目地址是:https://github.com/bayakala/funda 欢迎大家下载尝试。希望大家能有良好的使用体验。作为一个开源项目,作者更希望能有更多的人直接参与这个项目的开发,为项目发展作出贡献。

© 著作权归作者所有

共有 人打赏支持
TIGER_XC
粉丝 0
博文 12
码字总数 13278
作品 0
深圳
程序员
私信 提问
Scala 技术周刊 | 第 24 期

这里有最新的 Scala 社区动态、技术博文。 微信搜索 「scalacool」关注我们,及时获取最新资讯。 深度阅读 Resolve me, Implicitly 依赖注入 Refined types, what are they good for? 让类型...

ScalaCool
2017/10/23
0
0
GitHub上整理的一些工具,求补充——转的,先mark了

技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社...

tyou
2016/03/04
145
0
JavaScript —— 下一代物联网全栈开发

作者简介:李知周,中国科学院微系统与信息技术研究所博士,物联网早期创业者,发起了开源物联网项目 Openfpgaduino,目前在国际知名投资银行从事基于大数据与机器学习的网络安全开发。 本文...

tangxiaoyin
2017/05/11
0
0
Apache Beam是什么?

以下是Apache Beam的官网 : https://beam.apache.org/ Apache Beam的前世今生 Apache Beam前身是Google Dataflow SDK,DataFlow是谷歌的提供大数据计算平台。在DataFlow之前,谷歌的批处理和...

技术小哥哥
2016/06/26
0
0
Slick-pg v0.15.0-M1 发布,Slick 的 PostgresSQL 扩展

Slick-pg v0.15.0-M1 发布了。Slick-pg 是一些针对 PostgreSQL 的 Slick 扩展,用于支持 PostgreSQL 的(特有)类型及/或相关函数。如果你对使用 Slick 来开发基于 PostgreSQL 的程序感兴趣,...

Tu_Minglei
2016/07/11
425
0

没有更多内容

加载失败,请刷新页面

加载更多

linux 服务管理 Crontba、Ntpdate、Logrotate、Supervisor

crond linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。 另外, 由于使用者自己也可以设置计划任务,所以,...

狼王黄师傅
32分钟前
1
0
Sobel算子和Scharr滤波器

Sobel算子在数学上的本质是微分,对离散信号,是求邻域内的增量。 基本原理:在图像上,对图像信号在某点进行微分,表示图像的某个特征(如,强度、色调或者饱和度)在该点的变换程度。以强度...

yepanl
49分钟前
1
0
Jenkins API 使用

Jenkins 是一款流行的开源持续集成工具,可以用来做一些软件开发的自动化工作,如打包,测试,自动部署等。 Jenkins 中有 view 和 job 的概念, view 相当于组, job 则是具体的任务。 view...

YanWen
50分钟前
5
0
聊聊jest的NodeChecker

序 本文主要研究一下jest的NodeChecker NodeChecker jest-common-6.3.1-sources.jar!/io/searchbox/client/config/discovery/NodeChecker.java public class NodeChecker extends AbstractS......

go4it
57分钟前
3
0
深入分析String.intern和String常量的实现原理

背景 字符串类型在实际应用场景中使用非常频繁,如果为每个字符串常量都生成一个对应的String对象,明显会造成内存的浪费,针对这一问题,虚拟机实现一个字符串常量池的概念,提供了如下实现...

群星纪元
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部