分布式数据访问服务之2—数据实时分析篇

上篇博文中,我们横向对比了业界主流的分布式数据访问服务,可以说是各有所长:

分布式数据访问服务之1—华山论剑篇

在数据库分库分表实现横向伸缩后,数据的综合查询、分析,业界都有哪些解决方案?这是一个值得研究和讨论的主题。

所以,本篇文章中继续研究分库分表后的数据库综合查询和实时分析技术。

去年我们参加了阿里的云栖大会,参会期间咨询了阿里中间件团队的专家,总结了一下,业界有以下三种技术方案:

1. 大数据:大数据中更多的是Hadoop离线分析、Hive、 Spark 、JStorm等实时分析技术

2. 数据仓库

3. 分析型数据库:

大数据是一个比较大的范畴,我们团队目前也在做应用和落地。但是基于大数据实现分库分表后的综合查询和数据分析,还有很长的路要研究。

但是数据仓库和分析型数据库是一个比较可行的方案,本文中我们主要介绍两种:Druid和GreenPlum

一、Druid

Druid是一个为大型冷数据集上实时探索查询而设计的开源数据分析和存储系统,用于大数据实时查询和分析的高容错、高性能开源分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。

  • 为分析而设计——Druid是为OLAP工作流的探索性分析而构建,它支持各种过滤、聚合和查询等类;
  • 快速的交互式查询——Druid的低延迟数据摄取架构允许事件在它们创建后毫秒内可被查询到;
  • 高可用性——Druid的数据在系统更新时依然可用,规模的扩大和缩小都不会造成数据丢失;
  • 可扩展——Druid已实现每天能够处理数十亿事件和TB级数据。

Druid主要应用场景:广告分析、互联网广告系统监控以及网络监控等。

使用Druid,我们比较关注的是:是否支持类SQL查询、聚合操作?

Druid 查询
Druid的本地查询语言是JSON通过HTTP,虽然社区在众多的语言中提供了查询库,包括SQL查询贡献库;

Druid设计用于单表操作,目前不支持联接。许多产品准备在ETL集成,数据加载到Druid之前需要规范化。

Druid 聚合

GROUP BY timestamp, publisher, advertiser, gender, country  
  :: impressions = COUNT(1),  clicks = SUM(click),  revenue = SUM(price)

参考链接: http://yangyangmyself.iteye.com/blog/2320502

综合来讲,Druid是一个不错的OLAP解决方案,但同时不支持关联查询,需要改造原有SQL查询写法。

二、GreenPlum

Greenplum分布式数据库是为了支持新一代数据仓库和分析处理大规模数据而设计的。

Greenplum支持SQL和MapReduce的并行处理功能,支持50PB(1PB=1000TB)级海量数据的存储和处理。

高并发、线性扩展

Greenplum的架构采用了MPP(大规模并行处理)。在 MPP 系统中,每个 SMP节点也可以运行自己的操作系统、数据库等。在MPP架构中增加节点就可以线性提高系统的存储容量和处理能力。Greenplum在扩展节点时操作简单,在很短时间内就能完成数据的重新分布。

实时查询

通过准实时、实时的数据加载方式,实现数据仓库的实时更新,进而实现动态数据仓库(ADW)。

基于动态数据仓库,业务用户能对当前业务数据进行BI实时分析-“Just In Time BI”。

高可用性

在已有案例中最多使用了96台机器的集群MPP环境。除了硬件级的Raid技术外,Greenplum还提供数据库层Mirror机制保护,即每个节点数据在另外的节点中同步镜像,单个节点的错误不影响整个系统的使用。

简单易用

Greenplum产品是基于流行的PostgreSQL之上开发,几乎所有的PostgreSQL客户端工具及PostgreSQL应用都能运行在Greenplum平台上,在Internet上有着丰富的PostgreSQL资源供用户参考。

数据处理

支持数据查询,机器学习,文本挖掘,统计计算等
使用业界标准的语言(SQL,MapReduce,R),在各个数据层级进行并行分析

GreenPlum MPP架构:

GreenPlum数据分布:

在greenplum中每个表都是分布在所有节点上的。Master host首先通过对表的某个或多个列进行hash运算,然后根据hash结果将表的数据分布到segment host中。整个过程中master host不存放任何用户数据,只是对客户端进行访问控制和存储表分布逻辑的元数据。

GreenPlum并行执行计划分发:

Postgre SQL聚合查询

Apache MADLib 查询

对比Druid和GreenPlum:

Druid更适用于大数据(冷数据)分析,GreenPlum更适用于业务数据实时分析。

