中企动力 > 商学院 > 好软件性能数据分析
  • ?

    玩可视化大数据分析软件要掌握的6个核心技术(下)

    Kyndby

    展开

    上篇已经介绍过了可视化大数据分析软件要掌握的6个核心技术的其中3个,这篇把剩下的3个继续介绍完。这些技术在某种程度上可以促进可视化大数据分析软件的技术更新,所以这也是本篇分享的目的所在。

    大数据可视化

    1. 大数据存储与管理

    总体上,按数据类型的不同,大数据的存储和管理采用不同的技术路线,大致可以分为3类。 第1类主要面对的是大规模的结构化数据。针对这类大数据,通常采用新型数据库集群。它们通过列存储或行列混合存储以及粗粒度索引等技术,结合MPP(Massive Parallel Processing)架构高效的分布式计算模式,实现对PB 量级数据的存储和管理。这类集群具有高性能和高扩展性特点,在企业分析类应用领域已获得广泛应用;

    第2类主要面对的是半结构化和非结构化数据。应对这类应用场景,基于Hadoop开源体系的系统平台更为擅长。它们通过对Hadoop生态体系的技术扩展和封装,实现对半结构化和非结构化数据的存储和管理;

    第3类面对的是结构化和非结构化混合的大数据,因此采用MPP 并行数据库集群与Hadoop 集群的混合来实现对百PB 量级、EB量级数据的存储和管理。

    2. 大数据计算模式与系统

    所谓大数据计算模式,即根据大数据的不同数据特征和计算特征,从多样性的大数据计算问题和需求中提炼并建立的各种高层抽象(abstraction)或模型(model)。例如,MapReduce 是一个并行计算抽象,加州大学伯克利分校著名的Spark系统中的“分布内存抽象RDD”,CMU 著名的图计算系统GraphLab 中的“图并行抽象”(Graph Parallel Abstraction)等。传统的并行计算方法,主要从体系结构和编程语言的层面定义了一些较为底层的并行计算抽象和模型,但由于大数据处理问题具有很多高层的数据特征和计算特征,因此大数据处理需要更多地结合这些高层特征考虑更为高层的计算模式。

    根据大数据处理多样性的需求和以上不同的特征维度,目前出现了多种典型和重要的大数据计算模式。与这些计算模式相适应,出现了很多对应的大数据计算系统和工具。由于单纯描述计算模式比较抽象和空洞,因此在描述不同计算模式时,将同时给出相应的典型计算系统和工具,如表1所示,这将有助于对计算模式的理解以及对技术发展现状的把握,并进一步有利于在实际大数据处理应用中对合适的计算技术和系统工具的选择使用。

    数据分析

    3. 大数据分析与可视化

    在大数据分析的应用过程中,可视化通过交互式视觉表现的方式来帮助人们探索和理解复杂的数据。可视化与可视分析能够迅速和有效地简化与提炼数据流,帮助用户交互筛选大量的数据,有助于使用者更快更好地从复杂数据中得到新的发现,成为用户了解复杂数据、开展深入分析不可或缺的手段。大规模数据的可视化主要是基于并行算法设计的技术,合理利用有限的计算资源,高效地处理和分析特定数据集的特性。通常情况下,大规模数据可视化的技术会结合多分辨率表示等方法,以获得足够的互动性能。在科学大规模数据的并行可视化工作中,主要涉及数据流线化、任务并行化、管道并行化和数据并行化4 种基本技术。微软公司在其云计算平台Azure 上开发了大规模机器学习可视化平台(Azure Machine Learning),将大数据分析任务形式为有向无环图并以数据流图的方式向用户展示,取得了比较好的效果

    关于玩可视化大数据分析软件要掌握的6个核心技术,这里就介绍完毕了。其实这两篇似乎把大数据技术阐述得非常难的感觉,但其实,可视化大数据分析软件的使用并没有那么神乎其神,毕竟可视化大数据分析软件的发明是为了企业日常的数据化运营而产生的,所以不能太过于难用。

  • ?

    天天在用的软件,竟然是这样被测性能的?

    维姬

    展开

    软件是我们每天都要用到的,当被问到怎样测评软件的性能时?听织雀测试的工程师做了如下回答。

    时间效率、空间效率、事务操作性能、IO性能、数据库性能、内存性能、初始化/退出时间、资源利用率等。

    1事务处理时间:指软件中完成一项事物所需的运行时间。一般主要用来评价事务处理的效率,通常事务处理时间越短,则效率越高。属于时间效率的范畴。

    2最大的事务处理时间:服务器软件中,最大事务处理时间是一个很重要的性能指标,因为如果某项事务处理时间过多的话,将很容易受到DOS型的攻击。要测试最大事务处理时间需要先分析一下哪些事务耗时比较多,然后再将这些事务所花费的时间分别测试出来,花费时间最多的就是最大的事务处理时间。

    3事务操作时间:主要用来评价需要用户进行操作的事务处理需要花费的时间,主要体现了用户操作方面的效率。测试事务操作时间时,需要一个好的计时器(如秒表之类的东西),需要多测试几次,最好测试多个不同的人花费的时间,最后取平均值即可。

    4IO性能:本文指物理磁盘的IO性能,衡量IO性能的主要指标是单位时间内的读写数据数量,比如磁盘每秒钟读取的数据字节数、每秒写入的数据字节数。硬盘发展速度没有赶上CPU的发展速度,所以,如果一个软件需要操作磁盘的话,最好测试一下IO方面的性能。

    程序的实现对IO性能也有很大影响,比如写一个文件,多次写入小块数据就不如一次写入一大块数据高效。

    当然IO不局限于磁盘IO,网络IO和其他硬件设备IO都属于IO的范畴,如果程序使用了某个IO的通道,那么就需要做一下这方面的IO性能测试。

    IO测试可以在白盒测试时设计专门的测试用例进行测试,也可以在黑盒测试时做,黑盒测试由于操作上要花时间,存在误差,所以不如白盒测试准确。

    5数据库性能:一般包括查询、插入、删除、更新数据库数据等所花费的时间。需要使用数据库的软件中,数据库性能往往容易成为软件中的性能瓶颈。提高数据库性能能通常通过规范数据表以减少相互依赖或者通过增加数据库服务器的数量来解决。

    数据库性能测试也可以采用百合测试的方法来进行。

    6空间利用率:是指有效数据占用的空间和整个是用的空间的比例。比如,定义了一个字符数组大小为1024字节,但是程序中只拷贝了一个“Hello!”字符串到数组里,那么有效数据占用的内存为7字节,而实际使用的内存空间却有1024字节。在这种情况下空间利用率就是7/1024。

    空间利用率可以用以下公式来计算:空间利用率=实际使用的空间/占用的总空间

    测试空间利用率比较困难,一般只能在白盒测试时有针对性地编写专用的测试代码进行统计。比如内存管理中,可以使用HOOK技术来记录总共分配了多少块内存,再将每块内存的实际使用大小保存起来,在计算每块内存的分配尺寸,最后根据上述公式计算实际使用的大小总数和分配大小的总数就可以得出空间利用率。

    7最大消耗的内存量:指软件在运行过程中需要消耗的最大内存数量(单位:kb),这个指标标示着应该配置什么级别的硬件才能运行软件,是硬件成本的直接反映。

    要测试最大消耗的内存量,可以通过性能监视器来进行,不过最好的方法是自己编写一个内存监测工具,先让工具记录下初始系统剩余内存大小,然后运行软件,通过监测工具自动记录系统剩余内存大小,由工具计算出整个系统过程中系统最小的剩余内存,用把初始系统剩余内存减去最小的系统剩余内存就得到了最大的内存消耗量。

    8高峰内存时间:是指软件在高峰内存消耗时期所运行的时间。如果软件在高峰期使用的内存和系统的总内存比较接近的话,软件的效率将会大大降低。作者在《多任务下的数据结构与算法》一书中讲述了动态等尺寸内存管理算法,当到了内存使用高峰期后,如果释放掉很多使用过的内存,占用系统的内存也会跟着释放一部分,对于缩减软件的高峰内存时间有很好的帮助。

    9初始化/退出时间:初始化时间是指软件初始化所花费的时间,比如,对于客户端软件,就是在从运行开始直到用户可以操作的时间。服务器软件是指从运行开始到服务器可以开始处理客户端的服务请求的时间。

    退出时间包括软件正常结束情况下的退出和非正常结束情况下的退出所花费的时间。

    衡量退出性能主要有两个指标,一个事能不能在任何情况下退出,另一个是退出花费的时间是多少。

    不论在正常结束还是非正常结束的情况下,软件都应该以较快的速度退出。

    现在软件一般都采用多任务架构的,当有任务在运行时,需要等待正在操作的任务结束后才能退出。在《多任务下的数据结构与算法》一书中讲述了一个多任务下的退出算法,采用此算法可以让软件很快退出而不需要等待很长的时间。

    10CPU 利用率:CPU利用率属于资源利用率的一种,对于单核CPU系统来说:

    CPU利用率=总时间-CPU空闲时间/程序运行总时间

    对于多核或多CPU机器来说,要分别统计每个CPU的利用率,再计算平均值。在Windows操作系统上可以通过性能监视器来观察每一个CPU的利用率曲线。

    CPU利用率对不同的软件意义不同,在分时系统中,客户端软件一般要求CPU利用率不能太高,必须留一些CPU给其他应用程序使用。而在服务器软件中,一般要求CPU利用率要高一些,否则会造成其他硬件资源浪费。

    织雀测试的讲师重视软件性能的测评,对软件的质量保障具备高度的负责精神。

    原文链接

    http://zhiquetech/xwzx/138.html

  • ?

    干货 | 这是一份完整的大数据处理技术总结与分析

    晓歌

    展开

    一 数据分析处理需求分类

    1 事务型处理

    在我们实际生活中,事务型数据处理需求非常常见,例如:淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。

    这类系统数据处理特点包括以下几点:

    一是事务处理型操作都是细粒度操作,每次事务处理涉及数据量都很小。

    二是计算相对简单,一般只有少数几步操作组成,比如修改某行的某列;

    三是事务型处理操作涉及数据的增、删、改、查,对事务完整性和数据一致性要求非常高。

    四是事务性操作都是实时交互式操作,至少能在几秒内执行完成;

    五是基于以上特点,索引是支撑事务型处理一个非常重要的技术。

    在数据量和并发交易量不大情况下,一般依托单机版关系型数据库,例如ORACLE、MYSQL、SQLSERVER,再加数据复制(DataGurad、 RMAN、MySQL数据复制等)等高可用措施即可满足业务需求。

    在数据量和并发交易量增加情况下,一般可以采用ORALCE RAC集群方式或者是通过硬件升级(采用小型机、大型机等,如银行系统、运营商计费系统、证卷系统)来支撑。

    事务型操作在淘宝、12306等互联网企业中,由于数据量大、访问并发量高,必然采用分布式技术来应对,这样就带来了分布式事务处理问题,而分布式事务处理很难做到高效,因此一般采用根据业务应用特点来开发专用的系统来解决本问题。

    2 数据统计分析

    数据统计主要是被各类企业通过分析自己的销售记录等企业日常的运营数据,以辅助企业管理层来进行运营决策。典型的使用场景有:周报表、月报表等固定时间提供给领导的各类统计报表;市场营销部门,通过各种维度组合进行统计分析,以制定相应的营销策略等。

    数据统计分析特点包括以下几点:

    一是数据统计一般涉及大量数据的聚合运算,每次统计涉及数据量会比较大。

    二是数据统计分析计算相对复杂,例如会涉及大量goupby、 子查询、嵌套查询、窗口函数、聚合函数、排序等;有些复杂统计可能需要编写SQL脚本才能实现。

    三是数据统计分析实时性相对没有事务型操作要求高。但除固定报表外,目前越来越多的用户希望能做做到交互式实时统计;

    传统的数据统计分析主要采用基于MPP并行数据库的数据仓库技术。主要采用维度模型,通过预计算等方法,把数据整理成适合统计分析的结构来实现高性能的数据统计分析,以支持可以通过下钻和上卷操作,实现各种维度组合以及各种粒度的统计分析。

    另外目前在数据统计分析领域,为了满足交互式统计分析需求,基于内存计算的数据库仓库系统也成为一个发展趋势,例如SAP的HANA平台。

    3 数据挖掘

    数据挖掘主要是根据商业目标,采用数据挖掘算法自动从海量数据中发现隐含在海量数据中的规律和知识。

    数据挖掘主要过程是:根据分析挖掘目标,从数据库中把数据提取出来,然后经过ETL组织成适合分析挖掘算法使用宽表,然后利用数据挖掘软件进行挖掘。传统的数据挖掘软件,一般只能支持在单机上进行小规模数据处理,受此限制传统数据分析挖掘一般会采用抽样方式来减少数据分析规模。

    数据挖掘的计算复杂度和灵活度远远超过前两类需求。一是由于数据挖掘问题开放性,导致数据挖掘会涉及大量衍生变量计算,衍生变量多变导致数据预处理计算复杂性;二是很多数据挖掘算法本身就比较复杂,计算量就很大,特别是大量机器学习算法,都是迭代计算,需要通过多次迭代来求最优解,例如K-means聚类算法、PageRank算法等。

    因此总体来讲,数据分析挖掘的特点是:

    1、数据挖掘的整个计算更复杂,一般是由多个步骤组成计算流,多个计算步骤之间存在数据交换,也就是会产生大量中间结果,难以用一条sql语句来表达。

    2、计算应该能够非常灵活表达,很多需要利用高级语言编程实现。

    二 大数据背景下事务型处理系统相关技术

    在google、facebook、taobao等大互联网公司出现之后,这些公司注册和在线用户数量都非长大,因此该公司交易系统需要解决“海量数据+高并发+数据一致性+高可用性”的问题。

    为了解决该问题,从目前资料来看,其实没有一个通用的解决方案,各大公司都会根据自己业务特点定制开发相应的系统,但是常用的思路主要包括以下几点:

    (1)数据库分片,结合业务和数据特点将数据分布在多台机器上。

    (2)利用缓存等机制,尽量利用内存,解决高并发时遇到的随机IO效率问题。

    (3)结合数据复制等技术实现读写分离,以及提高系统可用性。

    (4)大量采用异步处理机制,对应高并发冲击。

    (5)根据实际业务需求,尽量避免分布式事务。

    1相关系统介绍

    1) 阿里CORBAR系统

    阿里COBAR系统是一个基于MYSQL数据库的分布式数据库系统,属于基于分布式数据库中间件的分布式数据库系统。该系统是前身是陈思儒开发的“变形虫”系统(以前调研过),由于陈思儒离开阿里去了盛大,阿里当心“变形虫”稳定性等问题,重新开发该项目。

    该系统主要采用数据库分片思路,实现了:数据拆分、读写分离、复制等功能。由于此系统由于只需要满足事务型操作即可,因此相对真正并行数据库集群(例如TeraData等),此类系统提供操作没有也不需要提供一些复杂跨库处理,因此该系统存在以下限制:

    (1)不支持跨库的join、分页、排序、子查询。

    (2)insert等变更语句必须包括拆分字段等。

    (3)应该不支持跨机事务(以前变形虫不支持)。

    说白了此类系统不具备并行计算能力,基本上相当于数据库路由器!

    另外此类系统的在实际应用的关键问题是,根据什么对数据进行切分,因为切分不好会导致分布式的事务问题。

    2) 阿里OceanBase系统

    该系统也是淘宝为了解决高并发、大数据环境下事务型处理而定制开发的一个系统。该系统主要思路和特点如下:

    (1)他们发现在实际生成环境中,每天更新的数据只占总体数据的1%不到,因此他们把数据分为:基线数据和增量更新数据。

    (2)基线数据是静态数据,采用分布式存储方式进行存储。

    (3)只在一台服务器上存储和处理增量更新数据,并且是在内存中存储和处理更新数据。

    (4)在系统负载轻的时候,把增量更新批量合并到基线数据中。

    (5)数据访问时同时访问基线数据和增量更新数据并合并。

    因此这样好处是:

    (1)读事务和写事务分离

    (2)通过牺牲一点扩展性(写是一个单点),来避免分布式事务处理。

    说明:该系统虽然能处理高并发的事务型处理,号称很牛逼,但其实也只是根据电商的事务处理来定制开发的专用系统,个人认为其技术难度小于oracle等通用型的数据库。该系统无法应用到银行或者12306等,因为其事务处理的逻辑远远比电商商品买卖处理逻辑复杂。

    在目前的大数据时代,一定是基于应用定制才能找到好的解决方案!

    3) 基于Hbase的交易系统

    在hadoop平台下,HBASE数据库是一个分布式KV数据库,属于实时数据库范畴。支付宝目前支付记录就是存储在HBASE数据库中。

    HBASE数据库接口是非SQL接口,而是KV操作接口(基于Key的访问和基于key范围的scan操作),因此HBASE数据库虽然可扩展性非常好,但是由于其接口限制导致该数据库能支持上层应用很窄。基于HBASE应用的设计中,关键点是key的设计,要根据需要支持的应用来设计key的组成。

    可以认为HBASE数据库只支持作为KEY的这一列的索引。虽然目前HBASE有支持二级索引的方案,二级索引维护将会比较麻烦。

    2并发和并行区别

    并发是指同时执行通常不相关的各种任务,例如交易型系统典型属于高并发系统。

    并行是通过将一个很大的计算任务,划分为多个小的计算任务,然后多个小计算任务的并行执行,来缩短该计算任务计算时间。

    两者主要区别在于:

    (1)通讯与协调方面:在并行计算中,由于多个小任务同属一个大的计算任务,因此小任务之间存在依赖关系,小任务之间需要大量通讯和协调;相反,并发中的多个任务之间基本相互独立,任务与任务之间相关性很小。

    (2)容错处理方面:由于并发任务之间相互独立,某个任务执行失败并不会影响其它的任务。但是并行计算中的多个任务属于一个大任务,因此某个子任务的失败,如果不能恢复(粗粒度容错与细粒度容错),则整个任务都会失败。

    3本章总结

    数据量大不一定需要并行计算,虽然数据量大,数据是分布存储,但是如果每次操作基本上还是针对少量数据,因此每次操作基本上都是在一台服务器上完成,不涉及并行计算。只是需要通过数据复制、数据缓存、异步处理等方式来支撑高并发访问量

    三 大数据背景下数据统计分析技术介绍

    随数据量变大,和事务处理不同的是,单个统计分析涉及数据量会非常大,单个统计分析任务涉及数据会分散在多台服务器上,且由于计算量大,采用单台服务器进行计算,会导致计算时间非常长,单个统计分析任务必须采用并行计算方式来加快单个统计分析任务执行速度。

    1并行查询与并行计算技术介绍

    在大数据背景下的数据统计分析技术门类很多,常见的有:

    n MPP并行数据库 : TeraData、GreenPlum、Vertica等。

    n 基于MapReduce并行计算框架的数据仓库:

    HIVE(Hadoop平台) 、Tenzing(Google公司)

    n 基于Hbase的Phoenix系统

    n HadoopDB系统

    n EMC公司的hapt系统

    n MPP分布式查询引擎: Dremel、Impala、Presto、Shard query、Citusdb。

    n 基于SPARK的Shark、基于Dryad的SCOPE、基于Tez的stinger。

    n 基于hadoop+index的JethroData系统

    n 基于内存计算的Druid系统

    这些系统都解决了海量数据下的数据统计分析的问题,并且这些系统另外一个共同特点是都提供了SQL或者类SQL接口。

    为了能够较好研究这些系统,我们需要对并行查询与并行计算的相关技术做一个简要的介绍。

    首先所有的系统都可以分为三个层次: 语义层、并行计算引擎层、分布式存储层。语义层提供一个编程接口让用户表达所需要计算,并负责把该计算翻译成底层并行计算引擎可以执行的执行计划,并由并行计算引擎来执行,最下面一层是分布式存储层。

    对于提供类SQL接口并行计算系统,语义层可以认为是SQL解析层。

    1) 语义层

    SQL语言是一种声名式语言,SQL只是表达了要做什么,而没有表达怎么做。为此,SQL解析层主要作用是:将用户提交的基于SQL的统计分析请求,转化为底层计算引擎层可以执行的执行计划。也就是解决“怎么做”的问题。

    SQL解析层工作主要包括两个大方面:

    (1) 通过语法分析技术来理解要做什么。在关系数据库中,一般会把SQL语言分析后,形成树型结构的执行计划。

    (2) 在语法分析技术上,利用各种优化技术和算法,找出一种最经济物理执行计划。

    优化可以分为两个方面:一是逻辑层面优化、二是物理执行层面优化。

    (1) 逻辑层优化

    逻辑层面个人认为主要是因为同样表达一个分析请求,有的人SQL写的好,有的人SQL写的烂,因此在逻辑层面可以通过一些等价关系代数变换,实现查询重写,将写的比较烂的sql变换为好的写法。

    比较典型优化是:“把投影和过滤下沉,先执行过滤和投影操作”,减少中间结果。

    (2) 物理层优化

    物理层面优化是在逻辑优化后,结合实际物理执行过程,找出最优的物理执行计划。生成物理查询计划的工作包括:

    ü 增加一些操作符: 包括扫描和排序等。

    ü 确定各个操作符实现算法。例如扫描是全表扫描还是利用索引;Join是采用HASH连接、索引连接、合并排序等实现算法中的那一种。

    ü 确定操作符之间的数据流转方法:物化还是流水线方式。

    ü 采用基于代价估算方法确定最优的物理执行计划,目前代价估算主要是以估算该物理计划需要的IO量。另外对于并行数据库,则还要考虑通讯代价,即尽量减少数据在各个机器之间的传递。

    在物理层优化的代价估算过程中,代价估算需要依靠很多统计信息,如表有多大,表中相关列的值分布是什么样子等。传统数据库在数据Load过程中会事先计算好这些统计信息。并行计算中还需要考虑通讯代价。

    需要指出是,由于imapla、Presto、HIVE等系统只是一个查询引擎,它们可以直接查询以普通文件方式存储在HDFS系统上的文件,因此这些系统一般无法使用索引和各种统计信息来进行物理执行计划的优化,这些系统一般只能在逻辑层进行一些基于规则静态优化。根据SHARK论文,SHARK系统支持根据前面一些节点计算获得的信息,来动态优化后面执行计划。

    (3) 物化与流水线执行方法

    一条SQL语句对开发人员而言,感觉只是一次调用,但是实际上在数据库内部,一条SQL语句执行其实是有多个操作符组合而成的的树型结构计算流。如下图:

    针对该计算流有两种执行方式:一是基于物化或者是实体化执行方式,另外一种是基于数据流的执行方式。

    第一种方法的过程是: 把各个操作运算排序,并把每个操作运算的输出的中间结果存储在磁盘上,直到被另外一个操作运算所...

  • ?

    7位大咖关于软件性能调优的那些事儿

    于听芹

    展开

    无论是科学发展观的核心以人为本,还是互联网运营信条用户为王,都证明用户感受是产品重要的考量标准。

    软件性能就是一个很用户主观的概念,不同的人在使用软件时会有不同的感受和关心视角。

    对于软件性能,有几个比较重要的指标:响应时间、吞吐量、并发数、资源利用率等。

    软件性能堪忧,用户体验低下,极易造成用户流失,如何正确高效地分析性能问题并解决;开发和运维人员应当如何对软件性能进行调优,变成了越来越受重视的话题,QCon 上海 2017 也邀请到众多大咖对软件性能进行解析分享。

    用户导向时代体验为王,如何正确高效地分析性能问题并解决,提升用户感受,成了越来越多的开发者所关注的问题。软件的响应时间、吞吐量、高并发下是否能够顺利运行在这里都能得到启发。

    如何提升 Spark 效能并使其完整发挥硬件效能

    效能永远是客户在 Spark 落地实践中的其中一个关键。在客户端,时常会有买了最好的设备,却无法释放最好的效能的情况。本演讲利用几个典型的 Spark 应用场景包括 SQL 查询(TPCx-DS)、Kmeans(HiBench)、Terasort(HiBench)针对不同硬件(CPU,记忆体,存储设备)做效能分析,搭配相对应的软件调优,增进 Spark 应用的效能。此议题重点带来 Spark 应用的效能调优及参考架构,借由软件的优化,更好的提高硬件的效能。

    听众受益

    你将得知如何评估,监控,及收集 Spark 工作;

    你将了解硬件对于 Spark 工作的影响,包括英特尔平台,处理器,记忆体,及存储设备;

    你将得到如何设定及调整 Spark 及 Hadoop 的技巧,从而得到更好的效能发挥。

    性能优化:硬件特性如何影响软件性能

    提到数据中心应用的性能优化,一般而言,大众所熟知的性能优化方案和技巧大多实施于软件层面,如热点方法优化、代码路径优化、算法优化等。硬件通常给软件工程师的印象就是硬件的计算能力是固定的,软件的性能问题是软件造成,应该从软件层面解决,然而实际情况是硬件的很多特性对于软件的性能影响有很大的影响。本分享和大家一起回顾一些硬件特性,如 Cache,SMT, Multi-core processor 等,并结合一些实际的例子来了解这些特性对于软件性能的影响。帮助性能优化工程师更全面地了解数据中心应用性能的影响因素,更好地优化数据中心应用的性能。

    主要内容

    从 Perf 的一个例子矩阵运算说起;

    Cache Prefetchers 如何影响了 Perf 的结果;

    SMT 下软件性能测试“哈哈镜”效应;

    多核不仅仅带来更多的计算能力。

    免费的性能午餐——Alibaba JDK 协程

    在分布式应,海量机器的背景下,写出高效的 WebServer 是巨大的技术挑战。nginx、memcached 等高效的服务器使用了高效的线程模型,通过异步编程结合少量线程来服务海量用户,获得了相比同步模型更高的性能,更快的响应时间,更低的机器成本。

    主流的 Java Web 容器给了我们一个可以独占整个线程的编程环境,操作系统消耗大量计算资源在线程调度上。现有的 Java 程序业务复杂、框架众多,用异步改写需要巨大的代价。Alibaba JDK 使用协程作为异步 IO 的抽象机制,使得现有基于独占线程模型的代码透明的跑在事件驱动模型上,获得性能提升。

    我将和大家分享事件驱动、异步、协程间的关系、实现原理;如何通过 JVM 改动零感知地让应用转换到异步模型。并结合阿里巴巴的海量电商、中间件应用场景分析异步的效果。

    主要内容

    异步编程和协程;

    协程的实现;

    透明的 JDK 协程;

    协程在阿里巴巴;

    Java 语言配合 Servlet 标准是目前大部分 Web 应用的运行环境,几乎所有服务端软件工程师都接触过。工程师们有必要知道他们的代码所在的运行环境,以及这套运行环境在线程模型上可以进行的改进。

    这个 Talk 将帮助大家学到 WebServer 线程模型的相关知识,了解 Alibaba Jdk 的协程特性及相关场景。有助于帮助大家在工作中写出更高效的程序,并在系统设计中考虑线程模型开销和协程这样的语言特性。

    驱动数据中心软件的极限并发性

    在线交易、电子商务和实时数据库等业务应用都需要高标准的服务,而不符合性能规格则可能会导致业务或责任违规。 因此,随着多核处理器的迅速发展,数据中心软件必须更有效地管理资源共享和争用。 然而,实现高并发性和高性能变得越来越难了。 在这个演讲中,我们将会讨论资源共享和争用的几个案例,分享我们的最佳已知方法,从而了解如何识别和优化性能瓶颈,以提供最高的并发性。

    听众受益

    在复杂的环境中识别性能和可扩展性的问题,并找到问题的根本原因。

    如何为数据中心软件开发优化的同步解决方案。

    可配置系统的数据高效性能学习

    如今许多软件系统是可配置的,能够通过特征选择提供定制功能。了解不同的特征选择能够让性能产生的变化是选择满足一系列要求的合适配置的关键。由于配置空间的巨大以及性能测量可能会有的高成本,通常来说不可能详尽地探索一个可配置系统的配置空间。因此,用测量的系统变量小样本来进行准确预测的难度很大。

    为了应对这一难题,我们提出了一种名为 DECART 的数据高效学习方法,它结合了几种机器学习和统计学技术,用于可配置系统的性能预测。 DECART 凭借一个可用的测量的系统变量样本来构建、验证和确定预测模型。对 10 个现实世界中的可配置系统的实证结果也证明了 DECART 的有效性和实用性。值得一提的是,DECART 仅凭一个有限特征数量的小样本就实现了 90%或更高的预测精度。此外,我们提出了一个样本质量的指标,并为大家介绍了一个能用于性能预测的样本质量定量分析。

    利用性能调优技术解决手机端 10 万量级数据的动态查询问题

    在移动互联网时代,用户体验几乎直接决定了一个应用的成败,而其中最基本的用户体验就是用户操作的流畅性。关于这一点的论述很多,最为常用的策略就是把耗时操作放在后台线程里,但这种做法往往是以牺牲不必要的信息展现实时性作为代价的。

    在本主题中,将围绕着一个现实的移动应用案例,来论述如何将性能优化的方法论与手段合理地运用在一个前端要对十万量级数据进行实时动态查询的应用开发中,从而实现了用户操作流畅性和信息展现实时性的双重目的,最终保证了更为良好的用户体验。

  • ?

    巧用工具,快速入门数据分析

    雨梅

    展开

    一提到数据分析,很多人可能脑海中可能会浮现出各式各样的数据画面。

    比如下图所示,这样的中国式复杂报表在企业中经常被使用,精密的复杂表格样式中蕴含着国人庞大的数据信息量。

    再比如这样的数据Dashboard可视化,通常应用于展示KPI业务指标,例如销售额、毛利率、利润率等等,数据的可视化呈现形式清晰直观。

    再就是目前火热的不行的可视化大屏,比如下图所示的双11全球天猫狂欢节当日的实时交易统计大屏,除了清晰直观地展示企业核心的KPI指标之外,狂拽炫酷是它至关重要的特征。

    大道至简的数据分析方法

    但无论是以上的哪一种,无论数据如何变换,所有看似神秘的数据分析过程都可以归纳总结为各种“维度+度量”的组合分析。

    维度用于描述事物的属性信息,例如统计各个地区的交易数量时,地区就是维度。

    度量(指标)是可以量化统计的数值,例如统计各个地区的交易数量时,交易数量就是度量。但是需要注意的是并不一定所有的数值都是度量,例如学生的学号虽然是数值类型,但是其实它是维度而非度量。

    如此一来,我们对数据分析有了从整体上的解释。但是实际应用中,我们并非盲目地去进行各种维度和度量的拼凑组合,而是希望得出的数据分析结果能够指引业务进行决策,终而形成业务闭环效果的。

    根据我自身的一些数据分析项目经验,90%以上的基本数据分析问题都可以套用我总结的这七步完成(深入的数据分析需涉及描述性统计分析、相关性分析等专业的统计分析技能):

    数据分析必然需要借助工具,Excel、BI或者R和Python语言都可以帮助实现。

    这里为了帮大家更快速地理解数据清洗建模和数据差异分析环节的内容,借助比较简单的BI工具FineBI,为大家进行一个销售数据分析实例,加深大家对数据建模和数据分析过程的理解。感兴趣的可以到官网下载,个人完全免费。

    一、确定分析目标

    这是分析前的第一步,我们需要明确进行数据分析的对象,也就是需要确定分析目标。

    通常来说我们会选取最关心的核心KPI指标,例如电商行业的销量、销售额、利润,制造行业的次品率,互联网行业的用户留存率等等。

    一般来说,分析目标不要过多,如果实在是需要同时分析多个关键核心业务KPI指标,那么我们便可以将这些核心指标分解给对应业务负责人,例如销售总监负责提升公司销售业绩,运营总监负责降低成本花费。

    二、核心目标拆解

    确定好分析目标之后,通常来说我们需要再对核心目标进行子目标分解,这也符合企业各团队分工协作的特性。

    核心目标拆解的过程中需要遵循MECE原则,也就是“完全穷举,相互独立”。例如下图所示的电子商务数据分析指标体系,就分别从网站运营指标、经营环境指标、销售指标、营销活动指标、客户价值指标几个方面进行了详尽的拆解,然后交由各个团队进行分工达成。

    三、数据清洗和业务建模

    确立和分解好数据分析目标之后,下一步就可以进入到数据清洗和业务建模环节了。

    数据清洗方面,很多人可能会想到国外传统的一些ETL工具,但是这类工具过于庞大和复杂,国内真正成功落地的案例很少。FineBI商业智能工具其实就提供了轻量级的ETL功能可供用户对数据进行计算和处理,鼠标点击和拖拽操作即可完成轻量的ETL数据处理过程。

    业务建模方面,FineBI也是提供了根据不同业务主题分类建立业务包的功能,一般来说按照维度表和事实表建立好关联关系即可,这样一来就为前端的数据差异分析准备好了数据模型。

    四、数据差异分析

    终于到了数据差异分析这一步,这也是离发现问题原因和业务决策最近的一步。

    所谓数据差异分析,自然是需要有差异,才能有分析。

    例如今年某某企业7月份的销售额是600万,那么大家会觉得对于这个企业来说是好还是坏?如果只有这一个数据,自然是无所谓数据差异分析的。

    如果这家企业的6月份的历史销售额是400万,那么7月份600万的销售额自然是非常好的了,可是如果这家企业的6月份历史销售额是800万,7月份600万的销售额明显是有问题的。

    a.纵向对比

    按照这个基础的数据差异分析逻辑,我们借助FineBI来初步分析一下某家企业今年各月度的销售额统计走势图:

    如上图所示,通过纵向对比不难看出该企业在7月份销售额下降严重,环比6月份的企业销售额下降了22.47%,不是个好现象。老板看到这个数据自然会前来问责,说为什么7月份公司销售业绩下滑这么厉害。那么会是什么原因导致企业7月的销售业绩相对6月下滑这么多呢?我们需要更新一步地进行数据分析,以排查出导致产生问题的”真凶“。

    b.横向对比

    一般来说销售型企业都会在全国划分各个销售区域,那么这样一来我们除了对时间进行纵向对比之外,还可以结合销售大区维度进行横向比较,分析探索看看能不能发现一些问题。

    果不其然,如上图所示,通过时间维度结合销售大区进行横向对比发现,企业的东南大区7月份的销售额相对6月份反而是增长的,看来问题主要出在北方区和中西区,特别是北方区7月份的销售业绩下滑更为严重,最终导致企业7月份总的销售额比6月份严重下滑。

    数据分析的丰富度一定程度上依赖于分析工具的功能,比如Excel可能需要写VBA,R和Python需要写代码。

    由于FineBI是一款商业智能工具,故而这边可以轻松通过其提供的OLAP联动分析功能,以更进一步的观察各个区域7月份的表现情况,直接点击饼图区域即可联动到月度销售额统计,非常方便。这边我们可以看出,中西区7月份销售额环比轻微下降17.86%,北方区下降严重到50.07%,而东南区则提高了6.06%,综合三个大区的总体销售状况,导致最终表现为7月份销售额环比下降了22.47%。

    c.综合对比

    上面分析了时间、区域维度相关的销售额结果统计,为了避免结论片面,我们尽量采用多维度的综合对比方式来观察数据,甚至可以是友商的销售情况对比进行差异分析(此处不单独举例说明)。

    如上图所示,我们通过时间维度结合产品类型来进行销售额分析,观察7月份各个产品线的数据发现各个产品线在7月份销售额环比都是有所下降的,这说明企业7月份销售额下降和产品种类本身是没有关系的。

    五、发现问题原因

    综合北方区域和中西区域导致7月份销售额环比下降的各种影响因素,最终发现是由于6、7月份北方区域降雨严重,导致物流周转严重滞后,库存商品无法及时供应,最终导致北方区域7月份销售业绩严重下滑了50.07%。而中西区域本身仓库比较小,按照之前各区域商品物流周转的设计,中西区域的本土供应的差额商品主要是由北方区域供应,但是北方区域由于严重的降雨导致物流周转严重滞后,进而导致中西区域7月份销售业绩也同比下滑了17.86%。

    六、制定业务决策

    通过结合FineBI工具的OLAP多维数据综合分析方法成功定位到问题原因之后,企业及时调整仓库商品物流周转策略,北方区域物流模式调整为水运,同时将东南区域的部分商品通过物流周转到中西区域。

    七、评估决策效果

    企业领导决策层8月份通过及时调整北方区域和中西区域的物流策略,北方区域物流模式调整为水运,东南区域的部分商品通过物流周转到中西区域,补充了北方区域和中西区域的库存商品周转。最终8月份企业的总体销售额达到了943万,环比7月销售额提高到了37.32%。

    后记

    随着信息化的飞速发展,大数据产业呈指数式增长。在我们不断地积累着企业的历史数据的同时,如何利用和分析好这些数据,真正利用大数据分析驱动企业的业务增长也成为了一个很重要的难题。希望本文给大家分享的数据分析方法,结合FineBI商业智能分析工具的OLAP多维分析能力,能够让大家下次在面对企业业务数据分析时不再迷惑,做到步步为营,让数据分析真正释放出潜能,驱动业务快速增长,形成数据和业务之间的闭环

  • ?

    数据分析不只Tableau,这款国产工具也能扛上一扛!

    初翠

    展开

    知乎上,关于商业数据分析和可视化,有两个网红工具:Tableau、PowerBI。在如今数据分析行业快速火热的今天,用它们来生成可视化dashboard,做数据探索分析,绝逼便捷。

    小编也是数据分析爱好者,时常把弄一些工具。Tableau的可视化很人性,个人用就像是Excel的智能版。但如果针对业态多样,数据量大而庞杂的企业数据分析,尤其是面临数据建模、数据清洗等耗费很多人力的操作,其实有款国产工具能和Tableau扛上一扛——FineBI。

    可能是企业级应用的缘故,比较低调,推荐的不是很多,今天小编就来给他正个名。

    (BI工程师、DBA、IT人可以关注下,职业利益相关)

    在正式介绍它之前,先介绍一下什么是自助式BI。

    自助式BI VS传统意识中的BI

    Tableau和FineBI都属于自助式BI,最大特点是用起来简单。

    在自助式BI出现之前,BI通常只有具备IT技术背景的研发人员和数据科学家能用,他们多集中在企业技术部门,通常也称为企业级BI,典型工具如SAP的BO、IBM的cognos。它们最大的问题是使用门槛高,让懂业务却不懂技术的业务分析师望而却步,只能向IT提需求,并不能对数据做统筹。而且传统BI工具效率低,完成一个需求要经过数据建模、ETL架构设计、报表开发等一系列工作,通常3~15个人天,如果需求一改,这些工作又得重做。

    同样的工作用自助式BI,数据没有大问题的话,1~2个人天。

    为什么差距这么大?技术上主要:自助式BI是自动建模,传统BI是手动建模。

    手动建模建出的模型是死的,使用聚合存储,建模之前必须把全部需求调查清楚,一旦需求有变,需要打回信息部重新沟通、建模、做模板,一前一后都有较高的沟通成本。自动建模是以表间关联为依据,多维数据库中存储明细数据,以深度优化的索引等技术保证即席运算性能。得到的模型灵活多变,需求变化的响应可以在OLAP层面,而非建模层面实现,免去了大量沟通和建模工作。这样的好处就是信息部可以授人以渔:信息部准备数据,教授业务部门做数据分析,立刻就知道问题出在哪里。

    那么,作为自助式BI的FineBI,其高效又体现在哪里?这里从工作效率、制作难度、需求应付率、可视化和数据处理性能上来介绍下。

    如何让IT &业务配合更高效?

    先来看一下FineBI的使用流程(如下图):分别为管理员创建业务包(准备数据),业务人员新建仪表板(可视化和探索性分析),业务人员新建螺旋分析(前端再处理数据),领导查看分析(对外分享报告)。

    创建业务包就是准备数据,这个工作一般让信息部去做,把数据转化成业务分析人员可理解的数据(一般会准备大而全的明细数据)。

    然后,业务人员拿着业务包里的明细数据,根据需求做分析,比如做一个销售dashboard,分析每个产品、每个地区、每个销售员的销售情况综合判断。在没有分析目标的情况下,可以尝试探索性分析:聚合、预测、帕累托等,都有现成的模型。

    螺旋分析就是有些情况下,一些字段没有现成的,比如环比、同比,你可以在前端创建新的公式。

    这些都完成后,基本的可视化就算完成了,然后将你的数据报告分享给领导,或者是定时出日报、月报,自动推送给指定人群。

    相比以前整天向信息部要催报告,修改报告的模式,流程配合上也就不再迂回,反复推锅了。

    如何10分钟做出一张dashboard?

    说了这么多,FineBI到底如何做dashboard ?

    流程

    简单来讲就是,数据准备好了之后,选图表——添加数据字段——没有现成字段的就设置一个——添加分析元素(钻取、联动)——美化图表——分享。

    如何做一份让人眼前一亮的可视化分析?

    比如下面这个大屏,通常应用在展厅、领导办公室、政务掌控中心。通常掌握上述的dashboard制作,30分钟就可以搞定。原理就是构建每一块图表,然后拼接在一起,美化一下背景,增加一些科技的元素。至于展示哪些数据,这个考量你的内功,需要根据你分析的思路来布局,最终能讲好一个故事。

    具体教程:30分钟,教你零基础用BI搭建可视化大屏

    除了分析,还能搞定复杂式中国报表!

    之前有网友评价,诸如此类的BI工具无法制作复杂的中国式报表。这里喊一下冤,BI工具和报表工具还是不一样的,前者是为了数据分析,快速出报告;后者就是做报表的,就是数据展示。使用BI是对同一个问题从不同的角度进行分析、以多种形式展现分析结果、通过管理驾驶舱突出业务问题的本质。使用报表就是制作中国式复杂报表、固定格式报表、周报、月报等。

    如果非要说两个需求都要的话,FineBI是可以搭配FineReport,做复杂式中国报表。

    FineReport是什么?它的本质是一个通用的报表制作和数据可视化工具。好比Excel,小到可以存储统计数据、制作各式各样的图表、dashboard,主要制作中国式复杂报表、固定格式的报表。参考这款效率远超Excel的表格工具,没用过就可惜了!你用过Excel,却不知还有一款神器“FineReport”

    怎么搭配使用?

    FineReport可以借助FineBI对大数据处理的性能,连接数仓和多维数据库,出表更快。

    同样的FineBI也可以借助FineReport,制作表格式报表,报表形式也不受局限。

    数据处理性能如何?

    刚有提到FineBI在大数据方面处理性能较佳,对于处理千万级、上亿级的数据,可以看下图:

    这工具的性能主要分为FineIndex性能和数据分析性能。

    FineIndex性能

    FineIndex本身作为数据仓库到自定义分析的中间层,它是将数据仓库中抽取的数据作为缓存数据生成文件放置到硬盘上的,它本身构建的是数据立方体,需要切片、分组索引。因此其性能参数主要在于如下:

    (1)内存

    FineIndex在抽取数据、分组写入索引、写入关联生成缓存数据的过程中,均会将数据在内存中去操作,内存越大其速度越快。

    FineIndex在数据计算的过程,采用的是java计算(一般优于sql计算),也是消耗内存的资源,因此内存越大其运算的速度越快。

    (2)硬盘

    FineIndex的生成是写入硬盘的文件。因此写入速度越快,性能越高。在被读取数据时,系统执行的是文件级读取(性能上优于数据库读取),读取文件的速度越快,则性能越优。

    数据分析性能

    数据分析是前端新建仪表板模块加载FineIndex的数据进入内存中进行计算。因此仍然是FineIndex的数据读取进行加载,然后在内存中运算。

    但是,区别于由于建立了业务包,数据仓库的数据定时更新,比如夜里更新,第二天处理数据就直接拿着本地的业务包里的数据做处理,也避免重复计算,像Tableau每次都是重新读取全部数据,数据量大会卡顿,运行速度高效快速。

    数据&分析协同

    FineBI有类似办公协同软件OA的一套流程管理和权限控制,主要出于数据安全考虑。可以设置部门只能看部门内的数据,个人只能看个人权限范围内的数据,dashboard制作完分享给别人时,也可以指定分享给谁,被分享者收到通知后登录门户时,可以看到报表出现在桌面中,然后修改、批注。

    小编觉得这点比tableau好太多,尤其是出于数据安全的考虑,更能适应本土化的需求。

    总结:

    总得来说,业务部门更关注底层数据处理的可信度,是否真实反映业务状况,是否能高效便捷低成本的完成数据分析,指导业务经营。在底层数据处理上,FineBI建立业务包这些操作,tableau要完善功能和易用性,让IT部门的人能互动,协同数据准备,高效而准确。

    最后,关于这工具,个人免费,真的随便用,并没有阉割功能,只是有两个并发限制,毕竟是商业软件嘛。

  • ?

    这12款开源数据分析应用软件值得关注

    郑水儿

    展开

    对于许多大企业来说,开源大数据分析已经成为日常业务中一个必不可少的组成部分。据New Vantage Partners公司对《财富》1000强公司的高层主管开展的调查显示,如今62.5%的企业在生产环境中至少运行一种大数据工具或应用软件。这比2013年给出同样回复的企业数量高出近一倍,只有5.4%的受访企业没有大数据计划。

    说到大数据分析,开源软件是常态,而不是异数。许多企业使用的一些领先工具由Apache基金会管理,许多商业工具至少一部分基于这些开源解决方案。

    我们在本文中介绍了市面上12款顶尖的开源数据分析解决方案,其中一些为大数据分析提供了全面的端到端平台,另一些要与其他技术结合起来。它们都适合大企业使用,都是市面上领先的数据分析工具。

    1. Hadoop

    谈到开源数据分析技术,就不可能不提到Hadoop。Apache基金会的这个项目已经几乎成为大数据的同义词,它让企业能够大规模分布式处理极其庞大的数据集。TDWI和SAS联合开展的一项调查发现,近60%的企业预计在2016年年底之前会在生产环境中拥有Hadoop集群。

    然而值得一提的是,Hadoop本身无法实现数据分析。它通常是从大数据获取洞察力的整个更庞大解决方案的一部分。

    2. Spark

    Spark也是Apache旗下的一个项目,它承诺可以迅速处理大数据。实际上,它声称“在内存中运行程序的速度比Hadoop MapReduce快100倍,在磁盘上运行程度的速度快10倍。”由于这种出色性能,它常常用于分析流式数据或用于需要交互式分析功能的应用软件中。许多公司经常把它与Hadoop或Mesos一起使用,不过它也能独立运行。最近,它的人气得到了急剧提升,Syncsort在2016年开展的一项调查发现,受访的企业大数据工作人员中近70%对Spark有兴趣。

    3. Talend

    不像前面两个项目,Talend由一家营利公司管理,而不是由基金会管理。因而,提供收费支付服务。Talend既提供免费产品,又提供收费产品。它免费的开源解决方案名为Talend Open Studio,下载量已超过了200万人次。

    市场研究公司Gartner最近将Talend评为数据集成领域的“领导者”。这家公司声称,相比与之竞争的解决方案,它帮助企业分析大数据的速度快五倍,而成本却只有五分之一。

    4. Jaspersoft

    与Talend一样,Jaspersoft也有多个版本,有的版本免费,有的版本收费。社区版是免费、开源的,而Reporting版、AWS版、专业版和企业版需要收费,不过随带支持服务。

    Jaspersoft是一款开源商业智能工具,旨在让企业用户可以借助自助服务,满足自己的要求。该公司声称,它的技术支持130000多款应用软件,提供嵌入式商业智能功能。

    5. Pentaho

    Pentaho自诩为“全面的数据集成和商业智能平台。”该公司主要大力推销它的商业版软件,该软件基于开源社区版。许多公司将它与Hadoop和Spark之类的工具一起使用,以便能够报告和显示大数据。该软件声称拥有一大批的知名客户,包括英国电信(BT)、卡特皮勒、纳斯达克、美国国土安全部、美国国家海洋和大气局(NOAA)、《纽约时报》、EMC及其他许多企业组织。

    6. RapidMiner

    RapidMiner声称是“头号开源数据科学平台”,Gartner将它评为高级分析魔力象限报告中的领导者。它能够实现自助式预测分析,承诺有望提升速度飞快的性能。用户包括宝马、汉莎航空、达美乐比萨公司、索尼、福特、Salesforce、国际特赦组织和通用电气公司。整个RadiMiner平台包括三个独立的组件:RapidMiner Studio、RapidMiner Server和RapidMiner Radoop。这三个组件都采用开源许可证或商业许可证,商业版价格取决于用户数量。

    7. Storm

    Apache Storm被雅虎、推特、Spotify、Yelp、Flipboard和Groupon之类的公司所使用,它是一种实时大数据处理引擎。它的官方网站解释:“Storm让用户很容易可靠地处理无限制的数据流,它在实时处理方面的功能好比Hadoop在批处理方面的功能。”客户可以将它与任何数据库或任何编程语言一起使用。它具有可扩展、容错、易于部分使用的优点。然而用户要注意的是,Storm还没有进入到1.0版本这个阶段。

    8. H2O

    H2O被60000多个数据科学家和7000多家企业组织所使用,声称是“世界上领先的开源机器学习平台。”由于它的内存技术,它提供了极其出色的性能。它还与Hadoop和Spark之类的其他许多开源数据分析工具整合起来,支持所有主要的流行数据库,提供收费的支持服务。

    除了标准版的H2O外,该公司还提供Sparkling Water,这个版本整合了Spark和Steam,后者是一种端到端人工智能应用引擎。

    9. Lumify

    Lumify由一家名为Altamira 科技的公司开发,自称是“开源大数据分析和可视化平台。”它让用户易于创建二维或三维图形,可显示实体之间的关系,或在地图上覆盖数据。对于有兴趣深入了解它的工作原理的那些人来说,官方网站提供了几个视频,显示了Lumify的实际运行,上面还有一个演示网站,让用户可以上传自己的数据,并试用软件。

    10. Drill

    Apache Dril让用户得以使用SQL查询用于非关系型数据存储系统。它支持一系列NoSQL和基于云的数据存储系统,包括HBase、MongoDB、MapR-DB、HDFS、MapR-FS、亚马逊S3、Azure Blob Storage、谷歌云存储和Swift。它还让用户可以使用单一查询,即可搜索用不同技术存储起来的多个数据集。此外,它支持许多流行的商业智能工具。

    11. MongoDB

    作为最知名的NoSQL数据库之一,MongoDB是一种开源非关系型数据存储解决方案。客户包括大都会人寿(MetLife)、芝加哥市、Expedia、谷歌、气象频道、BuzzFeed和Facebook。除了免费开源版外,该公司还提供一款收费的企业版和云托管的版本MongoDB Atlas。知名市场研究机构弗雷斯特研究公司将MongoDB评为大数据NoSQL领域的“领导者”。

    12. SpagoBI

    SpagoBI是一款开源商业智能和大数据分析平台。该软件完全免费,但还提供收费的用户支持、维护、咨询和培训等服务。它包括了用于报告、多维分析(OLAP)、图表、位置情报、数据挖掘、ETL(抽取转换和加载)及更多其他方面的工具。它还与流行的内存处理引擎整合起来,能够实现实时处理。

    原文地址:http://linuxprobe/12-valuable-data-analysis.html

    关注微信公共号,掌握最新IT资讯,免费领取RHCE考试真题。

  • ?

    11种常用的数据分析处理软件

    凌晨

    展开

      BI(BusinessIntelligence)即商业智能,越来越多的智能软件供应商推出可视化数据分析工具,应对企业业务人员的大数据分析需求。然而如果你觉得不是数据分析专业、没有挖掘算法基础就无法使用BI工具?NO,自助式分析工具已经让数据产品链条变得大众化。为了更好地帮助读者选择分析工具,重庆IT培训的老师将为大家介绍数说立方、数据观、BDP等11款BI-商业智能产品,排名不分先后!

      1、数说立方

      数说立方是数说故事新推出的一款面向数据分析师的在线商业智能产品。最重要的特点是配备百亿级社交数据库,同时支持全网公开数据实时抓取,从数据源端解决分析师难点;另外数说立方搭载了分布式搜索、语义分析、数据可视化三大引擎系统的海量计算平台,实现数据处理“探索式分析”和“秒级响应”的两个核心功能。同时数说立方是数说故事三大主打产品之一,并与其他两大产品数说聚合和数说雷达实现从数据源、数据分析、到数据展示完整的数据解决方案。

      优点:

      即便是个人免费版,体验和功能仍然非常好;

      与自家产品“数说聚合”的无缝接入,支持定向抓取微信、微博等数据;

      功能完善,集数据处理、特征工程、建模、文本挖掘为一体的机器学习平台;

      可视化视图展现、友好的客户感知页面;

      支持SAAS,私有化部署,有权限管理;

      缺点:

      产品新上市,操作指导页不太完善;

      体验过程中有一些小bug;

      2、数加平台

      数加是阿里云发布的一站式大数据平台,可以提供数据采集、结构化、加工到展示分析整套的一站式数据服务。 可采集不同系统及物理存储的源头数据,在分布式计算平台上进行数据的深度整合、计算、挖掘,将计算的结果通过可视化的工具进行个性化的数据分析和展现,也可直观的展示分析现有云上业务系统的数据库数据。

      优点:

      有完整的产品规划,功能完善;

      图形展示和客户感知良好;

      提供SQL查询;

      缺点:

      需要捆绑阿里云才能使用,一般用户还不能真正使用起来;

      部分体验功能一般,有一定的学习成本;

      3、Tableau

      Tableau是目前市面上较为成功的BI工具。产品既有针对性,又有普适性。拖放式界面,操作简单。数据兼容性强,适用于多种数据文件与数据库,同时也兼容多平台,windows、mac、Online均可使用。而且重要的一点是免费为用户安排现场培训或按需求进行在线培训。

      优点:

      处于行业领导者地位,功能完善;

      有较好的图形展现与客户感知;

      新产品开始支持云端展现,但是需要客户端支持;

      缺点:

      相比于商业智能BI,更像一个基于数据查询的数据展示工具;

      处理不规范数据、转化复杂模型比较难;

      无法处理大量数据;

      国内网络连接Online版速度较慢;

      4、Qlik

      QlikView只需轻轻单击几下,就可以对所有数据源进行合并、搜索、可视化和分析,可在不影响性能的前提下连接到多个数据源;其次视图种类丰富,界面简洁,互动性强,总体来说是一款简单易用的BI产品。Qlik用户可通过各类可视化效果,将Qlik扩展到任何应用程序中。另外用户也可以通过使用标准的和最新的网络API,可将可视化效果数据嵌入网站或应用程序。

      优点:

      产品功能完善,图形展现和客户感知良好;

      支持SAAS,有权限管理功能;

      缺点:

      有一定的学习成本;

      报表规范性要求很高;

      数据抓取功能都非常弱,需要有非常好的数据仓库作为基础;

      5、Spotfire

      Spotfire服务对象是一线工作人员和日常决策人员,其交互界面形象易懂,无需写脚本语言和编写程序就可以对数据进行添加、分离操作。内置搜索引擎,可以随意查找任意信息。支持R、S+等统计、挖掘功能;有丰富、开源的R模型。标记有自身特色,提供了过滤、钻取等功能,多个标记同时还可以实现图形化的集合运算。

      优点:

      交互界面形象易懂,即使是普通的业务人员也能轻而易举地进行复杂的数据分析;

      不一定要建数据仓库,还可以直接从多个异构数据源提取数据进行分析;

      支持SAAS,有权限管理功能;

      缺点:

      SAAS版只支持30M,由于是国外服务器所以上传很慢;

      不适合中国式的固定报表;

      进军中国市场较晚,国内案例较少;

      工具的适应性范围广,但是难易跨度大;

      6、神策分析

      神策分析的产品有完整的使用文档,每个模块都有详细的使用说明以及示例,降低了用户的学习成本。而且支持私有部署、任意维度的交叉分析,并帮助客户搭建专属的数据仓库。目前提供事件分析、漏斗分析、留存分析、数据管理等功能,未来预计会增加用户分群、用户人群分析、推送和异常维度组合挖掘等,工具需要付费使用。

      优点:

      专注于用户行为数据分析,不追求做大而追求做全;

      有详细的产品使用文档以及案例;

      提供SQL查询;

      缺点:

      更多的是demo示例,不能开箱即用;

      纯dashboard展示,并不能对单独一块数据作自定义分析;

      7、BDP

      BDP个人版使用免费,只需导入数据,设定分析维度,即可实时得到图表分析结果。产品示例和视频教学很细致,交互页面很友好。每次数据更新,对应的图表也会自动更新,可以免去一些重复分析、制作图表的数据工作。另外,分享环节也很贴心,数据仪表盘可以一键导出,也可直接生成链接分享给他人或分享到微信、微博等社交平台。

      优点:

      产品支持移动端;手机同步呈现最新数据

      用户可以免费使用工具,还有免费公开的数据源;

      操作体验流畅,界面友好,功能全,总体来说是一款不错的产品;

      即便是个人免费版,体验和功能仍然非常好;

      数据可以同步更新,免去了重复劳动的工作;

      缺点:

      官网的介绍比较简单;

      8、永洪BI

      永洪BI是一款可在前端进行多维分析和报表展现的BI软件。支持拖拽操作,数据源格式多样,提供不同级别的查询支持,支持跨库跨源连接。另外永洪提供了一款数据存储、数据处理的软件——MPP数据集市,可与BI打通,使得数据查询,钻取和展示的速度大幅度提高。不过其产品用户体验一般,拖拽过于自由,导致仪表盘布局不好控制;主题样式虽多但是给人感觉样式还是很传统。

      优点:

      商业流程完善,给人专业的感觉;

      产品定制化的版本效果不错;

      支持的数据接入较多;

      缺点:

      SAAS版体验很差,有一定的学习成本;

      UI的视觉效果一般,整体可视化效果不够现代化;

      9、数据观

      数据观的功能设计理念是极简、无门槛,所以它最大的特点就是简单。数据观数据来自云端,如:百度 网盘、微盘、salesforce等。数据上传后,马上有推荐图表,引导明确。另外产品的使用没有技术门槛,无需专业IT知识,同时适用于非专业分析师出身的业务人员,可以快速将数据转化成直观的图表,适合一开始接触数据分析工具的非专业数据从业人员。

      优点:

      注册只需填写邮箱,且支持明道账号登陆;

      使用引导明确,支持salesforce、百度云数据导入;

      分析结果支持链接分享,大大降低用户的沟通成本;

      缺点:

      不支持超过20MB的数据上传;

      数据导入后,数据分析体验方面存在bug;

      产品的使用以点击为主,不支持拖拽操作;

      10、FineBI

      FineBI分为数据处理、可视分析和分享公用三大功能模块。支持多种数据源,图表风格清爽美观,可选择任意维度分析。分析页面由控件和组件组成,控件和组件的数量是可以添加至任意多个,但是布局的交互比较僵硬,且使用逻辑有点乱,引导不明确。需要安装本地客户端才能使用。

      优点:

      有较为详细的行业案例与技术方案;

      产品演示和资源中心也较为清晰

      缺点:

      需要使用客户端,增加了使用的不便利性

      只有仪表盘展示,BI报表需要另一款产品;

      无法处理大量的数据;

      11、魔镜

      魔镜支持自动拖拽建模,同时可视化效果库十分酷炫。用户可以邀请团队成员到自己的项目,合作进行探索分析,并且按照需求有效控制访问数据的成员权限。产品模块规划完整,有基础企业版到hadoop等5种选择为,而且可以支持定制化服务。但是可能是云平台版的缘故,使用过程中出现不少BUG,企业版的体验可能会相对好一点。

      优点:

      产品模块的规划比较健全,其中包括数据源导入、数据分析、仪表盘、数据挖掘和数据工厂;

      官网的设计不错,模板选择性大,颜值控可能会喜欢;

      工具使用指导清晰,使用篇和方法篇等比较详细;

      缺点:

      产品存在较多的BUG,UI和功能相对其他产品来说较简陋;

      部分产品模块并不能切实用于数据分析;

      选择一款适用的BI产品,能够大大简化数据分析的繁杂工作,提高分析效率与质量。当然,以上每个工具各有优点,工具地址都给大家了,接下来就是轮到你动手的时候了,找一个自己喜欢的工具,开始吧!

      

  • ?

    千万级的数据量,如何高性能实现展示分析?

    施连志

    展开

    日常一提数据分析和可视化,就想到这个工具操作要多简单易用,图表要多美多炫,然而总是忽略背后的数据支撑。

    excel 几十万行数据就卡死崩,谈何数据透视表、可视化?近千万行的数据,订单提交数据库,sql sever处理要5分多钟,如果频繁入库/取数的话.....

    要知道,为了支撑起业务人员的数据分析,以及日常不考虑计算逻辑和技术难度,IT人员也是要花费很大的心血和精力啊(心疼运维人员n秒)。

    随着公司业务的发展,数据量变大是必然的事实。那么,数据部门要做分析,业务部门要看报表,要跑数据,要用BI,大数据量(千万级及以上)的分析,性能该如何优化?

    这里借某公司的真实案例,来阐述一下方案。

    ----------------------------------

    作为公司的科技部门人员,经常听到业务部门对自己使用的数据库各种吐槽:

    竟然存放在mongoDB中啊,震惊(ΩДΩ)。

    数据库慢慢熟悉了还好啊,但是现在每天的数据量越来越大,而且还在增加啊,增加大家很开心,然而数据库并不开心啊,简单的查询统计10多分钟还出不来结果,更不用说有稍微复杂点的统计分析了。

    我天天找DBA优化啊,然而并没有什么水花。

    数据量还在不断增长,到现在都上亿啦,全量查询统计根本出不来结果啊。

    ... ...

    最终业务人员找到科技部门提需求要弄个BI系统给处理下。

    对mongodb瞄了一大通,这就是个业务库。那直接对接mongodb自然不行,速度慢不说,mongodb挂了,分析系统也瘫了。自然就想到了使用中间库,emm mysql oracle 倒是有,可以跑调度抽过来,但是速度依旧不快呢,还要花功夫优化,性价比不高。公司有自己的hadoop平台,将数据抽过来再对接倒是可以,但是要花很大精力跑调度,而且这个数据库不能随意给这个业务部门提供,万一玩挂了可就得不偿失。假设有个具备离线数据存储功能的BI工具,岂不美哉。

    于是将市面上有离线数据存储功能的BI工具翻了个遍。期望找到个性能好,可以支持大数据量数据分析的BI工具。

    Tableau的hyper功能看起来OK,经不起实际使用,数据量过了亿,等了好久数据抽不好,pass;

    其他某BI工具有mpp离线存储,看起来很棒,还能横向扩展,不错。抱有最大期望的用,结果数据量一上亿,直接崩了,崩了,pass;

    另一个BI工具去看了看,咦,数据是放在vertica里面的......

    后来,找到了FineBI的分布式计算引擎方案,拿的『定制的 Alluxio』作为分布式内存存储框架,内存存储有数据安全性的担心,所以持久化层存储用了HDFS。为了数据分析嘛,自然是列式存储的。计算核心则以熟知的Spark,加上自研算法来处理的。使用熟知的zookeeper整合框架,并用于调度通信。

    分布式嘛,横向扩展自然不在话下。而列式存储、并行内存计算、计算本地化加上高性能算法,在FineBI中数据展示速度超快。有意思的是其计算本地化的操作,能减少不必要的shuffle,节省数据传输的消耗,提升数据计算速度。

    以下记录利用FineBI4.1工具的系统建设过程。

    一、需求分析

    针对以上的需求,可以预估到,18年内,常用分析预计最大数据量会达到4.7kw,不常用分析会达到3亿到4亿(包含淡季),数据总的体量最多会达到100G。后面的情况难以预估,就需要系统可横向扩展节点。

    二、方案描述

    1.系统架构

    根据官方推荐,将FineBI的web应用端与数据存储的分布式引擎放在一个机器上(处于安全考虑,也可以分开。这里不涉及太多部门使用,放一起即可),架构如下所示。

    架构图难以理解的话,可以看看灵魂画手的杰作~

    结合分布式引擎说明的技术原理,将各个机器再细分化各个组件的作用。

    以上,将系统架构规划完成,即可具体完成系统。

    2.完成从MongoDB取数

    在使用BI工具对接MongoDB的时候,使用MongoDB的BI连接器。

    感兴趣可以看:MongoDB Download Center

    方案原理:mongodb是非结构的数据库,而要想BI来连接,通过建模的方式取表,拆表,建模来分析。通过MONGODB CONNECTOR FOR BI连接器的方式,使用mysql的JDBC驱动来获取数据。

    实现过程:

    第一步:安装MONGODB CONNECTOR FOR BI

    从官网选择版本:MongoDB Download Center

    第二步:生成DRDL文件

    mongodrdl是生成该文件的主命令。通过添加monogdb的相关参数来获取其中的表生成drdl文件。从官方文档上我们可以找到生成DRDL文件命令的范式:

    1 mongodrdl --host myhost.example:27017 \2 --username dbUser \3 --password myPassword \4 --db reports \5 --authenticationDatabase admin \6 --out schema.drdl

    范式说明:

    --host 是mongodb的ip+端口号,通常可为127.0.0.1:27017--username 是mongodb的用户,需具备相关的数据权限--password 是username的密码--db 是要生成DRDL的数据库实例名--authenticationDatabase 是指定创建用户的数据库。即username创建时被指定到的数据库名。--out 是DRDL输出文件定义。值使用.drdl的文件即可。

    第三步:启动连接器,连接上monogdb

    启动连接器的主命令服务是mongosqld,由于mongodb开启用户认证了(auth=true)。从官方文档上可知,连接器的启动需要使用-auth参数,再使用auth参数的情况下,mysql驱动来取数就需要SSLl加密认证。

    所以第一步需要配置mongosqld的SSL认证;才能启动连接器来取数!!!!!!!!!!这一步神坑,也是踩了多少坑,才找到的解决办法。

    此处认证关系是FineBi端的mysql连接与mongosqld的连接之间的SSL认证。在认证时,只需要配置单向SSL的认证即可(mongosqld认证FineBI的连接)。

    (1)生成SSL认证文件

    SSL认证文件通常采用openSSL来生成,先看看是否安装了openSSL;执行命令:

    rpm -qa|grep -i openssl

    如安装了会返回信息,未安装需要自行安装OpenSSL。

    采用以下命令来生成证书:(由于是测试,就直接自己生成证书,密钥)

    openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out mongodb-cert.crt -keyout mongodb-cert.key

    命令返回会让填写一些值,在后面填写即可。

    一般情况下,文件会生成到你所使用的linux用户的要根目录下:比如我用的root用户,就到/root下面查找。

    再使用以下命令,将key合到.pem的文件里。

    cat mongodb-cert.key mongodb-cert.crt >mongodb.pem

    将该文件移动/etc/ssl下面用于验证使用:

    mv mongodb.pem /etc/ssl

    (2)启动连接器&SSL

    再来看官方文档,从所有的参数命令里面,找一找需要的参数;得出以下的范式,在bin目录下启动即可。

    mongosqld --auth --sslMode --sslPEMKeyFile --sslAllowInvalidCertificates --defaultAuthSource --mongo-uri --mongo-username --mongo-password --mongo-authenticationSource --schema

    说明:

    --auth 是开启用户认证的参数,默认值是true--sslMode是开启SSL的标识,如开启可以选择值为“requireSSL”--sslPEMKeyFile是SSL认证文件,一般为.pem结尾的文件;单向认证的时候。--sslAllowInvalidCertificates--defaultAuthSource是mongosqld使用username指向mongodb的有权限的库,默认值是admin--mongo-uri是mongodb的host,一般为ip+端口号--mongo-usrname是drdl生成的用户名--mongo-password是drdl生成的密码--mongo-authenticationSource指定用户的创建库--schema是要连接的drdl文件。

    注:一般还是要用nohup 的命令来生成,保证shell断掉,连接器依然可用。

    第四步:启动FineBI连接到连接器上

    启动FineBI,打开FineBI>数据配置>数据连接:添加数据连接选择mysql,配置如下:

    连接名:mongodbURL:jdbc:mysql://127.0.0.1:3307/test?ssl-key=/etc/ssl/mongodb.pem用户名:密码:注:URL:jdbc:mysql://ip+3307/dbname?ssl-key=xx.pem,后面ssl-key是ssl参数

    点击测试连接即可。

    过程坑点:mongodb的BI连接器神坑,官网文档不多,踩过了几脚坑。

    (1)mongosqld按ssl认证开启成功,打印也不错,但是BI连接的时候,还是抛错1043 SQLSTATE: 08S01 (ER_HANDSHAKE_ERROR):this server only allows SSL xxxxx该抛错是mysql抛出来的,握手不良的错误。按道理SSL已经开启了,不应该是这样。后来查了mysql的文档,mysql5.5以上的版本才支持SSL;更换新的driver驱动,使用的是5.1.44完全没问题的。

    (2)BI连接的时候抛错 handshake error: ERROR 1043 (08S01): error performing authentication: unable to authenticate conversation 0: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.

    该抛错的意思,使用“SCRAM-SHA-1”的认证方式,没有认证成功。SCRAM-SHA-1是指用户名密码的方式,这里看是不是用户名/密码错误,注意mongosqld启动时的使用的用户名/密码

    (3)一定要开启SSL认证啊!!!

    (4)期间有设计器无故死掉的情况,发现是由于内存不足导致。记得空闲内存要足够!!

    三.系统效果

    1.数据更新

    (1) 单个表先全量抽取,之后每天对单表依据时间戳,做增量增加。其中有错误数据做增量删除即可。

    (2)有些内部使用的实时性较高的表,设定每2小时更新一次,从上午9点到下午6点。直接从业务库抽取其实是有风险的,当时数据库压力大,抽取比较慢,因此这部分仅作为非重点用户需求场景。

    2.数据展示速度

    做了一个简单的依据时间的group by,时间在1s之内,翻页速度也很快。

    至此,对接mongodb完成,一个用户可以随便玩的系统就好了。即使偶尔mongodb发疯修整,有离线数据在,也不担心业务部门来嚷嚷了。而且速度超快,体验很棒~

    最后

    如果你也在寻求一个高性能展示分析、数据分析的BI工具的话,不妨尝试下FineBI。

  • ?

    10款丨超好用的开源大数据分析工具

    希未

    展开

     考虑到现有技术解决方案的复杂性与多样化,企业往往很难找到适合自己的大数据收集与分析工具。然而,混乱的时局之下已经有多种方案脱颖而出,证明其能够帮助大家切实完成大数据分析类工作。下面我们将整理出一份包含十款工具的清单,从而有效压缩选择范畴。

      数据已经成为现代化企业中最为重要的宝贵资源。一切决策、策略或者方法都需要依托于对数据的分析方可实现。随着“大数据分析”逐步替代其上代版本,即“商务智能”,企业正面临着一个更加复杂、且商业情报规模更为庞大的新时代。

      考虑到现有技术解决方案的复杂性与多样化,企业往往很难找到适合自己的大数据收集与分析工具。然而,混乱的时局之下已经有多种方案脱颖而出,证明其能够帮助大家切实完成大数据分析类工作。下面我们将整理出一份包含十款工具的清单,从而有效压缩选择范畴。

      1. OpenRefine

      这是一款高人气数据分析工具,适用于各类与分析相关的任务。这意味着即使大家拥有多川不同数据类型及名称,这款工具亦能够利用其强大的聚类算法完成条目分组。在聚类完成后,分析即可开始。

      2.hadoop

      大数据与Hadoop可谓密不可分。这套软件库兼框架能够利用简单的编程模型将大规模数据集分发于计算机集群当中。其尤为擅长处理大规模数据并使其可用于本地设备当中。作为Hadoop的开发方,Apache亦在不断强化这款工具以提升其实际效果。

      3. Storm

      同样来自Apache的Storm是另一款伟大的实时计算系统,能够极大强化无限数据流的处理效果。其亦可用于执行多种其它与大数据相关的任务,具体包括分布式RPC、持续处理、在线机器学习以及实时分析等等。使用Storm的另一大优势在于,其整合了大量其它技术,从而进一步降低大数据处理的复杂性。

      4. Plotly

      这是一款数据可视化工具,可兼容JavaScript、MATLAB、Python以及R等语言。Plotly甚至能够帮助不具备代码编写技能或者时间的用户完成动态可视化处理。这款工具常由新一代数据科学家使用,因为其属于一款业务开发平台且能够快速完成大规模数据的理解与分析。

      5. Rapidminer

      作为另一款大数据处理必要工具,Rapidminer属于一套开源数据科学平台,且通过可视化编程机制发挥作用。其功能包括对模型进行修改、分析与创建,且能够快速将结果整合至业务流程当中。Rapidminer目前备受瞩目,且已经成为众多知名数据科学家心目中的可靠工具。

      6. Cassandra

      Apache Cassandra 是另一款值得关注的工具,因为其能够有效且高效地对大规模数据加以管理。它属于一套可扩展NoSQL数据库,能够监控多座数据中心内的数据并已经在Netflix及eBay等知名企业当中效力。

      7. Hadoop MapReduce

      这是一套软件框架,允许用户利用其编写出以可靠方式并发处理大规模数据的应用。MapReduce应用主要负责完成两项任务,即映射与规约,并由此提供多种数据处理结果。这款工具最初由谷歌公司开发完成。

      8. Bokeh

      这套可视化框架的主要目标在于提供精致且简洁的图形处理结果,用以强化大规模数据流的交互能力。其专门供Python语言使用。

      9. Wolfram Alpha

      这是一套搜索引擎,旨在帮助用户搜索其需要的计算素材或者其它内容。举例来说,如果大家输入“Facebook”,即可获得与Facebook相关的HTML元素结构、输入解释、Web托管信息、网络统计、子域、Alexa预估以及网页信息等大量内容。

      10. Neo4j

      其官方网站将这款工具称为图形数据库技术的下一场革命。这种说法在一定程度上并不夸张,因为此套数据库使用数据间的关系以操作并强化性能表现。Neo4j目前已经由众多企业用于利用数据关系实现智能应用,从而帮助自身保持市场竞争优势。

    End.

    如果对软件测试感兴趣,想了解更多的软件测试知识,请大家关注“51Testing软件测试网”百家号。

好软件性能数据分析

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP