九月下旬更新速递丨 AI赋能、技术实战与智能探索

金秋九月,下旬更新携AI发布会回放、丰富实战案例与进阶开发资源强势登场!助您深化技术理解,加速智能应用落地!

重点推荐Smartbi AIChat V4发布会圆满落幕!发布会精彩内容已完整上架,随点随看,深度回顾!共同步入智能新纪元!点击观看Smartbi AIChat V4发布会全程回放

麦学堂同步上架,加速学习

【Smartbi AIChat全新升级发布会根据不同篇章提炼上架,方便您按需定位,快速直达重点环节,高效吸收核心内容!

十分钟完整体验AIchat→ 只要10分钟时间,即可使用自己的本地数据快速体验AIChat所有功能。

一、任务持续上线

场景实战系列任务:数据处理,赢取278麦豆!通过实战任务巩固技能,真正掌握数据驱动的企业决策全流程

【BI知识闯关】数据回写填报太头疼?方案请收好!》→破解填报难题,提升数据处理效率。

【AI每日一学知识巩固】为什么Python 是目前人工智能领域最常用的编程语言》→深入解析Python在AI领域的优势,巩固编程基础。

二、实战技巧分享

数据回写填报太头疼?方案请收好!》→聚焦六大常见回写场景,拆解每类场景的实现思路,带您清晰掌握 Smartbi 数据回写的实操逻辑。

、开发技能突破

自定义计划任务案例 进一步了解自定义计划任务,从而提升自定义任务的开发效率和能力。

四、AI每日一学

【AI每日一学】为什么Python 是目前人工智能领域最常用的编程语言》→探讨Python为何能成为人工智能领域最常用的编程语言。

【AI每日一学】简单总结一下AI Agent的五个发展阶段从简单的指令响应到复杂的多智能体协作,AI Agent正逐步向着更拟人、更通用的方向演进。

五、全新素材上线

科技指标卡底座(二)→科技感视觉主题,深色科技风跃动,光线流动引爆焦点!

按需管控:业务人员导出最大行数设置在“导出规则”中,“导出动作”增加“部分导出”的选项

屏蔽“我的工作区”根据角色控制,屏蔽产品中“我的工作区”目录的功能,同时,对于该模块下的资源进行“保存”或者“另存为”,以及“移动到”时,对应的弹出框都不会显示“我的工作区”目录。

数据预警:异常数据可以落地到知识库在“预警推送”中,“推送渠道”增加“数据库”的选项,可以把异常数据存储到“知识库”的表中。

同一账号不能同时登录同一账号不能同时登录,后登录踢出先登录。


六、行业方案上线

汽车制造-财务数字化分析决策平台方案“核账型财务”向“经营型财务”升级

汽车制造-媒介平台ROI实时分析需求解决方案在激烈的市场竞争中,汽车行业对广告投放精准性要求极高,打破决策延时,敏捷响应时长,解决资源浪费,提升广告投放ROI!

为进一步提升认证服务的质量与体验,我们对认证业务进行全面优化升级。更多详情请看→Smartbi认证考试优化升级公告


麦粉社区
>
帖子详情

亿级数据,秒级响应,Smartbi究竟如何做到?

系统运维 发表于 2021-10-9 16:20
发表于 2021-10-9 16:20:49
  关于Smartbi,似乎有很多标签:真Excel、复杂报表、性能、自助分析、数据挖掘、NLP….其中,一个“性能”标签,江湖上就有很多的传说,例如应用于火星探测器飞行数据的分析,应用于某省的经济普查,应用于某银行的大规模数据挖掘等等。

  数据处理的性能,对于一款BI软件来说,是最基本的要求。然而,恰恰最基本的要求,却最能体现产品的品质,使其在众多竞品中脱颖而出。

        那么,Smartbi又是如何做到数据处理性能如此强悍呢?

一、支持列式数据库
  传统行式数据库的存储格式按照‘行’的方式把一行各个字段的数据存储在一起,一行行连续存储。对于把一行的数据写到数据库中,或者对一行数据中的某些字段进行修改,或者删除整行数据这些事务型的数据库操作来说既直观也高效。

  但是,在行式数据库上做统计分析的时候,这种存储格式效率并不高。例如:统计各地区的销售额和利润同比变化、统计各部门的业绩完成情况等等,都是在其中某些字段上的操作,但行式数据库却需要读取每一行的所有字段。在只分析销售额和利润的时候,把其它字段的数据如客户名称,签约时间,客户经理等等也统统都读了进来,浪费了大量资源虽然通过索引”有一定的改善大量的索引所带来的存储空间浪费以及为维护这些索引所带来的时间浪费都会以指数级别增长。

1.png
注:图片来源于网络

        列式数据库将同一个数据“列”的各个值存放在一起,插入某一行数据时,该行各个数据列的值也会存放到不同的地方。上例中列式数据库只需要读取存储着“地区、销售额、利润”的数据列,而行式数据库需要读取所有的数据列。因此,列式数据库大大地提高了大数据量统计分析的效率,特别适合分析型的数据仓库。当然,列式数据库不是万能的,每次读取某个数据行时,需要分别从不同的地方读取各个数据列的值,然后合并在一起形成数据行。因此,如果每次查询涉及的数据量较小或者大部分查询都需要整行的数据,列式数据库并不适用。
2.png
注:图片来源于网络

        正因为列式数据库在统计分析的效率上拥有无可比拟的优势,因此Smartbi将其作为提升数据处理性能的主要手段,也即Smartbi“高速缓存库”。高速缓存库除了支持Smartbi自主研发的SmartbiMPP列式数据库外,也支持市面上主流的列式数据库如InfobrightVerticaPresto+Hive、星环等。

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

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

        传统数据库无法支持大规模集群与PB级别数据量,单台机器性能受限、成本高昂,扩展性受限。随着数据量的不断增长,采用MPP数据库成为必然的选择。MPP数据库由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。其基本特征是由多个SMP服务器节点通过节点互联网络连接而成,每个节点只访问自己的本地资源内存、存储等,是一种完全无共享结构,因而扩展能力最好,理论上其扩展无限制。

3.png
注:图片来源于网络

        从名字可以看出,SmartbiMPP不仅是一款列式数据库,也是一款MPP数据库,支持集群部署和大规模并行处理,对数据处理性能有明显的提升。Infobright、Vertica、Presto+Hive、星环等列式数据库同样都采用MPP分布式架构,可以由多节点组成集群。因此,支持这些MPP数据库的Smartbi高速缓存库,是Smartbi提升大规模数据处理性能的又一利器。

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

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

4.png


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

        总之,Smartbi正是通过多方面的手段用以提高数据处理的性能,从而保证在众多的大规模数据应用场景中游刃有余。下面是一段Smartbi高速缓存库加速跨库查询演示,大家可以感受一下。



高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 0关注人数 3668浏览人数
最后回复于:2021-10-9 16:20
快速回复 返回顶部 返回列表