结构化大数据的几种计算方法(二)

来源:互联网 发布:招商银行行情软件 编辑:程序博客网 时间:2024/04/29 19:53

        3、 SQL:这里是指完整的SQL/SP,即ANSI 2000或其超集。以Greenplum为例,GreenplumSQL计算能力强,开发效率高,性能高,这是它最大的优势。其他优势包括语言通用性强,学习成本低,维护简单、有一定的移植可能性。当然,它还有个绝招:支持存储过程,可以进行复杂的计算,因此可以方便地从大数据中获得商业价值。示例如下:

CREATE OR REPLACE functionview.merge_emp()

returns void as $$

BEGIN

                  truncate view.updated_record;

                  insert into view.updated_record selecty.* from view.emp_edw x right outer join       emp_srcy       on x.empid=y.empid where         x.empid is not null;

                  update view.emp_edw setdeptno=y.deptno,sal=y.sal from view.updated_record y   where          view.emp_edw.empid=y.empid;

                  insert into emp_edw select y.* fromemp_edw x right outer join emp_src y on   x.empid=y.empidwhere  x.empid is null;

end;

$$ language 'plpgsql';

         类似的MPP架构的数据库还有Teradata、Vertical 、Oracle、IBM等,它们的语法特征大多相似。缺点也有相似性。它们的购买成本和后续维护成本极高。其中自称廉价的Greenplum实则价格不菲,它按数据规模收费,被称为披着BigData外皮的BigMoney。其他缺点包括:难以调试、语法不兼容、扩容时停机时间长、难以进行多数据源的计算等。

 

         4、类SQL:这是指具有JDBC/ODBC等输出接口,但仅是标准SQL的子集的一类脚本语言。这里以Hive QL为例。开发方便的同时可以廉价横向扩容,这是Hive QL最大的优势。它具有SQL的语法特征,因此学习成本低,开发效率高,维护简单。另外Hive是Hadoop的组件,开源是它的一大优势。示例如下:

SELECT e.* FROM (

         SELECTname, salary, deductions["Federal Taxes"] as ded,

                  salary* (1 – deductions["Federal Taxes"]) as salary_minus_fed_taxes

        FROMemployees

         )e

WHEREround(e.salary_minus_fed_taxes) > 70000;

         Hive QL的缺点是不支持存储过程,因此难以进行复杂计算,也就难以真正提供有价值的计算结果。稍复杂的计算它需要求助于MapReduce,开发效率很低。性能差,有门槛时间也是个致命弱点,比如分配任务,或执行多表关联计算、行间计算、多级子查询、有序分组计算等算法时。因此很难实现实时的Hadoop大数据应用。

         也有其他产品支持类SQL,比如MongoDB,但比Hive尚有差距。

 

         大数据计算的方法不外乎API 、Script、SQL、类SQL这四类,希望它们更进一步,出现更多成本低廉、计算能力强的实用产品。