基于GreenPlum实现业务综合查询:数据同步(SQLServer->GreenPlum),官方提供的解决方案:数据CSV-定时导入GreenPlum,有数据延迟、增量同步问题。

周国庆

2017/5/11

时间: 2024-10-13 00:13:37

分布式数据访问服务之2—数据实时分析篇的相关文章

KB: Operations Manager为什么刚装好就显示数据访问服务SPN未注册

对于我这种强迫症患者,服务账号能用域账号就不用本地的.微软最佳实践也是这么建议的,于是我在安装SCOM的时候就是按照下面这样来规划账户的. 用户名 用途 权限级别 类型 隶属于 acertwp\svcomda OM数据访问服务和配置服务帐户 低权域用户 用户 SQL本地管理员SCOM本地管理员 acertwp\svcomw OM数据仓库写入账户 低权域用户 用户 SQL本地管理员SCOM本地管理员 acertwp\svcomr OM报表查询账户 低权域用户 用户 SQL本地管理员SCOM本地管理

《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:发布具有同步能力的FeatureService服务

1.前言 从ArcGIS 10.2.1开始推出离在线一体化技术之后,数据的离在线一体化编辑一直是大家所关注的一个热点.数据存储在企业级地理数据库中,通过ArcGIS桌面软件加载后配图处理,并发布到ArcGIS for Server中,供移动端设备离线编辑使用,并可以同步回传版本化存档.这其中涉及多项配置操作,本篇文章主要针对FeatureService服务的发布流程做一个简单的介绍.以备查阅. 转载请注明出处:http://www.cnblogs.com/gis-luq/p/5857188.ht

通过jQuery或ScriptManager以Ajax方式访问服务

1.客户端和服务端 服务端对外提供服务时,可以通过handler或者webservice.handler比较轻便,但是难以对外公开,只有程序员自己知道它到底做了些什么工作.webservice可以将服务对外公开,调用也方便,更加专业些.如果不是要公开的接口,handler完全可以胜任了.下面是将webservice发布的效果. 客户端在调用服务端的服务时,最简单的莫过于使用jQuery了.当然微软也提供了ScriptMananger来访问WebService.他们之间的关系可以用下图说明. 2.

《31天成为IT服务达人》之技能篇中的磁带库

 磁带备份是最早的存储应用之一,磁带价格低廉,介质稳定,可以异地脱机保存,运输方便,一开始就是存储.备份和恢复的主要介质.但近年来,硬盘存储取得长足发展,访问速度与可靠性均不断提升,单位容量成本则不断降低,而CDP(Continuous Data Protection,持续数据保护)技术的兴起,更充分利用硬盘存储的优势,使数据的备份恢复真正成为实时备份.CDP软件的兴起将在备份.恢复应用领域对磁带技术形成巨大的冲击.而在硬盘存储的全面侵蚀下,全球磁带市场都呈现了不景气的趋势. 业内认为磁带最

Dynamic CRM 2015学习笔记(4)修改开发人员资源(发现服务、组织服务和组织数据服务)url地址及组织名

在azure vm上安装了CRM 2015后 Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015, 发现了一个问题,那就是在设置 ->自定义项 –> 开发人员资源 里面的几个ulr(发现服务.组织服务和组织数据服务)都不对,显示的都是http://机器名/XRMServices/2011/ -, 但这个url是访问不了的,正确的url应该是 http://xxx.cloudapp.net/XRMServices/2011/ - 下面介绍如何修改成正确的url.

构建微服务:Spring boot 入门篇

构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适). 使用spring boot有什

独孤九篇之运维进阶:文件共享服务全攻略完结篇

一.了解一下 1.NFS NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. 好处: 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用.用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上

苏宁人工智能研发中心智能创意平台架构成长之路(二)--大数据架构篇

苏宁人工智能研发中心智能创意平台架构成长之路(一)--长篇开篇 https://www.cnblogs.com/laoqing/p/11326132.html   我们接着第一篇继续. (这是第二篇大数据架构篇,成长之路序列会包含多篇,笔者作为这个平台的架构兼技术经理,充分讲述其中的迭代心酸之路以及中间遇到的问题和解决方案) 声明:文章不涉及公司内部技术资料的外泄,涉及的图片都是重画的简易架构图,主要通过架构的演进,讲述分享技术的迭代之路和过程. 在第二轮迭代完成后,第三轮迭代中,我们就开始做平

实现硬件访问服务的JNI方法

1.实现硬件访问服务的JNI方法 ~/android-2.3_r1/frameworks/base/services/jni ----com_android_server_FregService.cpp ----onload.cpp ----Android.mk com_android_server_FregService.cpp #define LOG_TAG "FregServiceJNI" #include "jni.h" #include "JNI