数据交易平台逻辑分析方法

大家好,今天小编来为大家解答数据交易平台逻辑分析方法这个问题,数据分析师常用的数据分析思路很多人还不知道,现在让我们一起来看看吧!

本文目录

  1. 数据分析师常用的数据分析思路
  2. 如何打造高性能大数据分析平台
  3. 怎样选择数据平台的建设方案

一、数据分析师常用的数据分析思路

1、细分分析是数据分析的基础,单一维度下的指标数据信息价值很低。

2、细分分析法可以大致分为两类,一类是逐步分析,如:来北京市的访客可分为朝阳和海淀等区;另一类是维度交叉,如:来自付费SEM的新访客。

3、对比分析主要是把两个有关联的数据指标进行相互比较,从数量上说明和展现研究对象的规模大小,水平的高低,速度快慢等方面的相对值,然后通过在一样的维度下的指标数据对比,可以发现,找出业务在不同阶段的问题。

4、转化漏斗分析是数据分析师进行业务分析的基本模型,我们最经常见的就是把最终的转化设置为某种目的的实现,最典型的就是完成交易。但也可以是其他任何目的的实现,比如一次使用app的时间超过10分钟。

5、同期群(cohort)分析在数据分析运营领域相当重要,尤其是互联网运营,特别需要仔细观察留存的情况。通过对性质完全一样的可对比群体的留存情况的比较,来分析哪些因素影响用户的留存。

6、聚类分析具有简单,直观的特征,网站分析中的聚类主要分为:用户,页面或内容,来源。

7、用户聚类主要体现为用户分群,用户标签法;页面聚类则主要是相似,相关页面分组法;来源聚类主要包括渠道,关键词等。

8、增长黑客的一个主要思想之一,是千万不要做一个大又全的东西,相反是需要不断做出能够快速验证的小而精的东西。快速验证,那如何验证呢?主要方法就是AB测试。

9、只有采集了足够的基础数据,才能通过各种分析方法得到需要的分析结果。

10、通过分析用户行为,并细分为:浏览行为,轻度交互,重度交互,交易行为,对于浏览行为和轻度交互行为的点击按钮等事件,因其使用频繁,数据简单,采用无埋点技术实现自助埋点,即可以提高数据分析的实效性,需要的数据可立即提取,又大量减少技术人员的工作量,需要采集更丰富信息的行为。

11、流量红利消失,我们对获客来源的重视度极高,如何有效的标注用户来源,至关重要。

12、传统分析工具,渠道分析仅有单一维度,要深入分析不同渠道不同阶段效果,SEM付费搜索等来源渠道和用户所在地区进行交叉分析,得出不同区域的获客详细信息,维度越细,分析结果也越有价值。

13、众所周知,用户分析是互联网运营的核心环节,通常用到的分析方法有:活跃分析,留存分析,用户分群,用户画像,用户细查等。可将用户活跃细分为浏览活跃,互动活跃,交易活跃等,通过活跃行为的细分,掌握关键行为指标。

14、表单分析中的填写表单,这个环节是每个平台与用户交互的必有环节,一份完美的表单设计,对客户转化率的提升有至关重要的作用。

15、用户进入表单页面,这时候就已经产生了微漏斗,从进入的总共的人数到最后完成,并且成功提交表单人数,这个过程之中,有多少人开始填写表单,填写表单时,遇到了什么困难导致无法完成表单,都影响最终的转化效果。

16、有关数据分析师常用的数据分析思路的内容,青藤小编就和您分享到这里了。如果您对互联网大数据有着浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于大数据、数据分析师的技巧及素材等内容,可以点击本站的其他文章进行学习。

二、如何打造高性能大数据分析平台

大数据分析系统作为一个关键性的系统在各个公司迅速崛起。但是这种海量规模的数据带来了前所未有的性能挑战。同时,如果大数据分析系统无法在第一时间为运营决策提供关键数据,那么这样的大数据分析系统一文不值。本文将从技术无关的角度讨论一些提高性能的方法。下面我们将讨论一些能够应用在大数据分析系统不同阶段的技巧和准则(例如数据提取,数据清洗,处理,存储,以及介绍)。本文应作为一个通用准则,以确保最终的大数据分析平台能满足性能要求。

大数据是最近IT界最常用的术语之一。然而对大数据的定义也不尽相同,所有已知的论点例如结构化的和非结构化、大规模的数据等等都不够完整。大数据系统通常被认为具有数据的五个主要特征,通常称为数据的5 Vs。分别是大规模,多样性,高效性、准确性和价值性。

