中企动力 > 商学院 > 大数据采集分析
  • ?

    大数据分析:比你自己更加了解你自己

    门老伯

    展开

    如果大数据能够如此诡异地了解到我个性的方方面面,我只想问:为什么Facebook一直想让我花80元买双拖鞋?

    如果大数据能够如此诡异地了解到我个性的方方面面,我只想问:为什么Facebook一直想让我花80元买双拖鞋?

    我上Facebook或Instagram时几乎总会看到一则标价过高的帆布便鞋广告。我怀疑自己迄今从没买过超过25元的拖鞋,我也不太可能在马莎百货(Marks and Spencer)以外的地方买这类东西。我从来没在网上搜索过拖鞋二字,也想不出我上网时哪些举动会暗示出我喜欢“新潮”的拖鞋。(实际上,这款拖鞋有种难看的可拆户外鞋底,所以人们多半会说我是个穿拖鞋出门溜达的“中年大叔”,而不会说我“新潮”,如果我买了它的话。)

    对那些数据科学天才们来说,公平地讲,Facebook并不总是给我推销天价拖鞋。有时它也向我推销天价耳塞,或购买一款正念app的机会。照说,我们应该相信,建立在数据抓取和机器学习基础上的复杂算法现在比我们最亲密的朋友还了解我们。然而,在我们公司,不用15分钟你就能了解,我这个人不太可能花80元去买拖鞋,也不会破费购买什么正念app。

    这些广告还会根据浏览历史来投放。我明白为什么我在浏览过某个城市的旅游景点后会看到爱彼迎(Airbnb)的招租广告。在一个数据被认为无所不知的时代,令我困惑的是,为什么我在订完房后还能看到广告。总是如此。有谁没在网购后的六周接连不断地收到同一个商品的广告推送?去年,我们买了台电子琴送给儿子当生日礼物。几个月后,我仍会收到相同型号产品的广告。要么是数据分析师们不知道我们已经下了单,要么是他们认为我们是电音组合“宠物店男孩(Pet Shop Boys)”,一台电子琴不够使。

    在我看来,这些广告不像是来自别有用心的数据天才,它们更像出自一位上了年纪的大爷之手,他记得你小时候爱吃夹心饼干,所以即使你都过完45岁生日了,他还在给你买。

    很明显,还有更多原因。如果不值当的话,像Facebook和谷歌(Google)这种企业才不会做这么麻烦的事。我们必须假设,密集的数据挖掘会带来更有针对性的广告,从而为客户提供更优质的筛选结果,也会给平台带来更高的回报。

    我只想提一个忠告。不管这些公司掌握了我多少数据,在有针对性地推送消息上,他们显然还得再接再厉。我每天大部分时间都耗在网上,访问那些被Facebook搜索的网站,并通过Chrome浏览器将我的一举一动反馈给谷歌。我大致的生活状况不难了解,然而,它们还在给我推送金拖鞋。我想这意味着Facebook将我界定为国际精英阶层,但更有可能的是,我被归入了“钱多人傻”一族。

    定向广告的价值显而易见。给巴黎某个对麸质过敏的人推销一家伦敦的面包店毫无意义,但夸大算法的能力却符合每个人的利益。

    一种合理的解释也许是,这些平台尚未将它们掌握的有关我的海量数据整合为有用的行动。目前,它们仅需胜过其它媒介,如报纸和电视。虽然它们可能还没有很好地将自身掌握的大量数据投入使用,但有理由相信它们会越来越擅长利用这些资源。这也许就是为什么如今监管机构应该认真考虑限制数据采集的规模。

    还有另一种解释。也许它们非常了解我,以至于还没等我自己意识到,它们就知道我需要这些华而不实的高价货。它们知道,私下里我就是那种把脚套进80英镑的居家鞋的人。也许大数据革命就像许多人宣称的那样高深莫测,而且比我本人更了解我自己。或许我只需要屈服,它让我买啥我就买啥。噢,金拖鞋;噢,金拖鞋。

    转载自百家号作者:超说未来

  • ?

    干货|关于大数据分析方法的深度思考

    廉煜祺

    展开

    本文作者:郭朝晖@蝈蝈创新随笔

    本文是我关于大数据分析方法的几点思考。当初的目的是系统化地看待数据分析。为了这点东西,我花了一个礼拜的时间,思考的结果却是碎片化的。看来,想清楚并不容易。由于时间关系,只能中止。文字描述很不严格、肯定经不起推敲,读者找不毛病是正常的、看不明白更是正常的。不感兴趣的可以当做胡扯。我希望将来有时间时能把问题思考下去。

    从数据中发现信息和知识,是人们多年来的梦想。随着大数据理论的兴起,这个话题变得非常热门。在有些人看来,大数据非常神秘,似乎无所不能。当然,现实不会是这样。我想,研究大数据,首先要破除迷信:大数据需要什么条件、什么问题是大数据无法做到的。

    1、知识和信息,只能从关联关系中得到

    对象(包括过程,如生产过程、购物过程)及其属性、同一对象的属性之间具备关联关系。例如,“张三身高1.8米”就是对象(张三)与属性(身高)的关联;再如,如果我们知道张三体重75公斤,则“1.8米”和“75公斤”之间就因“张三”建立了关联。

    关联的对象可能并不确定:我们看到一张履历表,即便隐去名字、不知道这个人是谁,也知道其中的各种信息是与某人关联的。

    在数字化的世界里,不和其他的符号(数字)关联的符号(数字)是不包含任何信息的。从不包含信息的素材,得不到包含信息的结论。

    有人可能反对这个观点:谷歌曾经用“感冒”的搜索量预报流感啊,这里哪有关联呢?其实,只有搜索“感冒”的数量是根本无法预测流感的。谷歌的做法,是把“感冒”的搜索与搜索的地点、时间联系起来。

    这个观点告诉我们:收集数据的时候,要尽可能地把关联关系建立起来;没有关联关系,数据很容易成为垃圾。这种情况并不少见:有些实验室,把针对同一试样的各项实验结果分别保存起来,而没有建立统一的ID、关联关系丢失。这样的数据,再多也没有用处。

    2、人们要挖掘的知识和信息,就是找映射关系

    知识(或信息)的发现与挖掘,其本质是寻找映射关系:通过已知的、对象的一部分属性,把对象的另外一部分属性或对象本身找出来(或缩小范围)。产生这类问题的原因是:只有一部分属性已知、容易得到、容易识别、容易表述,而另外一部分未知、不容易得到、不容易识别、不容易描述。

    例如,我们可以说:张三就是那个穿红衣服的——这里“穿红衣服”比其他特征容易识别。从衣服识别出张三,就是从张三的衣着特征(属性)找到关联对象(张三)的信息;从一个人的身高预估他的体重,就是从一个根据一类属性估计另外一类属性。

    我习惯于把信息挖掘和知识发现分开。

    在本文中,信息挖掘指的是预测某个特定对象的属性,如上海市的人口是多少;知识发现是确定一类对象的属性之间的关系,如一类人群中身高和体重的关系。当然,这种区分不是绝对的。

    3、映射关系的差别

    正确的识别,最好的办法是找到好的素材(数据)。素材与结果之间的关联强度是不一样的:有的比较强,是因果关系、必然联系;有的比较弱,是相关关系、偶然联系。

    例如,我们可以根据DNA、相貌、衣服来识别一个人。但三者相比,DNA的联系是强的必然性联系、衣服是弱的偶然性联系,相貌是介于两者之间的联系。大数据的一个著名案例,是网站根据客户买的药判断她已怀孕、并推送有关产品:因为这种药只有孕妇才吃,是很强的关联。

    从数据得到的知识和信息,往往不是绝对正确。一般来说,可靠的结论基于可靠的数据和可靠的分析方法。数据量大了以后,滤除干扰的可能性增大,从而可以从原来可靠度低的数据中,得到可靠性相对较高的数据。

    所以,尽量找到好的素材,是做好分析的第一步。

    在很多情况下,我们找不到好的素材。这时,首先要做的尽量提高数据质量。数据质量不仅是精度问题,还包括数据来源的可靠性:为此,需要把数据来源的相关过程要搞清楚,否则很可能会误导人的分析。

    4、相关与因果

    有些相关性的背后,一般会有因果关系存在。两个要素由因果产生关联的机制大概可以分成两类:1、两个要素具有因果的关系:比如刚做父亲的青年人常会买尿布;2、共同原因导致的两个结果之间的关系:比如孩子的父亲会常买啤酒,也常买尿布;于是,啤酒和尿布就可能关联起来。

    有些相关性,看似没有因果,但背后往往有某些特殊的规律或因素其作用(上述第二种情况)。比如,女孩子往往喜欢花衣服,与基因和文化的共性有关。但这种因果关系可能相隔太远,以至于难以考证了。

    当人们需要根据关系作出决策时,需要研究因果的逻辑关系:到底是谁影响了谁。否则,根据分析结构的盲目行为可能适得其反。 “到底谁影响了谁”为什么会成为问题?大概有两类原因:

    第一类原因是:忽视了时间因素。如“统计结果表明,练太极拳的身体差”。现实却是:很多人身体变差(包括衰老)以后,才练太极拳。一般来说,具有因果关系的两个要素之间,时间上有前后关系:原因早前,结果在后。

    第二类原因是:忽视了前导因素。“公鸡一叫,天就亮了”。现实却是,天量之前的迹象被公鸡察觉到了。两者是第二种因果关系,只是看似“原因在后、结果在前”了。

    一般来说,工业大数据分析更重视因果,而商务大数据分析对因果性的要求较弱。

    5、数据分析的先导因素

    从某种意义上说,数据分析的过程,就是寻找强的相关关系(必然性、因果性),或对弱的相关关系进行综合、得到强的相关关系。

    用数据发现信息,需要用到各种知识。例如,把“云南白药是用于治疗外伤的”放入计算机,当某人购买白药的行为判断他或家人可能受伤,从而可以推荐相关产品。但注意到:这种类型的知识很可能是被人事先装入计算机的,而不是靠计算机自动学习得到的。

    所有的学习过程,本质上都是基于这样一种假设:A和B的一部分属性类似,则推测另一部分属性也应该类似。例如,A和B的身高相似,则体重也可能相似。现实中,两个属性确实具有强烈的相关性,但身高相同而体重不同的也大有人在。这时,如果我们还知道他的体型,是瘦弱、偏瘦、正常、偏胖、肥胖型,对体重的估计就可以准确一些。由此可见,用数据发现知识的过程,本质上就是提高相关性、可靠性的过程。

    一般来说,人们在做数据分析之前,一定会有一定的知识积淀, 但认识不清却是一种常态;人们希望通过对数据的分析,来改变这种常态。而改变认识的过程依赖于数据的质量和分析数据的方法。所以,刨除分析方法外,分析过程依赖于两个先导性因素:1、数据质量(包含多方面的含义)如何;人们已有的认识如何。

    注意,这段说法有个潜台词:强调了人类可认识的知识,而不是机器用复杂函数关系表述的、人类难以用逻辑关系认知的知识(如神经元)。的确如此,笔者一直认为:这类方法的作用被学术界有意识地夸大了。

    6、数据分析的过程

    与商业大数据相比,工业大数据更重视可靠性和精确性。在很多情况下,猜出一个结论并不难,难的是论证一个结论。一般来说,凡是可靠的知识,都应该能够被机理和数据双重认证。

    大数据分析的一个重要特征是:传统概率理论的假设往往不成立。例如:大数定理的条件往往不成立、模型的结构往往未知、因果关系不是天然清晰、自变量的误差往往不能忽略、数据分布往往是没有规律的。所以,为了得到可靠的结果,人们工作的重点很可能是验证这些条件、构造这些条件。从某种意义上说,数据分析的过程,主要是排除干扰的过程、特别是排除系统干扰的过程。而且,如果完全依照逻辑、用纯粹数学的办法加以论证,则数据需求量会遭遇“组合爆炸”,永远是不够的。这时,已有的领域知识就是降低数据需求量的一种手段。要记住:求得可靠性是一个过程而不是结果、可能永远没有终点;分析的过程只是不断增加证据而已。这个过程,是修正人的认识的过程;所以,错误或不恰当的认识常常是分析过程中最大的干扰——这个干扰一旦去除,我们可能就发现了真正的知识。

    数据量大的直接好处,是排除随机性干扰。但排除系统性干扰却不那么容易,数据量大是必要条件但不充分,需要深入的方法研究才能解决问题。

    系统性的干扰往往体现在:对主体进行分组,所体现的规律是不同的。比如,身高和体重的统计关系,男女是不同的、不同民族是有差异的、可能与年龄有关。如果不进行分类研究,统计的结果就会与样本的选取有很大关系。但分类研究也会遇到一个困难:遭遇组合爆炸,数据再多都不够用。这时,“领域知识”就会发生作用:

    认定一个结论成立的办法,是确认它的“可重复性”。在许多情况下,“可重复性”指的是在各种分组下都成立的结论:最好能在不同时间分组中也能成立。分组越多、分组的维度越多、结论的可靠性越高。

    但具有“可重复性”的结论,往往只在一定的范围内成立。在很多情况下,“明确结论成立的范围”也是数据分析的重要内容。

    如何分组、如何确定范围、如何构筑逻辑链条、数据结果的解读、数据结果与领域知识的融合,都是重要的能力。事实上,根据领域知识,常常用于构造证据链、进行有效的数据选取和分组。

    在精密论证时,我们就会发现:基础数据的质量很重要。因为许多干扰就来源于数据本身。从某种意义上说,数据的采集方法和环境不同,就是不同的数据。

    在构建数据分析体系的过程中,也会发现,企业经营的数据分析也确实需要一个可展示的平台,实时展示业务,有问题就优化更新。

    FineReport 数据决策系统

    7、关于预测数字

    许多问题分析的目的得到一个数字:如钢的强度、用电量、人口数量、钢产量。这类问题的特点之一是:最终的结果是各种影响因素相加得到的。

    对于这种问题,我的观点是:要想得到可靠的结果,一定要拆成若干子问题来分析。其中,各个子问题要尽可能利用规律性的结果来分析。我认为:把人的认识和数据用到极致的时候,才能得到最好的结果。随便地建立回归模型是不懂数据的表现。

  • ?

    什么叫大数据分析

    向南

    展开

    大数据行业发展如火如荼,国家政策利好,互联网大佬纷纷在大数据行业布局,我们想让自己的职业生涯在一个朝阳行业发展,肯定又要学习相关技术,让自己与时俱进,但是难就难在大数据是一个新兴事物,目前我国大学的专业里面还鲜少有这个专业,国家刚批的大数据专业,全国目前35个高校,但是从17年开始招生,2021年才有第一批毕业生进入职场,在四年期间,是大数据行业发展的飞速时期,没有行业发展是等着人才进入的,而是需要要虚位以待、蓄势待发,所以在没有高等教育准备好的大数据教育,如何高效的学习大数据,如何快速的与行业发展想契合,那么需要我们成为第一个吃螃蟹的人,作为一个随着大数据行业成长的职业人,首先要知道大数据是个啥?

    大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    那来帮大家分析下:如何高效的学习大数据。

    经常有初学者会问,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高……首先,如果你确定了想往这个方面发展,先考虑自己的过去从业经历、专业、兴趣是什么。计算机专业——操作系统、硬件、网络、服务器?软件专业——软件开发、编程、写代码?还是数学、统计学专业——对数据和数字特别感兴趣?

    那么你能找师傅带吗?

    但凡有这种想法的人,或多或少都会存有侥幸之心,或者叫做“天真,单纯”。希望不花一分钱,就能更快速的学到更优质,更实用的技能。

    关于这一点,我只想反问一句你:“如果你是大师,你凭什么愿意带我?”

    其实这就是想告诉你大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/设计/架构、数据分析/挖掘。

    先说一下大数据的4V特征:

    数据量大,TB->PB

    数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;

    商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;

    处理时效性高,海量数据的处理需求不再局限在离线计算当中。

    现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

    文件存储:Hadoop HDFS、Tachyon、KFS

    离线计算:Hadoop MapReduce、Spark

    流式、实时计算:Storm、Spark Streaming、S4、Heron

    K-V、NOSQL数据库:HBase、Redis、MongoDB

    资源管理:YARN、Mesos

    日志收集:Flume、Scribe、Logstash、Kibana

    消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ

    查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid

    分布式协调服务:Zookeeper

    集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager

    数据挖掘、机器学习:Mahout、Spark MLLib

    数据同步:Sqoop

    任务调度:Oozie

    ······

    第一步:初识Hadoop

    1.1 学会百度与Google

    不论遇到什么问题,先试试搜索并自己解决。

    Google首选,翻不过去的,就用百度吧。

    1.2 参考资料首选官方文档

    特别是对于入门来说,官方文档永远是首选文档。

    相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。

    1.3 先让Hadoop跑起来

    Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。

    关于Hadoop,你至少需要搞清楚以下是什么:

    · Hadoop 1.0、Hadoop 2.0

    · MapReduce、HDFS

    · NameNode、DataNode

    · JobTracker、TaskTracker

    · Yarn、ResourceManager、NodeManager

    自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。

    建议先使用安装包命令行安装,不要使用管理工具安装。

    另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0.

    1.4 尝试使用Hadoop

    · HDFS目录操作命令;

    · 上传、下载文件命令;

    · 提交运行MapReduce示例程序;

    · 打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。

    · 知道Hadoop的系统日志在哪里。

    1.5了解它们的原理

    MapReduce:如何分而治之;

    HDFS:数据到底在哪里,什么是副本;

    Yarn到底是什么,它能干什么;

    NameNode到底在干些什么;

    ResourceManager到底在干些什么;

    1.6 自己写一个MapReduce程序

    仿照WordCount例子,自己写一个(照抄也行)WordCount程序,

    打包并提交到Hadoop运行。

    不会Java的话,Shell、Python都可以,有个东西叫Hadoop Streaming。

    如果能认真完成了以上几步,恭喜你,你的一只脚已经进来了。

    第二步:更高效的WordCount

    2.1 学点SQL吧

    如果不懂数据库的童鞋先学习使用SQL句。

    2.2 SQL版WordCount

    在1.6中,你写(或者抄)的WordCount一共有几行代码?

    如果用SQL的话:

    SELECT word,COUNT(1) FROM wordcount GROUP BY word;

    这便是SQL的魅力,编程需要几十行,甚至上百行代码,SQL一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。

    2.3 安装配置Hive

    Hive算是数据仓库工具,安装不难,网上有很多教程,配置完成后,可以正常进入Hive命令行。

    2.4 试试使用Hive

    尝试在Hive中创建wordcount表,并运行2.2中的SQL语句。在Hadoop WEB界面中找到刚才运行的SQL任务。看SQL查询结果是否和1.4中MapReduce中的结果一致。

    明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce任务?

    2.5 学会Hive的基本命令

    创建、删除表;加载数据到表;下载Hive表的数据;并学习更多关于Hive的语法和命令。

    0和Hadoop2.0的区别

    MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);

    HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;

    自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志;

    会写简单的SELECT、WHERE、GROUP BY等SQL语句;

    Hive SQL转换成MapReduce的大致流程;

    Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;

    从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。

    第三步:把别处的数据搞到Hadoop上

    此处也可以叫做数据采集,把各个数据源的数据采集到Hadoop上。

    3.1 HDFS PUT命令

    put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。建议需熟练掌握。

    3.2 HDFS API

    HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。

    实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。

    可以尝试了解原理,试着写几个Demo。

    3.3 Sqoop

    Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库Oracle/MySQL/SQLServer等之间进行数据交换的开源框架。

    就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。

    自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。

    了解Sqoop常用的配置参数和方法。

    使用Sqoop完成从MySQL同步数据到HDFS;

    使用Sqoop完成从MySQL同步数据到Hive表;

    PS:如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

    3.4 Flume

    Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。

    下载和配置Flume。使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;

    PS:Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

    3.5 阿里开源的DataX

    之所以介绍这个,是因为以前某公司客户目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,个人感觉非常好用。现在DataX已经是3.0版本,支持很多数据源。你也可以在其之上做二次开发。

    PS:有兴趣的可以研究和使用一下,对比一下它与Sqoop。

    至此,你的“大数据平台”应该是这样的:

    第四步:把Hadoop上的数据搞到别处去

    前面介绍了如何把数据源的数据采集到Hadoop上,数据到Hadoop上之后,便可以使用Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?

    其实此处的方法和第三步基本一致的。

    4.1 HDFS GET命令

    把HDFS上的文件GET到本地。需要熟练掌握。

    4.2 HDFS API

    原理同3.2。

    4.3 Sqoop

    原理同3.3。

    使用Sqoop完成将HDFS上的文件同步到MySQL;

    使用Sqoop完成将Hive表中的数据同步到MySQL;

    4.4 DataX

    原理同3.4

    此时,“你的大数据平台”应该是这样的:

    走完第三步和第四步的流程,那么你应该已经具备以下技能和知识点:

    · 知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;

    · 知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;

    · 知道flume可以用作实时的日志采集;

    至此,对于大数据平台,应该已经掌握如何搭建Hadoop集群,把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。

    接下来的问题就是,Hive使用的越来越多,你会发现很多不愉快的地方,特别是速度慢,

    大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。

    第五步:快一点吧,我的SQL

    其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。因此SQL On Hadoop的框架越来越多,按我的了解,最常用的按照流行度依次为SparkSQL、Impala和Presto.这三种框架基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。

    目前我们的方案使用的是SparkSQL,至于为什么用SparkSQL,原因大概如下:

    · 使用Spark还做了其他事情,不想引入过多的框架;

    · Impala对内存的需求太大,没有过多资源部署;

    5.1 关于Spark和SparkSQL

    什么是Spark,什么是SparkSQL。

    Spark有的核心概念及名词解释。

    SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。

    5.2 如何部署和运行SparkSQL

    Spark有哪些部署模式?

    如何在Yarn上运行SparkSQL?

    使用SparkSQL查询Hive中的表。

    PS:Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。

    第六步:一夫多妻制

    其实我想说的是数据的一次采集、多次消费。

    在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面步节会有介绍),这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。

    为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。

    6.1 关于Kafka

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    6.2 如何部署和使用Kafka

    使用单机部署Kafka,并成功运行自带的生产者和消费者例子。

    使用Java程序自己编写并运行生产者和消费者程序。

    Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

    至此,“大数据平台”应该扩充成这样:

    这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。

    总结:

    为什么Spark比MapReduce快。

    使用SparkSQL代替Hive,更快的运行SQL。

    使用Kafka完成数据的一次收集,多次消费架构。

    自己可以写程序完成Kafka的生产者和消费者。

    前面的学习已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务...

  • ?

    大数据行业分析报告

    萧雪

    展开

    一、大数据产业概述

    1. 大数据的认识

    大数据是新资源、新技术和新理念的混合体。从资源视角来看,大数据是新资源,体现了一种全新的资源观。1990年以来,在摩尔定律的推动下,计算存储和传输数据的能力在以指数速度增长,每GB存储器的价格每年下降40%。

    2000年以来,Hadoop为代表的分布式存储和计算技术迅猛发展,极大的提升了互联网企业数据管理能力,互联网企业对“数据废气”(Data Exhaust)的挖掘利用大获成功,引发全社会开始重新审视“数据”的价值,开始把数据当作一种独特的战略资源对待。大数据的所谓3V特征(体量大、结构多样、产生处理速度快)主要是从这个角度描述的。

    从技术视角看,大数据代表了新一代数据管理与分析技术。传统的数据管理与分析技术以结构化数据为管理对象、在小数据集上进行分析、以集中式架构为主,成本高昂。

    与“贵族化”的数据分析技术相比,源于互联网的,面向多源异构数据、在超大规模数据集(PB量级)上进行分析、以分布式架构为主的新一代数据管理技术,与开源软件潮流叠加,在大幅提高处理效率的同时(数据分析从T+1到T+0甚至实时),成百倍的降低了数据应用成本。

    从理念的视角看,大数据打开了一种全新的思维角度。大数据的应用,赋予了“实事求是”新的内涵,其一是“数据驱动”,即经营管理决策可以自下而上地由数据来驱动,甚至像量化股票交易、实时竞价广告等场景中那样,可以由机器根据数据直接决策;

    其二是“数据闭环”,观察互联网行业大数据案例,它们往往能够构造起包括数据采集、建模分析、效果评估到反馈修正各个环节在内的完整“数据闭环”,从而能够不断地自我升级,螺旋上升。

    目前很多“大数据应用”,要么数据量不够大,要么并非必须使用新一代技术,但体现了数据驱动和数据闭环的思维,改进了生产管理效率,这是大数据思维理念应用的体现。

    2.大数据的产业体系

    大数据本身既能形成新兴产业,也能推动其他产业发展。当前,国内外缺乏对大数据产业的公认界定。我们认为,大数据产业可以从狭义和广义两个层次界定。

    从狭义看,当前全球围绕大数据采集、存储、管理和挖掘,正在逐渐形成了一个“小生态”,即大数据核心产业。大数据核心产业为全社会大数据应用提供数据资源、产品工具和应用服务,支撑各个领域的大数据应用,是大数据在各个领域应用的基石。应该注意到,狭义大数据产业仍然围绕信息的采集加工构建,属于信息产业的一部分。

    数据资源部分负责原始数据的供给和交换,根据数据来源的不同,可以细分为数据资源提供者和数据交易平台两种角色。数据基础能力部分负责与数据生产加工相关的基础设施和技术要素供应,根据数据加工和价值提升的生产流程,数据基础能力部分主要包括数据存储、数据处理和数据库(数据管理)等多个角色。

    数据分析/可视化部分负责数据隐含价值的挖掘、数据关联分析和可视化展现等,既包括传统意义上的BI、可视化和通用数据分析工具,也包括面向非结构化数据提供的语音、图像等媒体识别服务。

    数据应用部分根据数据分析和加工的结果,面向电商、金融、交通、气象、安全等细分行业提供精准营销、信用评估、出行引导、信息防护等企业或公众服务。根据IDC、Wikibon等咨询机构预测,2016年,全球的大数据核心产业规模约为300亿美元。

    3.大数据的规模

    据中商产业研究院数据,我国大数据行业市场规模增速明显,2015年中国大数据市场规模为115.9亿元,增速达53.10%。

    4.大数据产业图谱

    二、大数据的行业运用

    1.零售业领域

    具体来说,在零售企业,大数据分析的应用可以归纳为如下方面:在智慧的客户体验领域的全方位的顾客洞察、提升客户服务、基于位置的营销和服务以及精准营销;在智慧的商品管理和供应联网络领域的供应链优化和商品优化;在智慧的运营领域的财务管理、劳动力管理和防损 / 防偷盗管理。

    大数据驱动的快速响应系统是ZARA实现供应链神话的重要原因之一

    ZARA有一个全天候开放的“数据处理中心”。每一个零售网点都可以通过该系统追踪销售数据。此外,顾客的反馈也能在系统上反映出来,ZARA能够很快发现哪些款好卖,哪些款滞销。ZARA店内,柜台和店内各角落都装有摄影机,店经理随身带着PDA。

    当客人向店员反映诸如“这个衣领图案很漂亮”、“我不喜欢口袋的拉链”等意见时,店员通过ZARA内部全球资讯网络,每天至少两次传递资讯给总部设计人员,由总部汇总信息进行分析并作出决策后立刻传送到生产线,改变产品样式。

    微软Dynamics零售分销渠道管解决方案

    微软Dynamics零售渠道管理解决方案提供通过系统管理渠道的收发货信息的渠道进销存管理;收集各渠道经营的其他竞争对手产品信息的客户拜访管理;管理会员信息及购买习惯发会员管理;

    管理会员促销及积分兑换的促销管理;报表分析,提供数据报表支持,帮助企业分析会员购买行为,对下一步销售策略做预测工作。

    新零售解决方案提供商—— 小工蚁科技推出客户大数据平台

    小工蚁科技是一家互联网创业公司,专注新零售解决方案。小工蚁推出的客户大数据平台可帮助企业从各给历史遗留系统中将客户相关的数据抽取出来,然后建模分析,使用大数据分析引擎帮助快速将企业客户360°画像、针对客户个性化产品推荐、进行客户群体分析,将数据变成可视化工具平台;

    同时小工蚁也提供客户社区,帮助企业和客户建立强连接。帮助传统企业将客户相关数据和信息提炼出规律和价值的平台工具。

    2.电信领域

    电信行业掌握体量巨大的数据资源,单个运营商其手机用户每天产生的话单记录、信令数据、上网日志等数据就可达到PB级规模。电信行业利用IT技术采集数据改善网络运营、提供客户服务已有数十年的历史,而传统处理技术下运营商实际上只能用到其中百分之一左右的数据。

    大数据对于电信运营商而言,首先意味着利用廉价便捷的大数据技术提升其传统的数据处理能力,聚合更多的数据提升洞察能力。比如法国电信、T-Mobile借助大数据加快了诊断网络潜在问题的效率,改善服务水平,为客户提供了更好的体验,获得了更多的客户以及更高的业务增长。

    中国移动、德国电信、沃达丰利用大数据技术加大对历史数据的分析,动态优化调整网络资源配置,大幅提高无线网络的运行效率。T-Mobile通过集成数据综合分析客户流失原因,在一个季度内将客户流失率减半。SK电讯成立SK Planet公司专门处理与大数据相关的业务,通过分析客户的使用行为防止客户流失。

    中国联通利用大数据技术对其全国3G/4G用户进行精准画像,形成大量有价值的标签数据,为客户服务和市场营销提供了有力支持。中国移动通过对消费、通话、位置、浏览、使用和交往圈等数据的分析,利用各种联系记录发现各种圈子,分析影响力及关键人员,用来进行家庭客户、政企客户和关键客户的识别,以实现主动营销和客户维系。

    二是提高数据意识,寻求合适的商业模式,尝试数据价值的外部变现。主要有数据即服务(DaaS)和分析即服务(AaaS)两种模式,数据即服务模式往往通过开放数据或开放API的方式直接向外出售脱敏后的数据;

    分析即服务(AaaS)模式往往与第三方公司合作,利用脱敏后的(自身或整合外部)数据资源为政府、企业或行业客户提供通用信息、数据建模、策略分析等多种形式的信息和服务,以创造外部收益,实现数据资源变现。

    数据即服务方面,AT&T将客户在WiFi网络中的地理位置、网络浏览历史记录以及使用的应用等数据销售给广告公司可以获取客观收益;AT&T同时还提供Alert业务,当客户距离商家很近时,就有可能收到该商家提供的折扣很大的电子优惠券;

    英国电信基于安全数据分析服务Assure Analytics,帮助企业收集、管理和评估大数据集,将这些数据通过可视化的方式呈现给企业,帮助企业改进决策;

    德国电信和沃达丰主要尝试通过开放API,向数据挖掘公司等合作方提供部分用户匿名地理位置数据,以掌握人群出行规律,有效的与一些LBS应用服务对接。限于国内对数据交易流通方面缺乏明确规定,国内运营商很少尝试数据即服务(DaaS)模式。

    分析即服务方面,西班牙电信成立动态洞察部门Dynamic Insights开展大数据业务,与市场研究机构Gfk进行合作,在英国、巴西推出名为智慧足迹的创新产品,该产品基于完全匿名和聚合的移动网络数据,可对某个时段、某个地点人流量的关键影响因素进行分析,并将洞察结果面向政企客户提供;

    Verizon成立精准营销部门Precision Marketing Divisio,提供精准营销洞察、精准营销、移动商务等服务,包括联合第三方机构对其用户群进行大数据分析,再将有价值的信息提供给政府或企业获取额外价值;

    中国电信在大数据RTB精准广告业务(根据客户行为和位置分析进行商铺选址和实施营销)、景区流动人口监测业务、基于客户行为的中小微企业通用信用评价等方面均有尝试,且成效显著,借助对不同行业、不同类型企业的行为数据分析,中国电信的“贷 189”平台,一个月吸引中小企业580家,金融机构24家,订单成交3368万元。

    中国移动和中国联通也与第三方合作,开展智慧旅游、智能交通、智慧城市等项目,探索数据外部变现的新型商业模式,寻找新的业务增长点。

    3.金融领域

    消费金融中的运用

    天创为消费金融机构提供“数据+风控+场景”的完整解决方案。

    可靠的数据渠道保障了数据的真实性、连续性和稳定性。

    多角度贷后监控与风险预警

    基于大数据的反欺诈服务

    4.交通领域

    对于驾驶者来说,不想开车的时候,在大数据和人工智能的支持下,车辆可以自动驾驶,并且对于你经常开的线路可以自学习自优化。

    谷歌的自动驾驶汽车,为了对周围环境作出预测,每秒钟要收集差不多 1GB的数据,没有大数据的支持,自动驾驶是不可想象的;在和周围车辆过近的时候,会及时提醒车主避让;上下班的时候,会根据实时大数据情况,对于你经常开车的线路予以提醒,绕开拥堵点,帮你选择最合适的线路;

    在出现紧急状况的时候,比如爆胎,自动驾驶系统将自动接管,提高安全性(人一辈子可能难以碰到一次爆胎,但人在紧急时的反应往往是灾难性的,只会更糟);到城市中心,寻找车位是一件很麻烦的事情,但未来你可以到了商场门口后,让汽车自己去找停车位,等想要回程的时候,提前通知让汽车自己开过来接。

    车辆是城市最大最活跃的移动物体,是拥堵的来源,也是最大的污染来源之一。数字化的车辆、大数据应用将带来很多的改变。红绿灯可以自动优化,根据不同道路的拥堵情况自动进行调整,甚至在很多地方可以取消红绿灯;

    城市停车场也可以大幅度优化,根据大数据的情况优化城市停车位的设计,如果配合车辆的自动驾驶功能,停车场可以革命性演变,可以设计专门为自动驾驶车辆的停车楼,地下、地上楼层可以高达几十层,停车楼层可以更矮,只要能高于车高度即可(或者把车竖起来停),这样将对城市规划产生巨大的影响;

    在出现紧急情况,如前方塌方的时候,可以第一时间通知周围车辆(尤其是开往塌方道路的车辆);现在的燃油税也可以发生革命性变化,可以真正根据车辆的行驶路程,甚至根据汽车的排污量来收费,排污量少的车甚至可以搞碳交易,卖排放量卖给高油耗的车;政府还可以每年公布各类车型的实际排污量、税款、安全性等指标,鼓励民众买更节能、更安全的车。

    三、大数据运用安全实践

    1.国内企业的方案

    京东大数据安全实践

    数据资源已经成为一种基础战略资源,数据的共享和流通会产生巨大价值。然而,数据资源在流通过程中却面临着诸多瓶颈和制约,尤其是当数据一种特殊的数字内容产品时,其权益保护难度远大于传统的大数据,一旦发生侵权问题,举证和追责过程都十分困难。

    为了解决这些问题,京东万象数据服务平台(如图B-6所示)利用区块链技术对流通的数据进行确权溯源,数据买家在数据服务平台上购买的每一笔交易信息都会在区块链中存储起来。

    数据买家通过获得交易凭证可以看到该笔交易的数字证书以及该笔交易信息在区块链中的存储地址,待买家需要进行数据确权时,登录用户中心进入查询平台,输入交易凭证中的相关信息,查询到存储在区块链中的该笔交易信息,从而完成交易数据的溯源确权。

    京东万象数据服务平台主要通过数据交易平台和区块链溯源平台2个核心模块提供服务:

    数据交易平台。平台通过数据搜索、数据展示、数据评论等服务,以各种维度展示数据商品,并提供订单和支付系统完成用户数据交易;

    区块链溯源平台。用户订单信息、数据标识、交易私钥等交易信息存入区块链集群中,用户获得交易凭证,并可利用该溯源平台查询溯...

  • ?

    大数据-产品基础模型

    安慰

    展开

    一、大数据应用思维

    【例1】

    产品经理给大数据部门提了个需求:我想知道所有用户的标签,比如哪些用户喜欢时尚类型的微博、哪些用户是单身狗等,好给这些人针对性推阿里巴巴的广告,而且很急,下个月新版本就要上线。

    大数据部门的程序员们收到需求之后,一分析,数据有好几百TB,一台机器跑要跑7个月(200多天),所以得用分布式计算。于是搞了100台服务器,并把这100台服务器分成两部分,一部分有90台,叫Master,负责划分数据,分配数据处理任务;一部分有10台,叫Worker,负责归并数据块,计算出最终结果。

    服务器搭建好了,架构弄好以后,程序员开始分头写程序,一部分负责写数据文件的划分,把文件分成一小块一小块来处理;一部分负责写计算任务调度,就是把划分好的数据文件分配到90台Master服务器中;一部分负责写归并处理程序,部署到剩下的10台Worker服务器,接收那90台服务器传过来的数据,并计算结果;一部分负责写出错检测,检查哪些机器挂了导致计算任务停止了,一旦发现出错了,把计算任务分配到其他正常的服务器上计算。

    10台Worker服务器根据1,2,3...10,进行了编号,假设每个人的都有一个微博ID(是数字),按照微博ID的个位数来进行划分,比如我ID是 1001,那我的处理结果会在1号服务器,ID是100213,那么处理结果就在3号服务器。

    假设上面的流程都正常,因为机器多了,原本需要200多天的任务,有了100台机器,结果3天就跑完了!得到了这样的微博用户特征(@大师兄[单身概率 88%,科技工作者概率90%,性别男概率100%,本科毕业概率81%,收入水平5000元/月概率 10% ...])。

    二、数据处理的流程

    大数据的数据处理这件事用一种非技术的角度来看的话,可以按处理顺序分为三个部分,第一个部分是数据采集,第二个部分是数据存储,第三个部分是数据分析,这也是大数据搭建的基本产品模型。

    1、数据采集

    ● 基本原则

    全:多种源(客户端、服务端、数据库等),完善的数据源(零售、C端、电商、供应链等)全量而且非抽样

    细:Who、When、Where、How、What

    数据采集最重要的就是数据源,数据源好,后面的事情都很容易。但如果数据源就有问题或是太差不全之类的,后面有些问题用再复杂的算法可能都解决不了,可能都是很难得到正确的结论。所以数据采集处理流程有两个基本的原则,一个是全,一个是细。

    ● 全:就是说我们要拿多种数据源,不能说只拿一个客户端的数据源,服务端的数据源没有拿,数据库的数据源没有拿,做分析的时候没有这些数据你可能是搞歪了。大数据里面讲的是全量,而不是抽样,因为数据之间可能有很大差异。比如纵向里,做全国零售数据分析的时候,不能只把四川或者北京的拿来分析,因为它一定代表不了黑龙江、甘肃等地方,所以必须要全量分析全国数据。横向里,我们在分析某个商品的总的销售情况的时候,我们除了分析线下零售数据还有需要C端外送数据和电商数据,因为一个东西可能在公司的多个业务系统上销售。所以对于多个业务系统的公司,需要每个业务系统涉及的数据都要足够全,不能有任何一个系统有缺失。

    ● 细:其实就是强调多维度,在采集数据的时候尽量把每一个的维度、属性、字段都给它采集过来。比如:像 where、who、how 这些东西给它替补下来,后面分析的时候就跳不出这些能够所选的这个维度,而不是说开始的时候也围着需求。根据这个需求确定了产生某些数据,到了后面真正有一个新的需求来的时候,又要采集新的数据,这个时候整个迭代周期就会慢很多,效率就会差很多,尽量从源头抓的数据去做好采集。

    ● 数据清洗:在数据采集过程种需要对源数据做清洗处理。其实也是对数据做加工的过程,确保命名约定,编码结构,属性维度等一致性。因为本身的源数据会存在垃圾数据,本身也是杂乱的没有很好的逻辑,数据清洗的过程就是让数据更具逻辑性,更干净有序的存储。

    2、数据存储

    ①、数据建模

    数据建模指的是对现实世界各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等直至转化成现实的数据库。 将经过系统分析后抽象出来的概念模型转化为物理模型后,在visio或erwin等工具建立数据库实体以及各实体之间关系的过程(实体一般是表)。在软件工程中,数据建模是运用正式的数据建模技术,建立信息系统的数据模型的过程。(百度百科)

    数据模型就是对现实世界的一个抽象化的数据的表示。大数据的数据建模则是基于大数据本身的数据量、数据特征、业务需求、还有自身分析重点和目标做的数据模型。我们可以针对分析的需求对数据重新进行解码,它内容可能是一致的,但是我们的组织方式改变了一下。就拿用户行为这块数据来说,就可以对它进行一个抽象,然后重新把它作为一个判断表。数据建模时常常考虑的有两个概念,一个是维度,一个是指标

    通常各个业务系统,一般前端做一个请求,然后对请求经过处理,再更新到数据库里面去,数据库里面建了一系列的数据表,数据表之间都是很多的依赖关系。这些表一个业务项发展差不多一年以上它可能就牵扯到几十张甚至上百张数据表,然后把这个表直接提供给业务分析人员去使用,理解起来难度是非常大的。数据建模则可以把这些关系重构,让业务人员更容易理解。

    ②、数据仓库

    ● 面向主题:数据仓库是围绕着一些主题,如顾客,供应商,产品,销售等创建的。数据仓库关注决策者的数据建模与分析,排除对决策无用的数据,提供特定简单明确的数据视图。

    ● 集成:构造数据仓库时,数据来源是多种异构的数据源,使用数据清洗和数据集成技术,确保命名约定,编码结构,属性维度等一致性。

    ● 伴随时间变化:数据仓库存储从时间维度提供信息,所以每一条数据必须包含时间维度,同时也就需要各个业务系统在建表时加入“创建时间、修改时间、创建人、修改人、是否删除”五个字段

    ● 非易失:数据仓库不同于普通的业务应用数据,它跟操作环境下的应用数据是分离的,所以它不需要参与事务处理和并发控制。通常它只需要两种数据访问:数据的装入(抽取)和数据访问,不存在数据更新或者数据删除,所以数据修改时需要加入数据修改时间、修改人,数据删除时在数仓标记数据已经删除。

    数据仓库在创建的时候需要分库和分表:创建表时根据数据清洗阶段进行分库,根据主题域进行分表。

    ③、数据集市

    数据集市(Data Mart) ,也叫数据市场,数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。数据中心的重点就在于它迎合了专业用户群体的特殊需求,在分析、内容、表现,以及易用方面。数据中心的用户希望数据是由他们熟悉的术语表现的。

    用通俗的话说数据仓库是为数据集市提供服务,在数据仓库里,每个数据单元都与特定的时间相关。数据仓库包括原子级别的数据和轻度汇总的数据,是面向主题的、集成的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策。而数据集市就是数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。为了解决灵活性与性能之间的矛盾,数据集市就是数据仓库体系结构中增加的一种小型的部门或工作组级别的数据仓库。数据集市存储为特定用户预先计算好的数据,从而满足用户对性能的需求。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。

    在数据结构上,数据仓库是面向主题的、集成的数据的集合。而数据集市通常被定义为星型结构或者雪花型数据结构,数据集市一般是由一张事实表和几张维表组成的。

    数据集市特点:

    ● 数据集市的特征包括规模小。

    ● 有特定的应用。

    ● 面向部门。

    ● 由业务部门定义、设计和开发。

    ● 业务部门管理和维护。

    ● 能快速实现。

    ● 购买较便宜。

    ● 投资快速回收。

    ● 工具集的紧密集成。

    ● 提供更详细的、预先存在的、数据仓库的摘要子集。

    ● 可升级到完整的数据仓库。

    3、数据分析

    当数据采集回来并存储好以后就可以在这基础上运用这些数据来做数据分析了,对于互联网产品常用的分析方式有四种:

    ①、多维度分析: 多维事件的分析,对不同维度之间的组合、关系进行分析。

    ②、漏斗分析:对于电商、订单相关的这种行为的产品来说非常重要,要看不同的渠道转化这些东西,一个用户从做第一步操作到后面每一步操作,可能是一个杂的过程。

    ③、留存分析:用户来了之后我们希望他不断的来,不断的进行购买,这就是留存。

    ④、回访分析:回访是留存的一种特别的形式,可以看他一段时间内访问的频次,或者访问的时间段的情况

    上面说的四种分析结合起来去使用,对一个产品的数据支撑、数据驱动的这种深度就要比只是看一个宏观的访问量或者活跃用户数就要深入很多。

  • ?

    大数据如何助力社会治理:采集分析数据提前化解风险

    冯采梦

    展开

    大数据如何助力社会治理(法治头条数字化时代的法治问题⑤)

    本报记者 张 璁

    “大数据”曾经是个大众眼中颇有距离感的专业词汇,可是这几年“大数据”成了人们身边的高频词汇:当你上网购物时,平台总能准确推荐你想要的商品;当你下载某款APP或者打开某个程序,总要你点击同意那些冗长的隐私条款;甚至当你使用不同账号享用同样服务时,居然发现可能遭遇了“大数据杀熟”……

    企业员工在自助办税终端上办理纳税手续。宋为伟摄

    信息技术与经济社会的交汇融合引发了数据迅猛增长,数据已成为国家基础性战略资源,大数据正日益对全球生产、流通、分配、消费活动以及经济运行机制、社会治理方式产生重要影响。大数据既为我们的生活带来了巨大便利,打开了未来的无限可能,同时也提出了全新的挑战。毫无疑问,大数据正在塑造未来的样貌,那么大数据将可能在哪些方面深刻改变我们的生活?

    采集分析数据:提前化解风险

    贵州黔东南苗族侗族自治州有很多苗寨,这里仅50户以上的木质连片村寨就达3922个,木质农房达88万栋。不过,随着当地农村经济条件的不断改善,电气火灾也迅猛抬头,而为了有效预防火灾,当地把眼光投向了“大数据”。

    记者在黔东南州的西江千户苗寨看到,这里家家户户都在总进线处安装了一个灭弧型电器保护装置。“这些保护装置同时也是农村电气火灾监控大数据平台的感知模块。”当地工作人员打开其手机上一款名为“电丁丁”的APP介绍,大数据中心全天候采集农户用电数据,一旦发现其家中用电数据异常,系统会自动通过手机APP发出预警,通知工作人员上门检查处理。不仅如此,大数据中心针对区域用电数据会生成日报、周报和月报表,分析用电规律,评估安全系数,为预判电器火灾风险、精准指导农村电改提供大数据支撑。

    “通过数据采集和大数据分析技术,可以把事后解决改成事先预测,将有可能发生的问题预先监测到并且预解决。”清华大学政治学系副教授孟天广表示,大数据将给社会治理方式带来提升与改变。

    这样的例子,记者在深圳南山区也见到一例。2017年清明假期的一天下午,深圳市公安局南山分局人流监测预警系统突然发出预警,原来地形狭长的深圳湾公园短时间内因超量共享单车涌入挤占路面,造成了“毛细栓塞”,很可能发生踩踏。根据大数据提供的实时动态监测、人流趋势分析、人群画像分析等信息,当地公安立即启动应急预案,很快就缓解了现场人流压力,避免了一场可能发生的事故。

    “大数据不仅仅为政府的治理贡献数据上的理念、资源、技术、对策,还解决了以前政府在传统治理当中不能解决的问题。”孟天广认为,目前大数据在社会治理的应用方面已经有了一些初步的探索,未来通过大数据来努力推动社会治理的网络化、智能化和系统化,最终可以有效解决政府治理精准化的问题。

    政府数据共享:打破孤岛效应

    这几年,通过简政放权治理诸如“证明我妈是我妈”一类的奇葩证明取得实质性成效。之所以“奇葩证明”会有生存空间,一个根本的原因在于此前各部门因政务信息之间壁垒森严造成了“数据烟囱”和“信息孤岛”。为此,广东梅州公安打造了一个“证明云”,通过与20多个政府部门实现数据共享,使互联网提供的电子证明与传统证明具有同样效力,成为了专门对付“奇葩证明”的利器。

    通过政务信息资源共享来解决“奇葩证明”的难题还只是小试牛刀,而将沉淀在政府手中的数据面向社会开放共享,将深刻引领带动大数据创新应用和产业融合发展。专家介绍,例如空间地理数据的开放,可用于指导采矿、林业、农业、渔业、能源、航海、交通运输等;气象数据的开放,则可以加工用于指导农业生产、旅游业、灾难管理、保险业预测、环境评估等。

    对此,早在2015年国务院印发的《促进大数据发展行动纲要》中,就将“加快政府数据开放共享,推动资源整合,提升治理能力”与“稳步推动公共数据资源开放”纳入到主要任务之中。其中,《纲要》还特别提到,优先推动信用、交通、医疗、卫生、就业、社保、地理、文化、教育、科技、资源、农业、环境、安监、金融、质量、统计、气象、海洋、企业登记监管等民生保障服务相关领域的政府数据集向社会开放。

    “政府数据开放到什么地步,哪些数据集的数据应予开放,对不同数据集下的数据应如何归类,目前多由相关政府部门和政府官员决定,欠缺整齐划一的标准。”南开大学法学院教授宋华琳表示,需要明确政府数据开放的范围,健全完善政府数据开放的程序机制,界定政府数据开放的标准,“信息公开以公开为原则,以不公开为例外。开放政府数据还有不少具体工作有待推进。”

    大数据营销:提升效率防止滥用

    今年以来“大数据杀熟”成了网络上的一个热门词汇,其意为,在互联网上购买同样的商品或服务时,向老客户显示的价格反而比新客户要高出不少。事件起因于一名网友在微博上晒出自己的亲身经历,表示其长期在某网站预订价格在380—400元之间的酒店房间,可实际价格只有300元上下,而且一旦使用朋友账号查询就会发现同一房间也显示为300元左右。这条微博在网上发酵之后,许多人都纷纷晒出类似经历的证据。

    中国电子商务协会网规研究中心主任阿拉木斯认为,在线下大家都认可诸如“砍价”这样的议价行为,因而同样的商品或服务以不同的交易价格成交也是商业惯例。然而,“大数据杀熟”的问题在于卖方可以通过掌握大数据做到对用户更全面精细地了解和预测,但买方却因为线上交易与日俱增的用户黏性而导致很难真正“用脚投票”。“久而久之,自然会有自律不够的商家,利用用户的这种心理做些手脚。”阿拉木斯分析说。

    如今,从网约车、共享单车,到电商购物、社交媒体,平台经济已经成为社会治理中绕不开的话题。与此同时,众多平台对海量用户数据的收集、占有,也引发了社会公众对大数据是否会被滥用的关注。

    “仅仅是从经济上判断,数据被企业或者被平台所拥有可能是最有效率的。”中国社会科学院工业经济研究所李晓华研究员认为,零散的数据是没有价值的,只有当这些数据汇聚起来,通过大数据的技术进行分析时才会产生价值。但与此同时,这些平台对数据的占用还可能涉及个人信息泄露、数据权属、数据交易、数据滥用等一系列问题,当数字经济的发展中涉及诸如道德伦理、公平正义等价值判断时,市场可能无法自发加以调整解决,这时候就需要尽快完善数据保护方面的立法。

  • ?

    大数据分析的四个关键环节

    Yue

    展开

    ▌ 什么是大数据?

    随着大数据时代的到来,AI 概念的火热,人们的认知有所提高。为什么说大数据有价值?这是不是只是一个虚的概念?大家怎么考虑数据驱动问题?为什么掌握更多的数据就会更有效?这些问题很难回答,但是,大数据绝不是大而空洞的。

    信息论之父香农曾表示,信息是用来消除不信任的东西,比如预测明天会不会下雨,如果知道了今天的天气、风速、云层、气压等信息,有助于得出更准确的结论。所以大数据是用来消除不确定性的,掌握更多的有效数据,可以驱动企业进行科学客观的决策。

    桑文锋对大数据有着自己的理解,数据采集遵循“大”、“全”、“细”、“时”四字法则。

    “大”强调宏观的“大”,而非物理的“大”。大数据不是一味追求数据量的“大”。比如每天各地级市的苹果价格数据统计只有 2MB,但基于此研发出一款苹果智能调度系统,就是一个大数据应用,而有些数据虽然很大,却价值有限;

    “全”强调多种数据源。大数据采集讲求全量,而不是抽样。除了采集客户端数据,还需采集服务端日志、业务数据库,以及第三方服务等数据,全面覆盖,比如美国大选前的民意调查,希拉里有70%以上胜算,但是川普成为了美国总统,因为采样数据有偏差,支持川普的底层人民不会上网回复。

    “细”强调多维度数据采集,即把事件的维度、属性、字段等都进行采集。如电商行业“加入购物车”的事件,除了采集用户的 click 数据,还应采集用户点击的是哪个商品、对应的商户等数据,方便后续交叉分析。

    “时”强调数据的时效性。显然,具有时效性的数据才有参考价值。如国家指数,CPI 指数,月初收集到信息和月中拿到信息,价值显然不同,数据需要实时拿到,实时分析。

    从另一个视角看待数据的价值,可以分为两点,数据驱动决策,数据驱动产品智能。数据的最大价值是产品智能,有了数据基础,再搭建好策略算法,去回灌产品,提升产品本身的学习能力,可以不断迭代。如今日头条的新闻推荐,百度搜索的搜索引擎优化,都是数据驱动产品智能的体现。

    ▌ 数据分析四个关键环节

    桑文锋把数据分析分为四个环节,数据采集、数据建模、数据分析、指标。他提出了一个观点,要想做好数据分析,一定要有自底向上的理念。很多公司的数据分析自顶向下推动,用业务分析指标来决定收集什么数据,这是需求驱动工程师的模式,不利于公司长久的数据采集。而一个健康的自底向上模式,可以帮助公司真正建立符合自己业务的数据流和数据分析体系。

    一、数据采集

    想要真正做好大数据分析,首先要把数据基础建好,核心就是“全”和“细”。

    搜集数据时不能只通过 APP 或客户端收集数据,服务器的数据、数据库数据都要同时收集打通,收集全量数据,而非抽样数据,同时还要记录相关维度,否则分析业务时可能会发现历史数据不够,所以不要在意数据量过大,磁盘存储的成本相比数据积累的价值,非常廉价。

    常见的数据采集方式归结为三类,可视化/全埋点、代码埋点、数据导入工具。

    第一种是可视化/全埋点,这种方式不需要工程师做太多配合,产品经理、运营经理想做分析直接在界面点选,系统把数据收集起来,比较灵活。但是也有不好的地方,有许多维度信息会丢失,数据不够精准。

    第二种是代码埋点,代码埋点不特指前端埋点,后端服务器数据模块、日志,这些深层次的都可以代码埋点,比如电商行业中交易相关的数据可以在后端采集。代码埋点的优势是,数据更加准确,通过前端去采集数据,常会发现数据对不上,跟自己的实际后台数据差异非常大。可能有三个原因:第一个原因是本身统计口径不一样,一定出现丢失;第二点是流量过大,导致数据丢失异常;第三点是SDK兼容,某些客户的某些设备数据发不出去,导致数据不对称。而代码埋点的后台是公司自己的服务器,自己核心的模拟可以做校准,基本进行更准确的数据采集。

    第三种是通过导入辅助工具,将后台生成的日志、数据表、线下数据用实时批量方式灌到里面,这是一个很强的耦合。

    数据采集需要采集数据和分析数据的人共同参与进来,分析数据的人明确业务指标,并且对于数据的准确性有敏感的判断力,采集数据的人再结合业务进行系统性的采集。

    二、数据建模

    很多公司都有业务数据库,里面存放着用户注册信息、交易信息等,然后产品经理、运营人员向技术人员寻求帮助,用业务数据库支持业务上的数据分析。但是这样维护成本很高,且几千万、几亿条数据不能很好地操作。所以,数据分析和正常业务运转有两项分析,数据分析单独建模、单独解决问题。

    数据建模有两大标准:易理解和性能好。

    数据驱动不是数据分析师、数据库管理员的专利,让公司每一个业务人员都能在工作中运用数据进行数据分析,并能在获得秒级响应,验证自己的新点子新思维,尝试新方法,才是全员数据驱动的健康状态。

    多维数据分析模型(OLAP)是用户数据分析中最有效的模型,它把用户的访问数据都归类为维度和指标,城市是维度,操作系统也是维度,销售额、用户量是指标。建立好多维数据分析模型,解决的不是某个业务指标分析的问题,使用者可以灵活组合,满足各种需求。

    三、数据分析

    数据分析支持产品改进

    产品经理在改进产品功能时,往往是拍脑袋灵光一现,再对初级的点子进行再加工,这是不科学的。《精益创业》中讲过一个理念,把数据分析引入产品迭代,对已有的功能进行数据采集和数据分析,得出有用的结论引入下一轮迭代,从而改进产品。在这个过程中大数据分析很关键。

    Facebook 的创始人曾经介绍过他的公司如何确定产品改进方向。Facebook 采用了一种机制:每一个员工如果有一个点子,可以抽样几十万用户进行尝试,如果结果不行,就放弃这个点子,如果这个效果非常好,就推广到更大范围。这是把数据分析引入产品迭代的科学方法。

    桑文锋在 2007 年加入百度时,也发现了一个现象,他打开邮箱会收到几十封报表,将百度知道的访问量、提问量、回答量等一一介绍。当百度的产品经理提出一个需求时,工程师会从数据的角度提出疑问,这个功能为什么好?有什么数据支撑?这个功能上线时如何评估?有什么预期数据?这也是一种数据驱动产品的体现。

    数据驱动运营监控

    运营监控通常使用海盗模型,所谓的运营就是五件事:触达是怎么吸引用户过来;然后激活用户,让用户真正变成有效的用户;然后留存,提高用户粘性,让用户能停留在你的产品中不断使用;接下来是引荐,获取用户这么困难,能不能发动已有的用户,让已有用户带来新用户,实现自传播;最后是营收,做产品最终要赚钱。要用数据分析,让运营做的更好。

    数据分析方法

    互联网常见分析方法有几种,多维分析、漏斗分析、留存分析、用户路径、用户分群、点击分析等等,不同的数据分析方法适用于不同的业务场景,需要自主选择。

    举个多维分析的例子,神策数据有一个视频行业的客户叫做开眼,他们的软件有一个下载页面,运营人员曾经发现他们的安卓 APP 下载量远低于 iOS,这是不合理的。他们考虑过是不是 iOS 用户更愿意看视频,随后从多个维度进行了分析,否定了这个结论,当他们发现某些安卓版本的下载量为零,分析到屏幕宽高时,看出这个版本下载按钮显示不出来,所以下载比例非常低。就这样通过多维分析,找出了产品改进点。

    举个漏斗分析的例子,神策数据的官网访问量很高,但是注册-登录用户的转化率很低,需要进行改进。所以大家就思考如何把转化漏斗激活地更好,后来神策做了小的改变,在提交申请试用后加了一个查看登录页面,这样用户收到账户名密码后可以随手登录,优化了用户体验,转化率也有了可观的提升。

    四、指标

    如何定义指标?对于创业公司来说,有两种方法非常有效:第一关键指标法和海盗指标法。

    第一关键指标法是《精益数据分析》中提出的理论,任何一个产品在某个阶段,都有一个最需要关注的指标,其他指标都是这个指标的衍生,这个指标决定了公司当前的工作重点,对一个初创公司来说,可能开始关注日活,围绕日活又扩展了一些指标,当公司的产品成熟后,变现就会成为关键,净收入(GMV)会变成第一关键指标。

  • ?

    基于大数据平台的数据分析

    黛眉

    展开

    标签 | 大数据 架构

    作者 | 张逸

    无论是采集数据,还是存储数据,都不是大数据平台的最终目标。失去数据处理环节,即使珍贵如金矿一般的数据也不过是一堆废铁而已。数据处理是大数据产业的核心路径,然后再加上最后一公里的数据可视化,整个链条就算彻底走通了。

    数据处理的分类

    如下图所示,我们可以从业务、技术与编程模型三个不同的视角对数据处理进行归类:

    业务角度的分类与具体的业务场景有关,但最终会制约技术的选型,尤其是数据存储的选型。例如,针对查询检索中的全文本搜索,ElasticSearch会是最佳的选择,而针对统计分析,则因为统计分析涉及到的运算,可能都是针对一列数据,例如针对销量进行求和运算,就是针对销量这一整列的数据,此时,选择列式存储结构可能更加适宜。

    在技术角度的分类中,严格地讲,SQL方式并不能分为单独的一类,它其实可以看做是对API的封装,通过SQL这种DSL来包装具体的处理技术,从而降低数据处理脚本的迁移成本。毕竟,多数企业内部的数据处理系统,在进入大数据时代之前,大多以SQL形式来访问存储的数据。大体上,SQL是针对MapReduce的包装,例如Hive、Impala或者Spark SQL。

    Streaming流处理可以实时地接收由上游源源不断传来的数据,然后以某个细小的时间窗口为单位对这个过程中的数据进行处理。消费的上游数据可以是通过网络传递过来的字节流、从HDFS读取的数据流,又或者是消息队列传来的消息流。通常,它对应的就是编程模型中的实时编程模型。

    机器学习与深度学习都属于深度分析的范畴。随着Google的AlphaGo以及TensorFlow框架的开源,深度学习变成了一门显学。我了解不多,这里就不露怯了。

    机器学习与常见的数据分析稍有不同,通常需要多个阶段经历多次迭代才能得到满意的结果。下图是深度分析的架构图:

    针对存储的数据,需要采集数据样本并进行特征提取,然后对样本数据进行训练,并得到数据模型。倘若该模型经过测试是满足需求的,则可以运用到数据分析场景中,否则需要调整算法与模型,再进行下一次的迭代。

    编程模型中的离线编程模型以Hadoop的MapReduce为代表,内存编程模型则以Spark为代表,实时编程模型则主要指的是流处理,当然也可能采用Lambda架构,在Batch Layer(即离线编程模型)与Speed Layer(实时编程模型)之间建立Serving Layer,利用空闲时间与空闲资源,又或者在写入数据的同时,对离线编程模型要处理的大数据进行预先计算(聚合),从而形成一种融合的视图存储在数据库中(如HBase),以便于快速查询或计算。

    场景驱动数据处理

    不同的业务场景(业务场景可能出现混合)需要的数据处理技术不尽相同,因而在一个大数据系统下可能需要多种技术(编程模型)的混合。

    场景1:某厂商的舆情分析

    某厂商在实施舆情分析时,根据基于需求,与数据处理有关的部分就包括:语义分析、全文本搜索与统计分析。通过网络爬虫抓取过来的数据会写入到Kafka,而消费端则通过Spark Streaming对数据进行去重去噪,之后交给SAS的ECC服务器进行文本的语义分析。分析后的数据会同时写入到HDFS(Parquet格式的文本)和ElasticSearch。同时,为了避免因为去重去噪算法的误差而导致部分有用数据被“误杀”,在MongoDB中还保存了一份全量数据。如下图所示:

    场景2:Airbnb的大数据平台

    Airbnb的大数据平台也根据业务场景提供了多种处理方式,整个平台的架构如下图所示:

    Panoramix(现更名为Caravel)为Airbnb提供数据探查功能,并对结果进行可视化,Airpal则是基于Web的查询执行工具,它们的底层都是通过Presto对HDFS执行数据查询。Spark集群则为Airbnb的工程师与数据科学家提供机器学习与流处理的平台。

    大数据平台的整体结构

    行文至此,整个大数据平台系列的讲解就快结束了。最后,我结合数据源、数据采集、数据存储与数据处理这四个环节给出了一个整体结构图,如下图所示:

    这幅图以查询检索场景、OLAP场景、统计分析场景与深度分析场景作为核心的四个场景,并以不同颜色标识不同的编程模型。从左到右,经历数据源、数据采集、数据存储和数据处理四个相对完整的阶段,可供大数据平台的整体参考。

  • ?

    六大主流大数据采集平台架构分析

    念去去

    展开

    随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台:

    Apache Flume Fluentd Logstash Chukwa Scribe Splunk Forwarder

    大数据平台与数据采集

    任何完整的大数据平台,一般包括以下的几个过程:

    数据采集–>数据存储–>数据处理–>数据展现(可视化,报表和监控)

    其中,数据采集是所有数据系统必不可少的,随着大数据越来越被重视,数据采集的挑战也变的尤为突出。这其中包括:

    我们今天就来看看当前可用的六款数据采集的产品,重点关注它们是如何做到高可靠,高性能和高扩展。

    1、Apache Flume

    Flume 是Apache旗下的一款开源、高可靠、高扩展、容易管理、支持客户扩展的数据采集系统。 Flume使用JRuby来构建,所以依赖Java运行环境。

    Flume最初是由Cloudera的工程师设计用于合并日志数据的系统,后来逐渐发展用于处理流数据事件。

    Flume设计成一个分布式的管道架构,可以看作在数据源和目的地之间有一个Agent的网络,支持数据路由。

    每一个agent都由Source,Channel和Sink组成。

    Source

    Source负责接收输入数据,并将数据写入管道。Flume的Source支持HTTP,JMS,RPC,NetCat,Exec,Spooling Directory。其中Spooling支持监视一个目录或者文件,解析其中新生成的事件。

    Channel

    Channel 存储,缓存从source到Sink的中间数据。可使用不同的配置来做Channel,例如内存,文件,JDBC等。使用内存性能高但不持久,有可能丢数据。使用文件更可靠,但性能不如内存。

    Sink

    Sink负责从管道中读出数据并发给下一个Agent或者最终的目的地。Sink支持的不同目的地种类包括:HDFS,HBASE,Solr,ElasticSearch,File,Logger或者其它的Flume Agent。

    Flume在source和sink端都使用了transaction机制保证在数据传输中没有数据丢失。

    Source上的数据可以复制到不同的通道上。每一个Channel也可以连接不同数量的Sink。这样连接不同配置的Agent就可以组成一个复杂的数据收集网络。通过对agent的配置,可以组成一个路由复杂的数据传输网络。

    配置如上图所示的agent结构,Flume支持设置sink的Failover和Load Balance,这样就可以保证即使有一个agent失效的情况下,整个系统仍能正常收集数据。

    Flume中传输的内容定义为事件(Event),事件由Headers(包含元数据,Meta Data)和Payload组成。

    Flume提供SDK,可以支持用户定制开发:

    Flume客户端负责在事件产生的源头把事件发送给Flume的Agent。客户端通常和产生数据源的应用在同一个进程空间。常见的Flume 客户端有Avro,log4J,syslog和HTTP Post。另外ExecSource支持指定一个本地进程的输出作为Flume的输入。当然很有可能,以上的这些客户端都不能满足需求,用户可以定制的客户端,和已有的FLume的Source进行通信,或者定制实现一种新的Source类型。

    同时,用户可以使用Flume的SDK定制Source和Sink。似乎不支持定制的Channel。

    2、Fluentd

    Fluentd是另一个开源的数据收集框架。Fluentd使用C/Ruby开发,使用JSON文件来统一日志数据。它的可插拔架构,支持各种不同种类和格式的数据源和数据输出。最后它也同时提供了高可靠和很好的扩展性。Treasure Data, Inc 对该产品提供支持和维护。

    Fluentd的部署和Flume非常相似:

    Fluentd的架构设计和Flume如出一辙:

    Fluentd的Input/Buffer/Output非常类似于Flume的Source/Channel/Sink。

    Input

    Input负责接收数据或者主动抓取数据。支持syslog,http,file tail等。

    Buffer

    Buffer负责数据获取的性能和可靠性,也有文件或内存等不同类型的Buffer可以配置。

    Output

    Output负责输出数据到目的地例如文件,AWS S3或者其它的Fluentd。

    Fluentd的配置非常方便,如下图:

    Fluentd的技术栈如下图:

    FLuentd和其插件都是由Ruby开发,MessgaePack提供了JSON的序列化和异步的并行通信RPC机制。

    Cool.io是基于libev的事件驱动框架。

    FLuentd的扩展性非常好,客户可以自己定制(Ruby)Input/Buffer/Output。

    Fluentd从各方面看都很像Flume,区别是使用Ruby开发,Footprint会小一些,但是也带来了跨平台的问题,并不能支持Windows平台。另外采用JSON统一数据/日志格式是它的另一个特点。相对去Flumed,配置也相对简单一些。

    3、Logstash

    Logstash是著名的开源数据栈ELK (ElasticSearch, Logstash, Kibana)中的那个L。

    Logstash用JRuby开发,所有运行时依赖JVM。

    Logstash的部署架构如下图,当然这只是一种部署的选项。

    一个典型的Logstash的配置如下,包括了Input,filter的Output的设置。

    几乎在大部分的情况下ELK作为一个栈是被同时使用的。所有当你的数据系统使用ElasticSearch的情况下,logstash是首选。

    4、Chukwa

    官网:https://chukwa.apache.org/

    Apache Chukwa是apache旗下另一个开源的数据收集平台,它远没有其他几个有名。Chukwa基于Hadoop的HDFS和Map Reduce来构建(显而易见,他用Java来实现),提供扩展性和可靠性。Chukwa同时提供对数据的展示,分析和监视。很奇怪的是它的上一次 github的更新事7年前。可见该项目应该已经不活跃了。

    Chukwa的部署架构如下:

    Chukwa的主要单元有:Agent,Collector,DataSink,ArchiveBuilder,Demux等等,看上去相当复杂。由于该项目已经不活跃,我们就不细看了。

    5、Scribe

    代码托管:https://github/facebookarchive/scribe

    Scribe是Facebook开发的数据(日志)收集系统。已经多年不维护,同样的,就不多说了。

    6、Splunk Forwarder

    以上的所有系统都是开源的。在商业化的大数据平台产品中,Splunk提供完整的数据采金,数据存储,数据分析和处理,以及数据展现的能力。

    Splunk是一个分布式的机器数据平台,主要有三个角色:

    Search Head负责数据的搜索和处理,提供搜索时的信息抽取。

    Indexer负责数据的存储和索引 Forwarder,负责数据的收集,清洗,变形,并发送给Indexer

    Splunk内置了对Syslog,TCP/UDP,Spooling的支持,同时,用户可以通过开发 Input和Modular Input的方式来获取特定的数据。在Splunk提供的软件仓库里有很多成熟的数据采集应用,例如AWS,数据库(DBConnect)等等,可以方便的从云或者是数据库中获取数据进入Splunk的数据平台做分析。

    这里要注意的是,Search Head和Indexer都支持Cluster的配置,也就是高可用,高扩展的,但是Splunk现在还没有针对Farwarder的Cluster的功能。也就是说如果有一台Farwarder的机器出了故障,数据收集也会随之中断,并不能把正在运行的数据采集任务Failover到其它的 Farwarder上。

    总结

    我们简单讨论了几种流行的数据收集平台,它们大都提供高可靠和高扩展的数据收集。大多平台都抽象出了输入,输出和中间的缓冲的架构。利用分布式的网络连接,大多数平台都能实现一定程度的扩展性和高可靠性。

    其中Flume,Fluentd是两个被使用较多的产品。如果你用ElasticSearch,Logstash也许是首选,因为ELK栈提供了很好的集成。Chukwa和Scribe由于项目的不活跃,不推荐使用。

    Splunk作为一个优秀的商业产品,它的数据采集还存在一定的限制,相信Splunk很快会开发出更好的数据收集的解决方案。

  • ?

    干货丨大数据是如何被采集及应用的

    灰色

    展开

    尽管“大数据”一词近年来屡遭热捧

    但很多人都还不知道什么是大数据

    更不知道大数据有甚卵用

    这两年,发现“大数据”这个词出现的越来越频繁了

    不仅企业,连国家都在部署大数据战略

    一番百度了之后

    Oh~ emmmmmmmmm~ +_+

    还是没搞懂大数据到底是个什么玩意儿

    直到有一天

    我发现一个秘密

    不管我在网上搜索什么

    页面都会跳出我要搜索的相关产品或关联事物

    然后,我恍然大悟!

    所谓大数据,就是算法!

    它能够“算”出我们“心中所想”

    那么问题来了

    大数据技术是如何采集到我们的信息的呢?

    数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,比如摄像头,麦克风,都是数据采集工具。

    数据采集系统整合了信号、传感器、激励器、信号调理、数据采集设备和应用软件。在数据大爆炸的互联网时代,数据的类型也是复杂多样的,包括结构化数据、半结构化数据、非结构化数据。结构化最常见,就是具有模式的数据。非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,包括所有格式的办公文档、文本、图片、XML, HTML、各类报表、图像和音频/视频信息等等。大数据采集,是大数据分析的入口,所以是相当重要的一个环节。

    我们首先来了解一下数据采集的三大要点:

    一、数据采集的三大要点

    (1)全面性

    数据量足够具有分析价值、数据面足够支撑分析需求。

    比如对于“查看商品详情”这一行为,需要采集用户触发时的环境信息、会话、以及背后的用户id,最后需要统计这一行为在某一时段触发的人数、次数、人均次数、活跃比等。

    (2)多维性

    数据更重要的是能满足分析需求。灵活、快速自定义数据的多种属性和不同类型,从而满足不同的分析目标。

    比如“查看商品详情”这一行为,通过埋点,我们才能知道用户查看的商品是什么、价格、类型、商品id等多个属性。从而知道用户看过哪些商品、什么类型的商品被查看的多、某一个商品被查看了多少次。而不仅仅是知道用户进入了商品详情页。

    (3)高效性

    高效性包含技术执行的高效性、团队内部成员协同的高效性以及数据分析需求和目标实现的高效性。也就是说采集数据一定要明确采集目的,带着问题搜集信息,使信息采集更高效、更有针对性。此外,还要考虑数据的及时性。

    不同应用领域的大数据其特点、数据量、用户群体均不相同。不同领域根据数据源的物理性质及数据分析的目标采取不同的数据采集方法。

    那么,接下来我们再来了解一下常用的数据采集的方法。

    常用的数据采集方法归结为以下三类:传感器、日志文件、网络爬虫。

    (1)传感器

    传感器通常用于测量物理变量,一般包括声音、温湿度、距离、电流等,将测量值转化为数字信号,传送到数据采集点,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。

    (2)系统日志采集方法

    日志文件数据一般由数据源系统产生,用于记录数据源的执行的各种操作活动,比如网络监控的流量管理、金融应用的股票记账和 web 服务器记录的用户访问行为。

    很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如Hadoop的Chukwa,Cloudera的Flume,Facebook的Scribe等,这些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求。

    (3)Web 爬虫

    网络爬虫是指为搜索引擎下载并存储网页的程序,它是搜索引擎和 web 缓存的主要的数据采集方式。通过网络爬虫或网站公开API等方式从网站上获取数据信息。该方法可以将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。它支持图片、音频、视频等文件或附件的采集,附件与正文可以自动关联。

    此外,对于企业生产经营数据上的客户数据,财务数据等保密性要求较高的数据,可以通过与数据技术服务商合作,使用特定系统接口等相关方式采集数据。比如八度云计算的数企BDSaaS,无论是数据采集技术、BI数据分析,还是数据的安全性和保密性,都做的很好。

    数据的采集是挖掘数据价值的第一步,当数据量越来越大时,可提取出来的有用数据必然也就更多。只要善用数据化处理平台,便能够保证数据分析结果的有效性,助力企业实现数据驱动。

大数据采集分析

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

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

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP