当前位置:首页 > 开发 > 数据库 > 正文

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

发表于: 2013-10-29   作者:datamachine   来源:转载   浏览:
摘要: 2、SQL     SQL/SP/JDBC在这里属于一类,这是老牌的数据计算层,性能和灵活性是它的优势。但随着新情况的不断出现,单纯用SQL已经难以满足需求,比如: JAVA开发规模的扩大,数据量的剧增,复杂计算问题的涌现。虽然SQL得高分的指标不多,但都是权重最高的。     成熟度:5星。最成熟的。   
2、SQL
    SQL/SP/JDBC在这里属于一类,这是老牌的数据计算层,性能和灵活性是它的优势。但随着新情况的不断出现,单纯用SQL已经难以满足需求,比如: JAVA开发规模的扩大,数据量的剧增,复杂计算问题的涌现。虽然SQL得高分的指标不多,但都是权重最高的。

    成熟度:5星。最成熟的。
    低耦合性:0星。耦合性极高。除了在实验室之外,几乎不可能写出与数据库无关,与代码无关的计算脚本。

    脚本编写:3星。SQL实际很难写出也很难维护,需要大量的时间去学习,好在SQL非常成熟,资料丰富论坛很多。但各种数据之间的不兼容也是个巨大的障碍,这是Hibernate之所以流行的主因。
    集成:5星。JAVA程序员的第一课就是用JDBC连接数据库。
    界面友好性:5星。有大量的SQL开发工具,成熟度都很高,我自己用过不下10种。
    性能:5星。数据库直接支持的语言,性能最高。
    复杂计算:3星。SQL适合普通的计算问题,可以解决复杂问题但非常困难(而Hibernate是完全不能)。SP的出现并不能有太大的改善。代码难以拆分,复杂目标难以分解为简单步骤是主因。
    大数据支持:1星。个别数据库厂商表示已经支持大数据了,但这让SQL语句的不兼容程度加剧了,而且我也没见过成功案例。
    非数据库计算:1星。不直接支持。采用ETL/数据仓库可以达到这个目的,但代价巨大。
    跨库计算:1星。个别数据库支持,但性能较差,也可以采用DBLink和link server等中间件勉强支持,但离“自由方便”的程度还差得远。
    调式方便性:1星。很难调试,难以观察中间结果,只能全部执行完才能看到最终计算结果。唯一的办法是“以调试为目标进行编程”,即刻意建造大量临时表。

3、集算器
    最近在研究的就是这个,号称擅长复杂、跨库的计算,跟Cloudera在2012年发布了impala 1.0 beta版(开源)类似。和其他数据计算层不同,集算器只是将SQL作为一种数据源,而取到数据后的计算则完全和SQL无关。PJA/hibernate则被迫开放SQL接口,用来实现自己处理不了的计算。

    成熟度:1星。在市场出现仅1年,应用的广度和深度都不如其他数据计算层。
    低耦合性:4星。脚本独立于数据库和Java代码,算法和具体数据库无关,耦合性低,可以轻松移植到不同的数据库。因为输出接口为JDBC,所以也可以移植到报表,这是其他数据计算层所不具备的特征。
    脚本编写:4星。脚本写在网格中,单元格可以按格名调用,可以直接观察每一步的计算结果,复杂目标可以分解为简单步骤。但它的语法偏向对象引用(但不是对象),与偏向描述语句的SQL风格不同,需要学习。JAVA程序员到底喜欢哪一种,还很难说。
    集成:5星。集算器是纯JAVA架构,输出JDBC接口,没有学习成本,用过任何一种数据库的程序员都可以无障碍使用。
    界面友好性:4星。独立的图形化编辑器,使用方便直观,但帮助系统不够友好。
    性能:2星。全内存计算,数据量不能太大。
    复杂计算:5星。这是集算器出现的原因。
    非数据库计算:3星。支持Excel/Txt,但不支持xml或webService。
    大数据支持:4星。能访问HDFS,同步宣称支持并行计算,但细节还不太了解。
    跨库计算:5星。集算器语法与具体数据库无关,天生支持跨库计算。
    调式方便性:5星。调式功能完善,而且使用非常方便,可以观察到最细粒度的计算步骤。

    现在在做性能测试,看表现如何。

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
服务端代码 定义接口 import java.rmi.Remote; import java.rmi.RemoteException; /** * * MyRemote
本文将重点介绍如何抽象业务规则到业务逻辑层中,该层在显示层和数据访问层之间充当桥梁作用。 一、
情况二; 在myeclipse中配置tomcat虚拟内存; windows----->preferences---->搜索tomcat----&
ORM框架的定义:对象-关系映射(Object/Relation Mapping,简称ORM) 常见的是:数据库结构=》映射O
为了支持结构化数据存储服务的高可用性和可扩展性,非关系型数据库的架构通常比较复杂,而且具体实
虚拟化数据中心的扩张——大二层网络设计 从本节开始,对数据中心内部的网络架构如何应对云计算业务
接入层网络   服务器虚拟化技术使得传统的接入层概念发生变化,即不再是物理网口级别的接入、管理
package com.han; import java.awt.BorderLayout; import java.awt.Container; import java.awt.eve
/* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生
entity: package cn.epet.entity; /** * 主人类 * * @author chaoyi * @2013-11-7 */ public class
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号