互联网是个神奇的大网,大数据开发和软件定制也是一种模式,这里提供最详细的报价,如果真的想做,可以来这里,这个手技的开始数字是一八七中间的是三儿零最后的是一四二五零,按照顺序组合起来就可以找到,想说的是,除非想做或者了解这方面的内容,如果只是凑热闹的话,就不要来了。

据Gartner称,大规模可以被定义为“在本(地)机数据采集和处理技术能力不足以为用户带来商业价值。当现有的技术能够针对性的进行改造后来处理这种规模的数据就可以说是一个成功的大数据解决方案。

这种大规模的数据没将不仅仅是来自于现有的数据源,同时也会来自于一些新兴的数据源,例如常规(手持、工业)设备,日志,汽车等,当然包括结构化的和非结构化的数据。

据Gartner称,多样性可以定义如下:“高度变异的信息资产,在生产和消费时不进行严格定义的包括多种形式、类型和结构的组合。同时还包括以前的历史数据,由于技术的变革历史数据同样也成为多样性数据之一“。

高效性可以被定义为来自不同源的数据到达的速度。从各种设备,传感器和其他有组织和无组织的数据流都在不断进入IT系统。由此,实时分析和对于该数据的解释(展示)的能力也应该随之增加。

根据Gartner,高效性可以被定义如下:“高速的数据流I/O(生产和消费),但主要聚焦在一个数据集内或多个数据集之间的数据生产的速率可变上”。

准确性,或真实性或叫做精度是数据的另一个重要组成方面。要做出正确的商业决策,当务之急是在数据上进行的所有分析必须是正确和准确(精确)的。

大数据系统可以提供巨大的商业价值。像电信,金融,电子商务,社交媒体等,已经认识到他们的数据是一个潜在的巨大的商机。他们可以预测用户行为,并推荐相关产品,提供危险交易预警服务,等等。

与其他IT系统一样,性能是大数据系统获得成功的关键。本文的中心主旨是要说明如何让大数据系统保证其性能。

大数据系统应该包含的功能模块,首先是能够从多种数据源获取数据的功能,数据的预处理(例如,清洗,验证等),存储数据,数据处理、数据分析等(例如做预测分析??,生成在线使用建议等等),最后呈现和可视化的总结、汇总结果。

下图描述了大数据系统的这些高层次的组件

描述本节的其余部分简要说明了每个组分,如图1。

2.1各种各样的数据源当今的IT生态系统,需要对各种不同种类来源的数据进行分析。这些来源可能是从在线Web应用程序,批量上传或feed,流媒体直播数据,来自工业、手持、家居传感的任何东西等等。

显然从不同数据源获取的数据具有不同的格式、使用不同的协议。例如,在线的Web应用程序可能会使用SOAP/ XML格式通过HTTP发送数据,feed可能会来自于CSV文件,其他设备则可能使用MQTT通信协议。

由于这些单独的系统的性能是不在大数据系统的控制范围之内,并且通常这些系统都是外部应用程序,由第三方供应商或团队提供并维护,所以本文将不会在深入到这些系统的性能分析中去。

2.2数据采集第一步,获取数据。这个过程包括分析,验证,清洗,转换,去重,然后存到适合你们公司的一个持久化设备中(硬盘、存储、云等)。

在下面的章节中,本文将重点介绍一些关于如何获取数据方面的非常重要的技巧。请注意,本文将不讨论各种数据采集技术的优缺点。

2.3存储数据第二步,一旦数据进入大数据系统,清洗,并转化为所需格式时,这些过程都将在数据存储到一个合适的持久化层中进行。

在下面的章节中,本文将介绍一些存储方面的最佳实践(包括逻辑上和物理上)。在本文结尾也会讨论一部分涉及数据安全方面的问题。

2.4数据处理和分析第三步,在这一阶段中的一部分干净数据是去规范化的,包括对一些相关的数据集的数据进行一些排序,在规定的时间间隔内进行数据结果归集,执行机器学习算法,预测分析等。

在下面的章节中,本文将针对大数据系统性能优化介绍一些进行数据处理和分析的最佳实践。

2.5数据的可视化和数据展示最后一个步骤,展示经过各个不同分析算法处理过的数据结果。该步骤包括从预先计算汇总的结果(或其他类似数据集)中的读取和用一种友好界面或者表格(图表等等)的形式展示出来。这样便于对于数据分析结果的理解。

数据采集是各种来自不同数据源的数据进入大数据系统的第一步。这个步骤的性能将会直接决定在一个给定的时间段内大数据系统能够处理的数据量的能力。

数据采集??过程基于对该系统的个性化需求,但一些常用执行的步骤是-解析传入数据,做必要的验证,数据清晰,例如数据去重,转换格式,并将其存储到某种持久层。

涉及数据采集过程的逻辑步骤示如下图所示:

