基于大数据的分析查询解决方案.docx
《基于大数据的分析查询解决方案.docx》由会员分享,可在线阅读,更多相关《基于大数据的分析查询解决方案.docx(34页珍藏版)》请在冰豆网上搜索。
基于大数据的分析查询解决方案
XX基于大数据的分析查询
解决方案
文档版本号:
V1.0
文档编号:
文档密级:
归属部门/项目:
产品部
编写人:
编写日期:
2017.10.09
XX技术有限公司
修订记录:
版本号
修订人
修订日期
修订描述
V3.0
1.项目背景
2.项目需求及目标分析
XXX客户现有大量的文件(包含JSON文件),根据key查找json文件内的vaule需要大量的时间和精力,且不能做到对相关关联文件的查询,对目标数据的没有可视化的分析系统。
大数据查询分析系统支持海量数据的采集、过滤、转换、存储、搜索、查询、统计、分析、可视化与安全管理等大数据全生命周期管理,各种行业应用和最终用户,可以通过平台提供的丰富的接口,完成大规模行业数据的挖掘分析和应用对接管理。
对外提供大容量数据分析和查询能力,为解决各大企业的以下需求:
●软硬件国产自主可控,所有软硬件需要自主可控产品,数据存储产品需要采用国产核心处理器。
●多源异构数据接入
●数据关联融合、统一访问
●大规模、高性能、可扩展
●本期项目对存储的约80T文件(包含json)文件进行大数据查询分析,千亿级记录和文档的检索(特别是json数据的检索),在该数据规模下实现秒级响应。
●对关键字进行关联分析,展示出关系图,可以展示与此相关联的数据方案介绍。
●高可靠、高可用
3.项目方案介绍
系统架构
图2-1XX大数据系统系统架构图
如上图所示,XX大数据系统是一款大数据管理分析平台,基于底层的基础平台,自下而上可以分四层,依次是数据存储层、数据总线、数据处理层以及业务适配层。
同时具有高性能和高可用的特征。
●数据存储层:
支持海量异构数据的统一可靠的存储管理,对外提供统一的分布式调用接口。
●数据总线:
支持数据采集、过滤、缓存、中转分发调度等。
数据总线是计算与存储的枢纽,同时是内外数据交换的通道,完成数据在组件间及层次间中转、缓冲及调度。
●数据处理层:
基于支持多种计算模型的分布式计算框架,为上层业务系统提供专业的计算处理库,包括文本处理、搜索引擎、数据挖掘等。
●业务适配层:
为上层业务系统提供各种不同协议和标准的访问接口。
●高性能高可用保障:
通过软硬件多方优化配置和深度研究,保证整个平台的高可用和高性能。
产品特点:
●面向网络内容及社会计算领域,通过多年积累数据处理层的特有业务处理引擎
●深度业务适配及衍生的垂直解决方案
●以数据总线为中心进行数据全生命周期调度及价值实现的数据流驱动视角
数据存储
XX大数据系统为用户提供企业级大数据平台软件一体化解决方案;并支持特殊应用场景下的定制化硬件加速。
面对结构复杂、需求多变的异构数据处理业务,XX大数据系统不仅提供统一、稳定、高效的存储子系统,还整合了先进的分布式集群资源管理和进程调度方案、高性能数据总线技术、全并行架构分布式关系数据库、面向图计算的并行图数据库、分布式KV存数据库,以及面向用户业务的各类工具软件和库支持。
基于XX大数据系统平台,用户可以以非常低的时间代价构建大规模企业大数据一体化解决方案。
图3-1:
XX大数据系统数据存储子系统结构图
上图是XX大数据系统存储组件的结构图,主要包括如下功能组件:
●HDFS:
基于对象的高性能分布式文件存储系统。
●TBase:
分布式Key-Value数据库。
●DSQL:
分布式关系数据库。
●GraphDB:
并行图数据库。
3.1.1.HDFS分布式文件系统
HDFS是一款针对海量数据存储应用而设计的大规模通用集群存储系统,采用通用硬件设备作为基本的构建单元,为应用提供全局统一的系统映像和完全POSIX兼容的API接口。
HDFS系统采用了存储服务器集群和元数据服务器集群通过千兆以太网络/万兆以太网络/Infiniband网络构建,具备极高的扩展性和可靠性。
利用HDFS的相关软件功能消除集群内的单点故障,避免因为故障而导致服务中断或者数据丢失等影响,并且打破了传统存储系统架构上的限制。
其基本架构如图3-2所示。
图3-2:
HDFS系统架构
图3-2:
HDFS系统架构HDFS为异构数据提供统一的存储方案;不仅对大文件应用场景提供良好的性能支持,元数据集群、高效检索、横向扩展等特性使得它在复杂的大数据应用场景中有更好的表现。
除了100%POSIX兼容外,还提供完全的HadoopAPI兼容。
这意味着Hadoop生态群的计算框架和组件可以透明运行于HDFS之上。
HDFS提供如下关键特性:
●元数据集群
多个元数据服务器组成集群提供互备HA及动态负载分担,可有效分载对目录树热点区域的访问,同时可在线扩展对元数据高密集型应用提供支撑。
●并发数据恢复
消除传统RAID恢复技术中单盘性能瓶颈,采用多对多的方式,从所有节点的所有磁盘并发进行数据恢复,可提供极高的聚合恢复带宽,从而有效缩短因设备出错导致的全系统降级运行时间。
●兼容POSIX/Hadoop
通过提供hadoop接口,可使数据分析直接基于在线生产环境进行,避免大量的数据迁移操作。
●动态扩展&容量均衡
HDFS提供在线的容量及处理能力扩展,包括数据存储节点及元数据处理节点,并自动在扩容后对全系统容量和热点访问进行均衡。
●分布式EC
数据可靠性方面,HDFS除了提供副本方式之外还提供基于Erasurecode技术的冗余方式,包括Raid5及N+1等多种策略。
其数据分布也是跨节点跨磁盘的。
3.1.2.HBase-分布列式数据库
HBase是适合大数据场景的一款海量分布式列数据库产品。
其架构上兼容了Hadoop体系的高可扩展性,可支持大于几十个节点,PB存储规模的scale-out;性能上其针对具体大数据应用场景进行深度定制和调优,尤其对于高吞吐率入库和实时检索场景;功能上除了支持标准的K-V访问接口之外,XXBase还可较好的兼容SQL标准及JDBC接口,可以很好的与既有数据分析业务对接。
尤其在索引性能优化及对后缀和全文索
引的支持上XXBase都有显著优势。
图3-3:
TBase系统架构
在应用场景方面,TBase常被用作全量基础数据的组织和存储(包括结构化及半结构化数据),同时提供对此全量数据的实时查询;此外TBase可兼容传统数据仓库OLAP场景,对复杂SQL分析可提供近实时的分析性能。
从而可同时支持对大数据的实时查询和复杂离线分析。
TBase底层架构在HDFS(或兼容Hadoop的文件系统、例如HDFS)和MapReduce之上,功能层分别提供数据压缩/解压缩、数据导入、索引、计算、SQL访问以及访问控制和应用隔离等主要功能。
其系统架构如下图所示。
图3-4:
TBase基于HBase的优化增强TBase架构基于分布式列存模型进行扩展。
其实现参考开源Hbase的技术架构,并在其基础上针对应用场景进行了深度性能调优,并基于业务场景的实际需求对功能进行了扩展增强。
其优化点涉及从客户端到底层存储的各个环节,如图3-3所示。
TBase提供如下关键特性:
●SQL实时短查询
对全量数据的实时简单查询,包括单表多条件的组合查询
●SQL长查询@OLAP
通过上层MPP框架提供复杂的SQL分析功能,兼容多维分析模型,尤其对多表join做性能调优
●增强型局部多索引技术
基于底层K-V模型实现了tabular模型封装,并支持对同一表多字段索引的支持,可分别配置条件字段和结果字段。
●分布式事务机制
基于多版本数据模型实现了无状态更新以及读取的无锁并行控制,事务处理能力和Google最新技术相当
●流式数据写入加速
通过客户端并发、IOshortcut、及并发flush,精简数据合并等技术,大幅提升系统的聚合写入带宽,同时保持低时延
●服务端聚集计算框架
遵循数据计算结合的原则,通过MPP框架将计算分载到距离数据最近的存储节点,有效分载数据分析运算在客户端的计算压力。
●全文索引及后缀索引
支持对表中一列或多列构建全文索引,并支持实时或批量定时更新机制。
对全文索引的检索融合在SQL语法中,可与基于列的数据过滤条件无缝链接做组合查询;同时可提供对字串类字段以后缀方式建索引,并提供与前缀索引相当的查询性能。
●透明数据压缩
同时支持软件及硬件板卡的压缩技术,压缩功能有效隔离在底层存储,可对上层透明独立。
●多租户性能隔离
提供不同用户基于表空间的配置,提供表粒度的隔离。
●快速数据ETL
提供与外部多数据源的并发数据导入/导出通道。
包括RDB,文件系统,数据总线等流式数据源。
3.1.3.Hive-数据仓库
Hive是建立在Hadoop基础上的开源的数据仓库,提供类似SQL的HiveQL语言操作结构化数据存储服务和基本的数据分析服务。
它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
Hive定义了简单的类SQL查询语言,称为QL,它允许熟悉SQL的用户查询数据。
同时,这个语言也允许熟悉MapReduce开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作。
图3-5:
Hive架构图
主要分为以下几个部分:
用户接口,包括命令行CLI,Client,Web界面WUI,JDBC/ODBC接口等
中间件:
包括thrift接口和JDBC/ODBC的服务端,用于整合Hive和其他程序。
元数据metadata存储,通常是存储在关系数据库如mysql,derby中的系统参数底层驱动:
包括HiveQL解释器、编译器、优化器、执行器(引擎)。
Hadoop:
用HDFS进行存储,利用MapReduce进行计算。
用户接口主要有三个:
CLI,Client和WUI。
其中最常用的是CLI,Cli启动的时候,会同时启动一个Hive副本。
Client是Hive的客户端,用户连接至HiveServer。
在启动Client模式的时候,需要指出HiveServer所在节点,并且在该节点启动HiveServer。
WUI是通过浏览器访问Hive。
Hive将元数据存储在数据库中,如mysql、derby。
Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。
生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。
Hive的数据存储在HDFS中,大部分的查询由MapReduce完成(包含*的查询,比如select*fromtbl不会生成MapRedcue任务)。
Hive提供如下关键特性:
●海量结构化数据分类汇总
●将复杂的MapReduce编写任务简化为SQL语句
●灵活的数据存储格式
Hive没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织Hive中的表,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据
●Hive的双机特性
采用基于双机热备,即基于主备切换方式的服务器热备来保证Hive服务的高可用性。
在同一时间内只有一个HiveServer运行,当主HiveS