最近在看关于大数据、数据仓库 、数据架构的《数据架构:大数据、数据仓库以及Data Vault》一书,关于大数据有些思考,结合FineBI的Spider引擎,可看看Spider引擎对于大数据的阐释,以及在大数据平台架构中,能够处于什么样的位置。前端
大数据一直被定义为3W(数量大,速度快,多样性),但这些特征用于描述高速公路上运载的各类货物也没有问题。所以数仓之父 Inmon提出大数据的识别特征为:算法
(1)数据量大;数据库
毋庸置疑,这条必须有。缓存
(2)在廉价存储器中存放的数据;服务器
以昂贵存储介质创建海量数据存储所带来的成本,将使得大数据处理无心义。所以大数据的存储介质须要廉价。网络
(3)以罗马人口统计方法管理的数据;架构
古罗马人想要对罗马帝国的每一个居民征税,因此要作一次人口统计。起初视图让罗马帝国的每一个公民穿过罗马城门计数。可是古罗马地域辽阔(当时包括北非、西班牙、德国、伊朗、以色列等等),居民分布广,这种方式不现实,须要使用一直集中式处理方法。最终决定组建一我的口统计团,各我的口统计员统一在城门集合,以后被派向各地,在约定的一天进行人口统计,以后在罗马城汇总数据。分布式
海量数据处理也是这种方式,将数据处理方式发送给不一样区域(分区)的数据,实现分布式数据处理。这样能够实现几乎无限数据量的数据处理。ide
(4)以非结构化格式存储和管理的数据。工具
总结下来,大数据就是以非结构化格式存储在廉价介质中的大量数据,须要以分布式处理方式来作数据计算。
而大数据平台的建设,要作的事情可就多了,将来还有更多未知与可能性。以前介绍过的数据平台阶段,各个架构设计等都是底部的一小部分。
而为了支撑数据分析服务的正常运行,带有敏捷数据集市的BI工具也就要与时俱进了。即便不为长远考虑,当下的快速展现问题也需尽快解决。从多个方面看,FineBI与其自带的Spider引擎,都服务于解决大数据量展现分析的问题。
FineBI是一款自助式分析工具,在功能上将数据准备工做与业务数据分析工做分开。提倡IT部门准备好数据,提供给其余数据部门或业务部门作自助分析或敏捷开发,让各个部门发挥各自长处,作各自最擅长的事情。解放IT部门压力的同时,也能让业务部门快速得到即席分析结果。
关于Spider引擎的详细介绍能够看这里:《10亿数据秒级展现,FineBI5.0的大数据支撑有个“幕后BOSS”!》
不少用户自己就有高性能数据查询引擎,或业务的实时性要求特别高,那就可使用Spider引擎直接对接数据库,常规的大数据平台均可以支持,详细能够看上述文章。
然而,不少时候,BI工具须要一个为灵活自助分析提供的敏捷型数据引擎。也就是须要将数据抽取到中间层中存储下来,以便计算不受数据库影响,而且快速获得分析结果。抽取数据的状况下,FineBI默认的应用与数据引擎能够是一台服务器,数据量在亿级之内的状况下,展现速度十分优秀。因为没有网络传输的限制,本地计算效果会优于分布式扩展后的分布式计算效果。在数据量激增以后,就须要扩展以后的Spider分布式引擎,在功能实现上,依旧是将数据抽取到敏捷型数据集市中作分布式存储,从而对接前端的分析查询,实现快速分析展现。
以上的数据抽取或实时从数据库获取的方式可灵活切换,即数据既可来自数据库,也能够来自中间存储引擎,且这两种方式又能够任意切换,前端分析展现不受影响,从而在BI分析的各类应用场景中更加灵活。
下面回归正题,来看FineBI的Spider引擎对于大数据分析的阐释。
FineBI的Spider引擎基于ALLUXIO 、SPARK、 HDFS等大数据组件,结合自研高性能算法,解决了大数据量分析问题与展现时的性能问题。列式存储、并行内存计算、计算本地化加上高性能算法,保证在FineBI中快
速的数据分析展现。可横向扩展节点知足数据增加的需求,从架构上也保证了业务系统整年可正常使用。
下图来自帆软灵魂画手~
(1)大数据量存储上,首先面对大量级数据存储,回归前面的定义,须要有廉价的存储方式,能存储非结构化数据,能作分布式计算。那首先就想到Hadoop中的分布式文件系统——HDFS。HDFS的稳定性以及容错性机制都比较完善,Hadoop 2.X版本以后实现对HA的支持,可作到存储数据整年可用。天然,其在大数据领域的生态也比较好的~
可是HDFS的存储仍是基于磁盘的,其I/O性能难以知足流式计算所要求的延时,频繁的网络数据交换进一步拖累了计算处理过程。所以咱们引入Alluxio做为分布式存储系统的核心存储系统。Alluxio之内存为中心的存储特性使得上层应用的数据访问速度比现有常规方案快几个数量级。利用Alluxio的分层存储特性,综合使用了内存、SSD和磁盘多种存储资源。经过Alluxio提供的LRU、LFU等缓存策略能够保证热数据一直保留在内存中,冷数据则被持久化到level 2甚至level 3的存储设备上,将HDFS做为长期的文件持久化存储系统。
(2)存储上,hadoop的HDFS实现了分布式存储,而其自带的MapReduce计算性能有不足,且没法以标准格式对接外部应用,SQL On Hadoop 应运而生。其种类繁多,impala、Spark SQL、hive等都是你们熟知的。可是呢,选择什么方式不重要,你们的出发点都要可以实现大数据量状况下的并行分布式计算。
FineBI的Spider引擎的核心计算部分,也是SQL On Hadoop技术的实现。列式存储,数据字典压缩,分区与块级索引,数据本地化等SQL On Hadoop技术都获得应用。 类SQL设计与基于BI计算场景的优化,以及结合了内存分布式计算,使得大数据量下的展现速度达到秒级。
(3)内存计算:大数据平台中,内存计算服务也是很重要的一个模块。为了实现经常使用分析数据与计算场景能够快速展现,根据上述数据存储的原则,须要使用到的计算都是在内存中的,从而保证了计算速度最优。同时将不经常使用数据持久化到HDFS中备份下来,也减小了内存资源的占用。
综上,Spider引擎既能够是联结用户的数据平台与展现的中间层,实际不作数据存储与计算,只将结果进行最终展现。同时也可看做是大数据平台中的一个内存计算应用,将计算结果展现在FineBI前端。