来自不同数据源的传输应该是异步的。可以使用文件来传输、或者使用面向消息的(MoM)中间件来实现。由于数据异步传输,所以数据采集过程的吞吐量可以大大高于大数据系统的处理能力。异步数据传输同样可以在大数据系统和不同的数据源之间进行解耦。大数据基础架构设计使得其很容易进行动态伸缩,数据采集的峰值流量对于大数据系统来说算是安全的。

如果数据是直接从一些外部数据库中抽取的,确保拉取数据是使用批量的方式。

如果数据是从feed file解析,请务必使用合适的解析器。例如,如果从一个XML文件中读取也有不同的解析器像JDOM,SAX,DOM等。类似地,对于CSV,JSON和其它这样的格式,多个解析器和API是可供选择。选择能够符合需求的性能最好的。

优先使用内置的验证解决方案。大多数解析/验证工作流程的通常运行在服务器环境(ESB/应用服务器)中。大部分的场景基本上都有现成的标准校验工具。在大多数的情况下,这些标准的现成的工具一般来说要比你自己开发的工具性能要好很多。

类似地,如果数据XML格式的,优先使用XML(XSD)用于验证。

即使解析器或者校等流程使用自定义的脚本来完成,例如使用java优先还是应该使用内置的函数库或者开发框架。在大多数的情况下通常会比你开发任何自定义代码快得多。

尽量提前滤掉无效数据,以便后续的处理流程都不用在无效数据上浪费过多的计算能力。

大多数系统处理无效数据的做法通常是存放在一个专门的表中,请在系统建设之初考虑这部分的数据库存储和其他额外的存储开销。

如果来自数据源的数据需要清洗,例如去掉一些不需要的信息,尽量保持所有数据源的抽取程序版本一致,确保一次处理的是一个大批量的数据,而不是一条记录一条记录的来处理。一般来说数据清洗需要进行表关联。数据清洗中需要用到的静态数据关联一次,并且一次处理一个很大的批量就能够大幅提高数据处理效率。

数据去重非常重要这个过程决定了主键的是由哪些字段构成。通常主键都是时间戳或者id等可以追加的类型。一般情况下,每条记录都可能根据主键进行索引来更新,所以最好能够让主键简单一些,以保证在更新的时候检索的性能。

来自多个源接收的数据可以是不同的格式。有时,需要进行数据移植,使接收到的数据从多种格式转化成一种或一组标准格式。

和解析过程一样,我们建议使用内置的工具,相比于你自己从零开发的工具性能会提高很多。

数据移植的过程一般是数据处理过程中最复杂、最紧急、消耗资源最多的一步。因此,确保在这一过程中尽可能多的使用并行计算。

一旦所有的数据采集的上述活动完成后,转换后的数据通常存储在某些持久层,以便以后分析处理,综述,聚合等使用。

多种技术解决方案的存在是为了处理这种持久(RDBMS,NoSQL的分布式文件系统,如Hadoop和等)。

谨慎选择一个能够最大限度的满足需求的解决方案。

一旦所有的数据采集步骤完成后,数据将进入持久层。

在本节中将讨论一些与数据数据存储性能相关的技巧包括物理存储优化和逻辑存储结构(数据模型)。这些技巧适用于所有的数据处理过程,无论是一些解析函数生的或最终输出的数据还是预计算的汇总数据等。

首先选择数据范式。您对数据的建模方式对性能有直接的影响,例如像数据冗余,磁盘存储容量等方面。对于一些简单的文件导入数据库中的场景,你也许需要保持数据原始的格式,对于另外一些场景,如执行一些分析计算聚集等,你可能不需要将数据范式化。

大多数的大数据系统使用NoSQL数据库替代RDBMS处理数据。

不同的NoSQL数据库适用不同的场景,一部分在select时性能更好,有些是在插入或者更新性能更好。

具体的数据库选型依赖于你的具体需求(例如,你的应用程序的数据库读写比)。

同样每个数据库都会根据不同的配置从而控制这些数据库用于数据库复制备份或者严格保持数据一致性?这些设置会直接影响数据库性能。在数据库技术选型前一定要注意。

压缩率、缓冲池、超时的大小,和缓存的对于不同的NoSQL数据库来说配置都是不同的,同时对数据库性能的影响也是不一样的。

数据Sharding和分区是这些数据库的另一个非常重要的功能。数据Sharding的方式能够对系统的性能产生巨大的影响,所以在数据Sharding和分区时请谨慎选择。

并非所有的NoSQL数据库都内置了支持连接,排序,汇总,过滤器,索引等。

如果有需要还是建议使用内置的类似功能,因为自己开发的还是不灵。

