聊聊这一款能真正匹配大数据性能的BI工具

£可爱£侵袭症+ 提交于 2019-12-09 15:53:29

最近在看关于大数据、数据仓库 、数据架构的《数据架构:大数据、数据仓库以及Data Vault》一书,关于大数据有些思考,结合FineBI的Spider引擎,可看看Spider引擎对于大数据的阐释,以及在大数据平台架构中,可以处于什么样的位置。

大数据一直被定义为3W(数量大,速度快,多样性),但这些特征用于描述高速公路上运载的各种货物也没有问题。因此数仓之父 Inmon提出大数据的识别特征为:

(1)数据量大;

毋庸置疑,这条必须有。

(2)在廉价存储器中存放的数据;

以昂贵存储介质建立海量数据存储所带来的成本,将使得大数据处理无意义。因此大数据的存储介质需要廉价。

(3)以罗马人口统计方法管理的数据;

古罗马人想要对罗马帝国的每个居民征税,所以要做一次人口统计。起初视图让罗马帝国的每个公民穿过罗马城门计数。但是古罗马地域辽阔(当时包括北非、西班牙、德国、伊朗、以色列等等),居民分布广,这种方式不现实,需要使用一直集中式处理方法。最终决定组建一个人口统计团,各个人口统计员统一在城门集合,之后被派向各地,在约定的一天进行人口统计,之后在罗马城汇总数据。

海量数据处理也是这种方式,将数据处理方式发送给不同区域(分区)的数据,实现分布式数据处理。这样可以实现几乎无限数据量的数据处理。

(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前端。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!