java数据计算的几种解决方法3

4、iBatis
    简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
    复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据库计算、跨库计算。

    成熟度:4星。iBatis经过了十几年市场的考验,是我最喜欢的框架之一。但对缓存的支持不足一直是缺陷。

    低耦合性:2星。SQL可以无缝替换,但仍然是针对具体数据库的SQL。事实上后者是数据库的问题,厂商要粘住客户,所以SQL不兼容,让你难以迁移;但程序员不愿被粘住,非要迁移。
    脚本编写:3星。它就是SQL。
    集成:4星。基本没有难度,初学者半天时间可以熟练掌握。
    界面友好性:4星。没有图形化计算过程设计界面,但可以借用SQL工具。
    性能:3星。性能比SQL略低,主要是resultSet和map/list之间转化需要多花费一点时间,另外缓存支持不如hibernate好(综合比起来两者区别不大)。其实我认为引入ORM的同时引入性能问题就是失败的。

    复杂计算:3星。同SQL,比hibernate强。
    大数据支持:1星。同SQL。
    非数据库计算:1星。同SQL。
    跨库计算:1星。同SQL。
    调试方便性:1星。同SQL。

5、R语言
    R语言不易和JAVA集成,但强大的计算能力和广泛的社区支持,以及大数据的特性使我不得不提到它。另外跨库的计算、非数据库的计算、模型计算也是它的强项。当然,在各种数据计算层中,它也是最难学习的。

    成熟度:5星。R语言的历史仅次于SQL,无数的社区在热烈讨论R,尤其是大数据时代。
    低耦合性:4星。R语言和集算器在这方面没区别。
    脚本编写:3星。这方面R和集算器很像,区别是集算器更敏捷代码更灵活,对结构化数据的支持更专业,而R内置了大量模型算法。所以基本持平。
    集成:1星。R不是JAVA架构,很难集成进JAVA,本来性能就不高,集成后更是大幅度降低。
    界面友好性:3星。有专门的IDE界面,但很粗糙,实际价值不大,这也是开源产品的通病。
    性能:2星。全内存运算,难以应付大数据量。
    复杂计算:5星。同集算器类似。
    大数据支持:3星。R与Hadoop的结合机制,但JAVA与非JAVA体系之间的结合并不容易,性能损失较大。
    非数据库计算:5星。同集算器类似。
    跨库计算:5星。同集算器类似。
    调试方便性:2星。勉强算有调试功能,但很不专业。

你可能感兴趣的:(java,hadoop,ibatis,r-langue,r)