NoSQLs内置了压缩、编解码器和数据移植工具。如果这些可以满足您的部分需求,那么优先选择使用这些内置的功能。这些工具可以执行各种各样的任务,如格式转换、压缩数据等,使用内置的工具不仅能够带来更好的性能还可以降低网络的使用率。

许多NoSQL数据库支持多种类型的文件系统。其中包括本地文件系统,分布式文件系统,甚至基于云的存储解决方案。

如果在交互式需求上有严格的要求,否则还是尽量尝试使用NoSQL本地(内置)文件系统(例如HBase使用HDFS)。

这是因为,如果使用一些外部文件系统/格式,则需要对数据进行相应的编解码/数据移植。它将在整个读/写过程中增加原本不必要的冗余处理。

大数据系统的数据模型一般来说需要根据需求用例来综合设计。与此形成鲜明对比的是RDMBS数据建模技术基本都是设计成为一个通用的模型,用外键和表之间的关系用来描述数据实体与现实世界之间的交互。

在硬件一级,本地RAID模式也许不太适用。请考虑使用SAN存储。

数据处理和分析是一个大数据系统的核心。像聚合,预测,聚集,和其它这样的逻辑操作都需要在这一步完成。

本节讨论一些数据处理性能方面的技巧。需要注意的是大数据系统架构有两个组成部分,实时数据流处理和批量数据处理。本节涵盖数据处理的各个方面。

在细节评估和数据格式和模型后选择适当的数据处理框架。

其中一些框架适用于批量数据处理,而另外一些适用于实时数据处理。

同样一些框架使用内存模式,另外一些是基于磁盘io处理模式。

有些框架擅长高度并行计算,这样能够大大提高数据效率。

基于内存的框架性能明显优于基于磁盘io的框架,但是同时成本也可想而知。

概括地说,当务之急是选择一个能够满足需求的框架。否则就有可能既无法满足功能需求也无法满足非功能需求,当然也包括性能需求。

一些这些框架将数据划分成较小的块。这些小数据块由各个作业独立处理。协调器管理所有这些独立的子作业?在数据分块是需要当心。

该数据快越小,就会产生越多的作业,这样就会增加系统初始化作业和清理作业的负担。

如果数据快太大,数据传输可能需要很长时间才能完成。这也可能导致资源利用不均衡,长时间在一台服务器上运行一个大作业,而其他服务器就会等待。

不要忘了查看一个任务的作业总数。在必要时调整这个参数。

最好实时监控数据块的传输。在本机机型io的效率会更高,这么做也会带来一个副作用就是需要将数据块的冗余参数提高(一般hadoop默认是3份)这样又会反作用使得系统性能下降。

此外,实时数据流需要与批量数据处理的结果进行合并。设计系统时尽量减少对其他作业的影响。

大多数情况下同一数据集需要经过多次计算。这种情况可能是由于数据抓取等初始步骤就有报错,或者某些业务流程发生变化,值得一提的是旧数据也是如此。设计系统时需要注意这个地方的容错。

这意味着你可能需要存储原始数据的时间较长,因此需要更多的存储。

数据结果输出后应该保存成用户期望看到的格式。例如,如果最终的结果是用户要求按照每周的时间序列汇总输出,那么你就要将结果以周为单位进行汇总保存。

为了达到这个目标,大数据系统的数据库建模就要在满足用例的前提下进行。例如,大数据系统经常会输出一些结构化的数据表,这样在展示输出上就有很大的优势。

更常见的是,这可能会这将会让用户感觉到性能问题。例如用户只需要上周的数据汇总结果,如果在数据规模较大的时候按照每周来汇总数据,这样就会大大降低数据处理能力。

一些框架提供了大数据查询懒评价功能。在数据没有在其他地方被使用时效果不错。

实时监控系统的性能,这样能够帮助你预估作业的完成时间。

6.数据可视化和展示中的性能技巧

精心设计的高性能大数据系统通过对数据的深入分析,能够提供有价值战略指导。这就是可视化的用武之地。良好的可视化帮助用户获取数据的多维度透视视图。

需要注意的是传统的BI和报告工具,或用于构建自定义报表系统无法大规模扩展满足大数据系统的可视化需求。同时,许多COTS可视化工具现已上市。

本文将不会对这些个别工具如何进行调节,而是聚焦在一些通用的技术,帮助您能打造可视化层。

确保可视化层显示的数据都是从最后的汇总输出表中取得的数据。这些总结表可以根据时间短进行汇总,建议使用分类或者用例进行汇总。这么做可以避免直接从可视化层读取整个原始数据。

这不仅最大限度地减少数据传输,而且当用户在线查看在报告时还有助于避免性能卡顿问题。

重分利用大化可视化工具的缓存。缓存可以对可视化层的整体性能产生非常不错的影响。

物化视图是可以提高性能的另一个重要的技术。

大部分可视化工具允许通过增加线程数来提高请求响应的速度。如果资源足够、访问量较大那么这是提高系统性能的好办法。

尽量提前将数据进行预处理,如果一些数据必须在运行时计算请将运行时计算简化到最小。

可视化工具可以按照各种各样的展示方法对应不同的读取策略。其中一些是离线模式、提取模式或者在线连接模式。每种服务模式都是针对不同场景设计的。

同样,一些工具可以进行增量数据同步。这最大限度地减少了数据传输,并将整个可视化过程固化下来。

保持像图形,图表等使用最小的尺寸。

大多数可视化框架和工具的使用可缩放矢量图形(SVG)。使用SVG复杂的布局可能会产生严重的性能影响。

像任何IT系统一样安全性要求也对大数据系统的性能有很大的影响。在本节中,我们讨论一下安全对大数据平台性能的影响。

-首先确保所有的数据源都是经过认证的。即使所有的数据源都是安全的,并且没有针对安全方面的需求,那么你可以灵活设计一个安全模块来配置实现。

-数据进过一次认证,那么就不要进行二次认证。如果实在需要进行二次认证,那么使用一些类似于token的技术保存下来以便后续继续使用。这将节省数据一遍遍认证的开销。

-您可能需要支持其他的认证方式,例如基于PKI解决方案或Kerberos。每一个都有不同的性能指标,在最终方案确定前需要将其考虑进去。

-通常情况下数据压缩后进入大数据处理系统。这么做好处非常明显不细说。

-针对不同算法的效率、对cpu的使用量你需要进行比较来选出一个传输量、cpu使用量等方面均衡的压缩算法。

-同样,评估加密逻辑和算法,然后再选择。

-明智的做法是敏感信息始终进行限制。

-在审计跟踪表或登录时您可能需要维护记录或类似的访问,更新等不同的活动记录。这可能需要根据不同的监管策略和用户需求个性化的进行设计和修改。

-注意,这种需求不仅增加了数据处理的复杂度,但会增加存储成本。

-尽量使用下层提供的安全技术,例如操作系统、数据库等。这些安全解决方案会比你自己设计开发性能要好很多。

本文介绍了各种性能方面的技巧,这些技术性的知道可以作为打造大数据分析平台的一般准则。大数据分析平台非常复杂,为了满足这种类型系统的性能需求,需要我们从开始建设的时候进行考量。

本文介绍的技术准则可以用在大数据平台建设的各个不同阶段,包括安全如何影响大数据分析平台的性能。

三、怎样选择数据平台的建设方案

业务跑的好好的,各系统稳定运行,为何还要搭建企业的数据平台?

这样的问题,心里想想就可以了,不要大声问出来。我来直接回答一下,公司一般在什么情况下需要搭建数据平台,对各种数据进行重新架构。

1、业务系统过多,彼此的数据没有打通。这种情况下,涉及到数据分析就麻烦了,可能需要分析人员从多个系统中提取数据,再进行数据整合,之后才能分析。一次两次可以忍,天天干这个能忍吗?人为整合出错率高怎么控制?分析不及时效率低要不要处理?

2、业务系统压力大,而不巧,数据分析又是一项比较费资源的任务。那么自然会想到的,通过将数据抽取出来,独立服务器来处理数据查询、分析任务,来释放业务系统的压力。

3、性能问题,公司可以越做越大,同样的数据也会越来越大。可能是历史数据的积累,也可能是新数据内容的加入,当原始数据平台不能承受更大数据量的处理时,或者是效率已经十分低下时,重新构建一个大数据处理平台就是必须的了。

上面我列出了三种情况,但他们并非独立的,往往是其中两种甚至三种情况同时出现。一个数据平台的出现,不仅可以承担数据分析的压力,同样可以对业务数据进行整合,也会不同程度的提高数据处理的性能,基于数据平台实现更丰富的功能需求。

二、数据平台的建设有哪些方案可以选择

下文中的优缺点仅从企业选型的角度,并非方案本身的技术角度。

如果一句话回答的话,那就是:太多了(这是一句废话,我承认),但确实有非常多的方案可供选择,我懂的少,肯定是无法一一介绍,所以就分成了下面几类,相信也一定程度上覆盖了大部分企业的需求了。

概念不说了,既然是做数据这一行的,相信你比我还要清楚,不清楚的可以百度。它的重点在于数据整合,同时也是对业务逻辑的一个梳理。虽然它也可以打包成ssas那种cube一类的东西来提升数据的读取性能,但是数据仓库的作用,更多的是为了解决公司的业务问题,而不仅仅是性能问题。这一点后面会详细介绍。

