如何应对后期,用户对系统上的新加需求及变动?

展开阅读全文

应对大数据上SQL的需求:Apache Drill

08-25

[size=14px][align=center]应对大数据上SQL的需求:Apache Drill[/align][/size]rnSQL已经相当流行——为什么呢?客户正在寻求交互式的大数据解决方案,这些解决方案需要流线型工作流和选择便利性。能够在Hadoop和其他大数据系统上使用SQL,已经朝着这一目标迈了一大步。rnrn产生这种需求的一个原因是,这些大数据工具可以与SQL交互,但是以往的大数据解决方案并不能。上世纪70年代IBM研究院Ted Codd开发了SQL,因为人们需要一个标准方式来访问和使用关系型数据库中的数据。这需求仍然存在,它甚至比以前更重要,因为目前很多系统已经实现生成标准的SQL。然而,对于Hadoop这样的现代可扩展系统和非关系型数据库,标准事务型SQL不再适用,所以,系统分离了。这种不当的搭配可能意味着冗余、昂贵和复杂的工作区,来满足SQL兼容基于Hadoop大数据系统的低成本优势的广泛需求。rnrnMapR技术通过多种方式解决这些问题。它通过自己的大数据平台和对开源项目Apache Drill的贡献来提供广泛的支持。rnrn多达30种新产品和开源项目试图解决Hadoop上SQL和类SQL的需求,包括Apache Hive,Cloudera的Impala,开源Apache Drill,通过Cascading开发的MapReduce和Hadoop的开源SQL解决方案Lingual。rnrn[b]Apache Drill是什么?为何MapR对它投入如此之多?[/b]rnrn客户想要很广泛的功能,而在引入新技术的时候,Apache Drill的设计使得它能够很容易就连接到大范围的分析工具和数据源。rnrn很多Hadoop项目上的SQL都是把小数据集上开发的功能再次开发,尽力让它们满足大数据的需求。虽然它们解决了很多真实的需求,但是它们根本上还是后视镜型项目。相反,Apache Drill作为一个媒介,将新技术引入这个问题域。Apache Drill受到google的Dremel项目的影响,达到了更高的要求,并且正在设计新的功能。rnrnApache Drill提供了访问大数据存储的交互式特定查询功能。Drill的一个重要特征就是速度,它被设计在低延迟响应下处理P字节的数据。Drill很重要的一个方面是,它不解决过去5-10年的问题,而是向前建立一个新的技术,解决当前和未来5年内的需求。rnrnDrill高灵活度的架构设计主要提供如下关键技术:rn1模式可选rn2处理嵌套数据的能力(例如JSON,Protobuf,Parpuet)rn3柱形内存存储和执行rn4全标准的ANSI SQL:2003查询能力rn5先进的低成本优化器rn6为多个社区提供广泛好处的高可扩展的架构(例如,向非SQL PIG的扩展能力,或者建立机器学习原语,能够集成到Drill为Mahout提供先进执行引擎)rn7YARN整合rnrnApache Drill开源项目的社区驱动方面相当重要。除了MapR的支持,Apache Drill的贡献者来自不同的地区和公司,包括Pentaho,Oracle和VMVare等。Drill开发者一直合作产生大量的代码,准备alpha版本的发布。随着这些新技术将传统工具和现代基于Hadoop的系统连接起来,我们正在进入一个大数据分析和大规模机器学习的令人激动的时期。rnrn来自[url=https://www.mapr.com/blog/responding-to-the-need-for-sql-on-big-data-apache-drill#.U_shFXWSzCI]Responding to the Need for SQL on Big Data: Apache Drill[/url] 论坛

sql 需求

11-13

一张表有daily_key,line,Mac,hour,status四个栏位, rndaily_key 日期, rnline有五跳线分别是:aa,bb,cc,dd,eern每个line下可以对应多个Mac机器 rn机器有两种状态RUN和DOWNrnhour记录的是每种状态的时间。rn由于用户每次输入的日期和需要查看的line不同,还要考虑到除数不能为零 ,如果为零则输出0,否则输出商的结果。rn这句SQL是写在存储过程中;rn需要输出 如下结果:rnCREATE TABLE table_arn( rndaily_key VARCHAR2(20),rnline VARCHAR2(20),rnMac VARCHAR2(20),rnhour VARCHAR2(20),rnstatus VARCHAR2(20)rn)rnINSERT INTO table_a VALUES('20090909','aa','RUN','3','2');rnINSERT INTO table_a VALUES('20090909','aa','RUN','1','1');rnINSERT INTO table_a VALUES('20090909','aa','RUN','0','0');rnINSERT INTO table_a VALUES('20090909','aa','DOWN','5','5');rnINSERT INTO table_a VALUES('20090909','aa','DOWN','6','6');rnINSERT INTO table_a VALUES('20090910','bb','RUN','1','2');rnINSERT INTO table_a VALUES('20090910','bb','DOWN','5','4');rnINSERT INTO table_a VALUES('20090910','bb','DOWN','6','8');rnINSERT INTO table_a VALUES('20090910','bb','DOWN','21','11');rnINSERT INTO table_a VALUES('20090910','bb','DOWN','33','11');rnINSERT INTO table_a VALUES('20090910','cc','DOWN','10','20');rnINSERT INTO table_a VALUES('20090910','cc','DOWN','50','40');rnINSERT INTO table_a VALUES('20090910','cc','DOWN','60','80');rnINSERT INTO table_a VALUES('20090910','cc','DOWN','21','11');rnrn比如说line aa; rn aa上所有Mac机器RUN的时间除以aa上所有Mac机器DOWN的时间rn rn日期 aa bb cc ee ffrn20090101 RUN/DOWN RUN/DOWN RUN/DOWN RUN/DOWN RUN/DOWNrn20090102 RUN/DOWN RUN/DOWN RUN/DOWN RUN/DOWN RUN/DOWNrn20090103 RUN/DOWN RUN/DOWN RUN/DOWN RUN/DOWN RUN/DOWNrnrnrn日期 aa bb rn20090101 RUN/DOWN RUN/DOWN rn20090102 RUN/DOWN RUN/DOWN rn20090103 RUN/DOWN RUN/DOWN 论坛

没有更多推荐了,返回首页