首页 > 编程知识 正文

零秒反应力(50ms是多少秒)

时间:2023-05-04 21:26:57 阅读:101942 作者:2860

关于Smartbi似乎有很多标签:真Excel、复杂语句、性能、自助分析、数据挖掘、NLP….其中关于一个“性能”标签的传说很多,比如火星探测器飞行数据的分析、某省的经济普查、某银行的大规模数据挖掘等等。

数据处理的性能是商业智能软件最基本的要求。然而,只有最基本的要求才能最好地反映产品的质量,并使它们在许多竞争产品中脱颖而出。

那么,Smartbi是如何实现如此强大的数据处理性能的呢?

一个

支持列数据库

传统的基于行的数据库的存储格式以“行”的方式逐行存储一行中每个字段的数据。对于事务性数据库操作,如向数据库中写入一行数据、修改一行数据中的某些字段或删除整行数据,它既直观又高效。

然而,在对行数据库进行统计分析时,这种存储格式效率不高。比如统计各地区销售和利润的同比变化,统计各部门的业绩完成情况等。是对其中一些字段的所有操作,但是行数据库需要读取每行中的所有字段。在只分析销售和利润时,其他字段的数据如客户名称、签约时间、客户经理等都是读入的,浪费了很多资源。虽然通过“索引”有所改善,但存储空间的浪费和维护这些索引的时间浪费将呈指数级增长。

来源:网络

列数据库将相同数据“列”的值存储在一起。当插入一行数据时,该行中每个数据列的值也将存储在不同的位置。在上例中,列数据库只需要读取存储“地区、销售和利润”的数据列,而行数据库需要读取所有的数据列。因此,列数据库大大提高了对大量数据进行统计分析的效率,特别适合分析型数据仓库。当然,栏目数据库也不是万能的。每次读取数据行时,都需要从不同的地方读取每个数据列的值,然后将它们合并在一起形成一个数据行。因此,如果每个查询涉及的数据量很小,或者大多数查询需要一整行数据,那么柱状数据库就不适合。

来源:网络

由于正列数据库在统计分析效率上具有无可比拟的优势,Smartbi将其作为提高数据处理性能的主要手段,即Smartbi的“缓存库”。除了SmartBi自主开发的SmartbiMPP柱状数据库外,cache还支持Infobright、Vertica、Presto Hive、Star Ring等主流柱状数据库。

当我们需要处理大规模数据时,我们可以在统计分析之前将数据提取到缓存中。因为缓存库实际上是连接到一个列数据库的,所以数据处理性能会大大提高。在Smartbi的提取过程中,数据可以批量写入缓存,既保证了查询速度,又避免占用过多内存。同时还支持多线程并发抽取,支持实时、总量、增量等不同方式的抽取,进一步提高了抽取效率。

支持MPP

MPP(massive Parallel Processing)是指大规模并行处理,将任务并行分配到多个服务器和节点,在每个节点上的计算完成后,将各个部分的结果汇总在一起,得到最终的结果。采用MPP架构的数据库称为MPP数据库。

传统数据库无法支持大规模集群和PB级数据,单机性能有限,成本高,可扩展性有限。随着数据量的不断增加,采用MPP数据库成为必然。MPP数据库是从用户角度出发的服务器系统,由多个SMP服务器通过一定的节点互联网络连接在一起,共同工作,完成相同的任务。它的基本特点是通过节点互联网络连接很多SMP服务器(节点),每个节点只访问自己的本地资源(内存、存储等)。),这是一个完全共享的结构,所以它具有最好的可扩展性,理论上它的可扩展性是无限的。

来源:网络

从名字可以看出,SmartbiMPP不仅是一个列数据库,还是一个MPP数据库,支持集群部署和大规模并行处理,数据处理性能明显提升。Infobright、Vertica、Presto Hive、Star Ring等栏目数据库也采用MPP分布式架构,可多节点集群。因此,Smar支持这些MPP数据库

tbi高速缓存库,是Smartbi提升大规模数据处理性能的又一利器。

THREE

支持缓存

Smartbi除了支持列式数据库和MPP,还采用一种常见的性能提升技术:缓存。缓存储存最近从数据文件中读取的数据块,其中的数据可以被用户访问。如当我们利用Select语句从数据库中查询员工信息的时候,其首先不是从数据文件中去查询这个数据,而是从缓存中去查找,而没有这个必要再去查询磁盘中的数据文件了。只有在数据缓存中没有这个数据的时候,数据库才会从数据文件中去查询。因为读取内存的速度比读取磁盘的速度要快很多倍,所以这种机制可以提高数据的整体访问效率。

在Smartbi中,为了提高统计分析的性能,也采用了缓存技术,叫“对象缓冲池”,用于缓存系统中用到的数据集定义及最近使用的查询结果等。产品的对象池是存储在内存中,对象缓冲池可以增强系统在并发时的性能,减少服务器的压力,提高用户报表查询速度。用户打开组合分析、透视分析、电子表格刷新数据时,服务器利用对象缓冲池获取数据的流程如下:

除了以上三种提升性能的主要手段,在Smartbi层面也有很多可以优化的策略。例如可以将Smartbi也部署在集群上以提高并发处理能力;系统设置分页策略为SQL分页;把分组报表的扩展方式设置为“覆盖”等等。当然,对SQL语句的优化,通常也可以起到立竿见影的效果。

总之,Smartbi正是通过多方面的手段用以提高数据处理的性能,从而保证在众多的大规模数据应用场景中游刃有余。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。