关于这一方案的优缺点,直接说重点:

方案成熟,关于数据仓库的架构,不管是Inmon架构还是Kimball架构,都有着非常广泛的应用,而且相信能将这两种架构落地的人也不少。

实施简单,涉及的技术层面主要是仓库的建模以及etl的处理,很多软件公司具备数据仓库的实施能力,实施难度的大小更多的取决于业务逻辑的复杂程度,而并非技术上的实现。

灵活性强,说这句话要有对应场景的,数据仓库的建设是透明的,如果需要,可以对仓库的模型、etl逻辑进行修改,来满足变更的需求(当然,最好设计之初考虑的周全一点)。同时对于上层的分析而言,通过sql或者mdx对仓库数据的分析处理具备极强的灵活性。

“实施周期长”,注意,我加了引号,对应下面的敏捷型数据集市,而且这点是相对的,实施周期的长与短要取决于业务逻辑的复杂性,时间是花在了业务逻辑的梳理,并非技术上的瓶颈。关于这点,后面会详细介绍。

数据的处理能力有限,这个有限,也是相对的,海量数据的处理它肯定不行,非关系型数据的处理它也不行,但是TB以下级别的数据,还是搞得定的(也取决于所采用的数据库系统),这个量级的数据,而相当一部分企业的数据,还是很难超过这个级别的。

底层的数据产品与分析层绑定,使得应用层可以直接对底层数据产品中的数据进行拖拽式分析。这一类产品的出现,其初衷是为了对业务数据进行简单的、快速的整合,实现敏捷建模,并且大幅提升数据的处理速度。目前来看,这些产品都达到了以上的目的。但它的优缺点也比较明显。

部署简单,敏捷开发,这也是这类产品最大的优点,和数据仓库相比,实施周期要短的多。实际上它也没什么严格的实施的概念,因为这类产品只是针对需要分析的数据,进行局部的关联,只考虑眼前要解决的问题就够了,迭代的能力更强些。

与上层的分析工具结合较好,上层的分析工具接入这类数据产品后,可直接实现数据的图形化展示和olap分析。对数据处理性能的提高,这类产品都对数据的分析性能做了处理,虽然方式不尽相同,有内存映射文件存储的,也有分布式架构、列数据存储的。但无疑都一定程度上提高了数据的处理性能。

无法处理复杂的业务逻辑,这只是一个工具,它无法解决业务问题。这类工具中自带简单的etl功能,实现简单的数据处理和整合,而如果考虑到历史数据,考虑到整体的数据之间的逻辑和关系,它一定是解决不了的。一个简单的例子,当某个表中,有两个字段,一个要保留历史数据,一个要更新历史数据,要怎样实现自动处理。有一个观念是需要清楚的,不能指望一款工具来解决业务问题。这种数据产品仅仅是对当前的业务数据进行简单的整合,第一,数据是局部的,第二,时间是当前的(其涵带的增量更新或者全量更新,是无法应对复杂的逻辑的,相信熟悉etl的人都知道这个过程有多复杂)。当然,对于一些公司来说,可能需求只是对当前业务数据进行整合分析,那么这类产品就够了。(说实话,很多公司真的是懒得更长远的考虑,有一天没一天的,谁说的准呢)

l灵活性低,这个也是没法避免的,越是操作简单的工具,他的灵活性肯定受限,因为封装住了,产品是不透明的,常规的需求用起来非常方便,但是遇到复杂的,发现对他内部不了解,你也没法修改,只有蛋疼的份。

从我的角度看,它是很难成为公司的数据中心的。

3、 MPP(大规模并行处理)架构的数据产品,以最近开源的greenplum为例

传统的主机计算模式在海量数据面前,显得弱鸡。造价非常昂贵,同时技术上也无法满足高性能的计算,smp架构难于扩展,在独立主机的cpu计算和io吞吐上,都没办法满足海量数据计算的需求。分布式存储和分布式计算正是解决这一问题的关键,不管是后面的MapReduce计算框架还是MPP计算框架,都是在这一背景下产生的。

greenplum的数据库引擎是基于postgresql的,并且通过Interconnnect神器实现了对同一个集群中多个Postgresql实例的高效协同和并行计算。

同时,基于greenplum的数据平台建设,可以实现两个层面的处理,显而易见的一个是对数据处理性能的处理,greenplum的百科中宣称支持50PB级海量数据的处理,考虑它有吹牛的成分,对目前greenplum实际应用情况的了解,100tb级左右的数据,是非常轻松的。另一个是数据仓库可以搭建在greenplum中,这一层面上也是对业务逻辑的梳理,对公司业务数据的整合。

海量数据的支持,大量成熟的应用案例,所以我想这一点是不用怀疑的。

扩展性,据说可线性扩展到10000个节点,并且每增加一个节点,查询、加载性能都成线性增长。

易用性,不需要复杂的调优需求,并行处理由系统自动完成。依然是sql作为交语言,简单、灵活、强大。

高级功能,greenplum还研发了很多高级数据分析管理功能,例如人气很高的外部表,还有Primary/Mirror镜像保护机制,行/列混合存储等。

稳定性,greenplum原本作为一个纯商业数据产品,具有很长的历史,其稳定性相比于其他产品以及敏捷性数据集市是更加有保障的。 greenplum有非常多的应用案例,纳斯达克、纽约证券交易所、平安银行、建设银行、华为等都建立了基于greenplum的数据分析平台。其稳定性是可以从侧面验证的,在15年9月份开源后,各大互联网公司也是一片欢腾,现在也接触了几家在使用greenplum的客户,对其评价都很高。

本身来说,它的定位在olap领域,不擅长oltp交易系统。当然我们搭建公司的数据中心也不会是用来做交易系统的。

成本,两个方面的考虑,一是硬件成本,greenplum有其推荐的硬件规格,对内存、网卡都有要求。当然,在硬件选型上,需要达到一个平衡,要在性能、容量、成本等多方面考虑,毕竟不能一味的追求性能,把采购部门吓到吧。另一个是实施成本,这里主要是人了,基本的是greenplum的安装配置,再到greenplum中数据仓库的构建,都需要人和时间。(但是必须要说的是,人家软件都开源了,也省下了一笔钱啊)

技术门槛,这里是相对于上一个敏捷型数据集市的,greenplum的门槛肯定是要高一点了。

关于hadoop,已经火的要爆炸了,greenplum的开源跟它也是脱不了关系的。有着高可靠性、高扩展性、高效性、高容错性的口碑。在互联网领域有非常广泛的运用,雅虎、facebook、百度、淘宝等等等等。hadoop生态体系非常庞大,各公司基于hadoop所实现的也不仅限于数据分析,也包括机器学习、数据挖掘、实时系统等。

当企业数据规模达到一定的量级,我想hadoop是各大企业的首选方案,到达这样一个层次的时候,我想企业所要解决的也不仅是性能问题,还会包括时效问题、更复杂的分析挖掘功能的实现等。非常典型的实时计算体系也与hadoop这一生态体系有着紧密的联系。

近些年来hadoop的易用性也有了很大的提升,sql-on-hadoop技术大量涌现,包括hive、impala、spark-sql等。尽管其处理方式不同,但普遍相比于原始基于文件的Mapreduce,不管是性能还是易用性,都是有所提高的。也因此对mpp产品的市场产生了压力。

对于企业构建数据平台来说,hadoop的优势与劣势非常明显:它的大数据的处理能力、高可靠性、高容错性、开源性以及低成本(为什么说低成本,要处理同样规模的数据,换一个其他方案试试呢)。缺点也就是他的体系的复杂,技术门槛较高(能搞定hadoop的公司规模一般都不小了)。

关于hadoop的优缺点对于公司的数据平台选型来说,影响已经不大了。需要上hadoop的时候,也没什么其它的方案好选择(要么太贵,要么不行),没到达这个数据量的时候,也没人愿意碰这东西。总之,不要为了大数据而大数据。

三、方案很多,企业要怎样选择呢?

环境太复杂,但是我想至少要从下面这几个方面去考虑吧。

什么样的目的?就是文中开始部分的三种情况呀(不好意思,自大了,肯定有其它情况,欢迎向“jiago王”补充),或者是其中几个的组合。

做事方法都一样,哪怕是中午出去吃饭,也是要在心里有个目的,这顿饭是为了吃饱,还是吃爽,或者为了拍别人的马屁,然后才好选择去吃什么。

当然,要明确数据平台的建设目的,哪里是那么容易的,初衷与讨论后确认的目标或许是不一致的。

公司要搭建一个数据平台的初衷可能很简单,只是为了减轻业务系统的压力,将数据拉出来后再分析,如果目的真的就这么单纯,还真的没有必要大动干戈了。如果是独立系统的话,直接将业务系统的数据库复制出来一份就好了;如果是多系统,选类似finecube那种型敏捷型的商业数据产品也够了,快速建模,直接用finebi或者finereport接入进去就能实现数据的可视化与olap分析。

但是,既然已经决定要将数据平台独立出来了,就不再多考虑一点吗?多个系统的数据,不趁机梳理整合一下?当前只有分析业务数据的需求,以后会不会考虑到历史数据呢?这种敏捷的方案能够支撑明年、后年的需求吗?

任何公司要搭建数据平台,都不是一件小事,多花一两个月实施你可能觉得累,多花一周两周的时间,认真的思考一下总可以的吧。雷军不是说过这样一句话:不能以战术上的勤奋,掩盖战略上的懒惰。

根据公司的数据规模选择合适的方案,这里说多了都是废话。

包括时间成本和金钱,不必多说。但是这里有一个问题想提一下,发现很多公司,要么不上数据平台,一旦有了这样的计划,就恨不得马上把平台搭出来用起来,时间成本不肯花,这样的情况很容易考虑欠缺,也容易被数据实施方忽悠。

关于方案选择的建议,举以下3 1个场景

要实现对业务数据的快速提取和分析,多个业务系统,没有达到海量数据,不考虑历史数据,不需要依照业务逻辑对数据进行系统的梳理,这种情况下,可以考虑敏捷型的bi工具自带的数据底层。

简单来讲,这种场景仅仅是在技术层面上,完成对数据的整合与提速,并没有从业务层面上对数据进行建模。他可以满足一定的分析需求,但是不能成为公司的数据中心。

要搭建公司级的数据中心,打通各系统之间的数据。非常明显的,需要搭建一个数据仓库。这时就需要进一步考虑公司数据的量级了,如果是小数据量,TB级以下,那么在传统数据库中建这样一个数据仓库就可以了,如果数据量达到几十上百TB,或者可见的在未来几年内数据会达到这样一个规模,可以将仓库搭在 greenplum中。

这种场景应该是适用于大部分公司,对于大部分企业来说,数据量都不会PB级别,更多的是在TB级以下。

公司数据爆发式增长,原有的数据平台无法承担海量数据的处理,那么就建议考虑hadoop这种大数据平台了。它一定是公司的数据中心,这样一个角色,仓库是少不了的,可以将原来的仓库直接搬到hive中去。这种数据量比较大的情况要怎样呈现,因为hive的性能较差,它的即席查询可以接 impala,也可以接greenplum,因为impala的并发量不是那么高,而greenplum正好有它的外部表(也就是greenplum创建一张表,表的特性叫做外部表,读取的内容是hadoop的hive里的),正好和hadoop完美的融合(当然也可以不用外部表)。

这个是后面补充的,当公司原本有一个数据仓库,但历史数据了堆积过多,分析性能下降,要怎么办?两个方案可以考虑,比较长远的,可以将仓库以及数据迁移到greenplum中,形成一个新的数据平台,一个独立的数据平台,可以产生更多的可能性;比较快速的,是可以将类似finecube那种敏捷型数据产品接入原来的仓库,这样来提升数据的处理性能,满足分析的要求。

四、关于方案选型时可能会出现的误区

(忽略业务的复杂性,要用工具来解决或者是绕开业务的逻辑。)

这个是我最近遇到过的,客户要做报表平台,有三个业务系统的数据需要整合。但是急于变现,不想搭建传统的数据仓库,所以从敏捷型的bi工具中选型。工具厂商对自己数据产品的描述,一般着重于他的快速实施、性能的优化、以及自带的基本etl功能。这样容易给客户造成误区,就是通过这一产品可快速搭建出一个公司级别的数据中心,满足于顶层对数据的需求。

然而在后期突然意识到,工具所解决的,仅仅是在技术层面上简化了工具的使用的复杂性,把etl和数据集市封装在一起,并且提高了数据的性能,但是并没有从业务层面上实现数据的建模,很多细节问题无法处理。

虽然敏捷开发非常诱人,如果业务系统简单,或者只需要分析当前状态的业务数据,不需要公司级的数据中心,那么确实是一个非常好的方案。然而这些问题还没有考虑清楚,对敏捷产品有了过高的期望,后面是会遇到些麻烦的。

除此之外,可能还会有为了大数据而大数据的,但是这些我在实际的工作中还没有遇到。

最后总结一下,企业选择数据平台的方案,有着不同的原因,要合理的选型,既要充分的考虑搭建数据平台的目的,也要对各种方案有着充分的认识。

仅从个人的角度,对于数据层面来说,还是倾向于一些灵活性很强的方案的,因为数据中心对于公司来说太重要了,我更希望它是透明的,是可以被自己完全掌控的,这样才有能力实现对数据中心更加充分的利用。因为,我不知道未来需要它去承担一个什么样的角色。

关于数据交易平台逻辑分析方法,数据分析师常用的数据分析思路的介绍到此结束,希望对大家有所帮助。

声明:本文内容来自互联网不代表本站观点,转载请注明出处:https://www.41639.com/15_412589.html

相关推荐