2019-06-24 08:58 浏览量:437
前言
在前面的文章中,提到过数据中台的使命和愿景是让数据成为如水和电一般的资源,随需获取,敏捷自助,与业务产生更多的连接,使用更低成本,通过更高效率的方式让数据极大发挥价值,推动业务的创新与变革。随着互联网与大数据技术的不断发展,企业也渐渐意识到数据的重要性,但是由于企业每个部门都有建立了自己烟囱式的IT系统或者建立烟囱式独立的数据仓库和数据分析平台,导致数据共享难、互通难、理解难等,使得企业数据还停留在散乱的资源阶段,离数据利用、数据开发与数据变现,相对来说还是有很长的一段路要走。
为了解决企业数据“独”、“断”、“缺”、“难”四大难题,企业首先需要通过合理有效的方式为数据做资源规划,盘点出企业所有的数据,梳理清楚企业自身的数据情况。明确的知道,企业目前数据的来源、数据的存储情况、数据量的大小、数据的质量、数据的用途与数据流向等等。只有先了解企业当前数据资源的真实详细的情况之后,才有可能对数据利用和开发,发挥出数据的价值。
数据中台的初衷是为了让数据沉淀下来,产生价值,需要从最顶层的行业领域到企业的垂直领域的数据,同时需要覆盖多个领域的数据,只有先获取到全域级的数据(内部数据 + 外部数据)之后,将获取到的数据汇集到数据中台,解决企业数据孤岛的同时统一数据的规范和标准后,才有可能达成信息共享。
因此,企业建立数据中台的第一步先是进行数据获取,只有先获取到全域级的数据之后,对企业的数据进行盘点,统计数据资源的来源和确定数据资源后,才能去做数据资源规划。
01
数据在商业价值链条中的地位
【大数据的商业价值】
在DT时代的商业价值链条中,“数据即资产”的概念已经深入人心,一致认为拥有高价值数据源的企业在大数据产业链中占有至关重要的核心地位。大数据产业链发展的下半场,当整个产业链条逐渐做到打通拓宽,形成相对成熟的大数据生态之后,拥有数据源的企业将掌控数据链上游核心资源,并有可能通过数据直接变现迎来新的发展与机遇。
根据《2018全球大数据发展分析报告》显示,中国凭借近几年在“互联网+”与“大数据+”的融合创新,积累了丰富的数据资源,目前中国的大数据产业相关人才数量占比全球最高,达59.5%。其次为美国,占比22.4%。一方面,说明随着云计算建设的深入,大数据理念被用户认可,用户逐渐感受到新技术带来的便利和价值,促进大环境下及早地完善大数据采集的良心发展,避免造成有价值的数据流失;另外一方面,收集了海量的数据管理难度巨大,随之带来数据隐私和数据安全问题,在大数据时代孕育着很多商业机遇的时候,当数据被过度泛滥使用,必将对用户带来巨大的伤害。
【大数据资源SWOT分析图】
所以说,随着大数据市场的快速发展,数据资源丰富的同时挑战和机遇是共同存在。为了企业更好的利用大数据赋能业务快速成长,一方面,需要树立正确的数据价值观,对数据要怀有敬畏之心,在保证收集回来数据的安全性和隐私性前提下,合理的存储,不要企图利用数据去作恶;另外一方面,从业务出发合理使用数据,不做数据的独裁者;只有这样才有机会获取新一轮互联网数字化-智能化竞争制高点的“半张船票”。
02
数据获取之数据采集
企业启动中台战略同样是置身在大数据商业世界中的重要考量,一定不是学术界里的撒野。数据中台的建设离不开数据,数据就是数据中台的粮食,只有获取积累足够多的数据,才可能发挥出数据的价值。
【数据价值演变过程图】
数据演变成价值,是以数字化的形式先将信息聚合起来,通过记忆、存储的方式变成数据,然后通过数据分析与挖掘的方式变成知识,最后与业务相互结合发挥出商业价值。
【通用数据保护条例图】
在做数据采集之前,先和大家来谈谈数据安全与数据隐私问题。2018年5月25日,欧洲联盟正式出台《通用数据保护条例》,GDPR生效后,数据安全与数据隐私问题将成为企业必须重视的运营问题。企业必须明确满足数据主体的信息权、获取权、纠正权、限制处理权、反对权、删除权和数据可移动权等。
只有先在数据安全与数据隐私的前提之下,严格按照GDPR的基本原则来收集数据。企业再去明确数据从哪里来,有那些数据,数据存储在什么地方,数据用在什么地方,形成一个完整的数据流向闭环,对每一个信息进行分类,为企业提供一个360度全景的数据地图,才能确保企业能够快速定位、评估和监控所有的数据。
【数据资源分类管理图】
企业一般会从数据产生方式、数据来源途径、数据存储形式和数据使用用途四个方面对数据进行数据资源分类管理。
从个人实践经验来看,在做数据采集的过程中,规范和流程比设计采集方案更加重要。笔者在做数据采集之前,一般都会先问自己四个问题:
数据模型:日志的数据模型是什么,采集回来的数据怎么做数据归类;
寻找数据:数据从哪里来;
元素采集:需要采集的元素有什么;
采集方式:需要通过什么样的方式收集哪些日志;收集的数据怎么存储,存储在什么地方。
以上四点这些才是数据获取的关键,只有先收集到数据,最后去质量检验。把数据看成矩阵,有矩阵才有输入的模式,才可能获取到相对质量更好的数据。
1、数据模型
数据模型,即数据归类。当企业业务线越多,产品变的复杂,产生的数据也就越多。如果还是按照之前烟囱式的IT系统的方式一样,一个数据来源一个数据来源地去对待的话,短期内来说还是可以的,但是长期以往效率就变得低下,需要把要收集的数据归入到模型当中去,当面对不同的数据场景化应用,采取的数据策略不一样,才能促进数据模型的良性发展。
【数据模型&数据归类图】
一般来说,业内场景化应用无非收集的数据有以下四种:用户属性数据、物品属性数据、事件数据和关系属性。当有了数据模型后,就可以很好地去梳理的数据,看看每一种数据归类是什么样子。
所以,建立数据模型的目的一方面是为了帮助产品梳理数据来源、数据日志、归类存储,以方便在使用时随需获取;另外一方面是为了让使用数据的人员更加透彻的理解业务。在做数据模型的时候,需要提前考虑到模型的延展性、拓展性和解耦性。
2、寻找数据
收集数据,就是把与企业业务、经营等相关的数据都汇集起来。企业获取内外部数据资源可以通过不同的方式和渠道来获取。从广义的层面上划分,主要来自两种,一种是内部数据资源;另外一种是外部数据资源。
内部数据资源:一般是通过企业内部的业务系统和应用系统的数据库直接产生,这类型的数据是业务运转必须要记录存储的数据记录,通常都是结构化存储的数据;常用同步方式有全量同步和增量同步。
外部数据资源:主要通过数据埋点、爬虫等技术手段来获取,数据通常都是非结构化和半结构化的数据。
埋点数据:通过App或web埋点方式来采集用户行为数据。从技术手段来划分,分为SDK埋点、可视化埋点、无埋点三种;从收集数据的位置来划分,又分为前端埋点和后端埋点。常用的应用场景有用户行为分析,搜索/推荐/广告投放分析等;
爬虫数据:使用爬虫技术获取第三方系统或网站的数据。从技术层面上来说,爬虫工作流程相对简单,是将种子URL放入队列,从队列中获取URL,抓取内容,然后解析抓取内容,将需要进一步抓取的URL放入工作队列,存储解析后的内容,但是实际过程中各大系统与网站反爬策略,这就涉及到技术与安全上的攻与防;从爬虫策略上说,常用的抓取策略有深度优先、广度优先 、大站优先、PageRank等方式;从爬虫质量来说,一般通过分布式、可伸缩性、性能和有效性、质量、 新鲜性、 更新、可扩展性等维度来判断爬虫数据质量的标准。常用的应用场景有网络舆情监测分析和价格趋势监测分析等;
日志数据:借助日志采集工具采集机器和应用产生的日志数据,常用的应用场景有系统服务异常监控,企业内部安全合规审计等。
但是,在做获取数据来说真相往往让人难以接受,获取内部数据资源比获取外部数据资源更难,需要的时间周期更长。获取内部数据资源最大的困境在于人,获取外部数据资源的困境在于技术。有时候往往解决技术的困境程度远远小于人带来的因素。至于为什么,话点到为止,大家意会。
3、元素采集
先确定,数据采集的规范和流程后,基于业务确定数据采集方案,然后遵循优先在后端收集数据。元素采集尽量遵循两个基本原:一是全面;二是细致。
先从后端收集事件数据中梳理出需要从业务服务器打印日志是什么,确定需要搜集什么信息才算是一条完整的时间信息数据?个人经验,一般需要包含下面的几类元素。
用户 ID,用户身份的唯一标识
物品 ID,物品的唯一标识。通过物品ID去区分辨别物品两个或者多个不同物品的本身
事件名称,每一个行为一个名字。用来记录的用户行为或业务过程,比如用户注册账号、登录、点赞,评论,分享、关注等等
事件发生时间,时间非常重要。需要明确事件在何时何地发生的事件。
以上是最基本的内容,如果能再收集到以下数据就更好。
事件发生时的设备信息和地理位置信息等;
从什么事件而来;
从什么页面而来;
事件发生时用户的相关属性;
事件发生时物品的相关属性
只有当搜集的数据越丰富就越可能通过细腻的方式和手段还原出用户当时使用的场景。
4、采集方式
企业建立数据中台需要获取到全域级的数据,主要的数据来源于业务,业务场景越多很多,获取的数据源就越具有复杂的多样性,数据采集的形式随之变的多样。
提升数据价值,降低数据成本,保证数据质量,是企业数字化转型的希望。毕竟,巧妇难为无米之炊,质量好的数据胜似黄金,质量低的数据价值不高,如果收集到错误的数据即带来存储和传输成本的浪费,还无法创造出数据的真正价值。
数据采集的目的一方面可以了解与提升业务运营情况;另一方面,积累的海量数据,可以为后续场景化业务的数据分析与挖掘应用探索提供支撑能力。
【数据采集架构图】
从上图,可以衍生在实际数据采集落地工程当中,产品与技术团队会遇到以下几方面的问题:
问题一:产品团队不知道需要采集什么数据
数据采集的最最最基本两大原则:一是全面;二是细致。全面的意思就是需要把可能涉及到业务运转的数据都收集起来,而不只是App端和web端的数据收集;细致的意思就是尽可能多维度收集数据,把事件发生的一系列维度信息,尽量多的记录下来,方便后续做数据分析与挖掘。尽可能的把日志记录想象成一个 Live 快照,当收集的内容越多就越能还原出用户当时使用的场景。
作为产品团队的数据PM,在做需求埋点规划时,一定需要带有目的方式去思考问题,明确知道现阶段数据采集的目的是什么,明白收集数据的目的是做报表统计,是做数据分析还是做机器学习,再基于业务梳理出需要采集数据矩阵是何种形态。只有先明确目标,才能正式开始设计埋点文档。
问题二:产品团队设计的需求埋点混乱,导致出现错埋、漏埋、多埋等的情况
基于业务目标梳理出数据埋点文档,定制好规范和流程。笔者上面说的数据采集的四要素可以入药,在此不多做赘述。
问题三:技术团队不知道通过什么技术手段去采集数据“更好”
好与坏是相对的,没有绝对。无论是采用后端埋点还是前端埋点,都会出现丢包的情况,只能说团队可接受度的范围是多少,心理的阈值是多少,只有先确保埋点数据的完整性、一致性、及时性、准确性等因素,基于业务目的去分析、去平衡要获取什么样的数据,采用什么样的方式去做采集。
另外,有时候不是埋点多就好,这是一个矛盾点。在大数据时代,大数据中的大的对立面就是少,越是真实的业务数据,数据量就越大,可用的信息比例就越少,更多的是噪音数据,如果拟合了噪音数据,那就被数据绑架了。
所以,通过什么技术手段去采集数据“更好”本身就是一个伪命题,只有适合业务目标的采集技术才是相对较好的。同样情况下,无论是产品或者是使用数据的相关人员去做数据分析与挖掘的时候,不要只看数据,更多地从业务本身去思考一下;要活用数据,不要被数据绑架。
问题四:技术团队在数据采集阶段,当做增量同步的时候,遇到可修改、可删除的数据源,如何处理
当在无法确定数据源的情况下,通常会采用:放弃同步,采用直接连接的方式;放弃增量同步,选用全量同步;编写一个定时跑的Job程序,扫描数据源以获得Delta Data,然后对Delta Data进行增量同步三种方式来做数据同步。
但是这三种选择方式其实都算不上最优的选择。如果当数据源的源头可以控制,可以采用监听数据源的变更,然后通过定时跑的Job程序来更新采集的数据,同步存储在数据库中,又有会牵涉到数据存储的选型。
为了更高效地提升数据采集的质量,一般会将整个采集流程切分成多个阶段,在细分的阶段中可以采用多种并行的方式执行。在这个过程中,会涉及到Job的创建、编写、提交与分发,采集流程的规划,数据格式的转换与传输以及数据丢包的容错处理等。
问题五:技术团队,数据采集回来要如何进行合理的存储
根据数据采集获取的日志的时间属性进行合理的存储。通常做法把日志按照日期分区,存储日志在HDFS 中,目的是为了后续抽取方便快速。在存储时,按照前面介绍的数据模型分库分表进行存储,方便后续做数据分析与数据挖掘时准备数据
问题六:产品团队和技术团队需要如何配合
如何在博弈中找到平衡点,达到双赢?数据的事情无论是采用自上而下或者自下而上去的方式都可以,当然老板直推的话会好很多,如果平行部门去做数据推动的事情,就会遇到各种不可控的情况。自上而下和自下而上策略的最关键区别在于,前者是一种分解策略而后者是一种合成策略。前者从一般性的问题出发,发问题分解成可控的部分;后者从可控的部分出发,去构造一个通用的方案。
Tips(仅供参考):
在认知上,运用大数据小场景的方式,改变数据相关人员原有的思维模式,知道数据的重要性,重视数据,把数据的优先级提升,改变拍脑袋做决策逐步走向以数据驱动做决策的思维转变;
在沟通上,理性分析问题,把握问题核心痛点,明确跨部门沟通的痛点,先解决主要矛盾,降低双方理解沟通的成本;
从资源上,盘点资源后在合理的时间内安排好双方工作的范围和职责边界。
03
数据获取之数据传输
到底什么是数据传输?按照维基百科的定义:指的是依照适当的规程,经过一条或多条链路,在数据源和数据宿之间传送数据的过程。也表示借助信道上的信号将数据从一处送往另一处的操作。
【大数据传输过程图】
原始数据采集之后必须将其传送到临时存储数据的基础中心等待下一步处理。数据传输过程可以分为两个阶段,IP骨干网传输和数据中心传输。
【数据预处理之数据传输图】
【数据传输服务图】
数据传输的过程当中,在保证系统的高可用性与数据源动态适配能力的前提下,系统还需要具备数据同步、高性能传输、可视化操作、任务设置简单、故障自动恢复五大能力
保证系统高可用性:在数据传输服务内部的过程当中,保证每个模块都具有主备架构,保证系统高可用性。在容灾系统中对每个节点的健康状况实时监测,当监测到某个节点发生异常情况的时候,会将链路进行秒级切换到其他节点上去
数据源地址具有动态适配的能力:对于数据订阅MQ和数据同步链路,容灾系统对数据源的连接地址切换进行实时监测,当监测到数据源的连接地址发生变更,就会动态适配数据源生产新的连接方式,保证当数据源在发生变更的情况下,数据同步链路的稳定性
【数据传输的五大特性图】
04
数据获取之数据预处理
在工程实践当中,获取到的数据会存在有缺失值、重复值等,在使用之前需要进行数据预处理。数据预处理其实没有统一标准的流程,视情况而定对不同的任务和数据集属性采用不同的处理策略。数据预处理的一般步骤为:数据集成 → 数据清洗 → 数据规约 → 数据转换
1、数据集成
数据集成是一个数据整合的过程,通过汇集各种类型的数据源,将拥有不同结构、不同属性的数据进行归纳整合在一起
【数据集成图】
2、数据清洗
数据清洗目的为了解决数据质量问题,让数据更适合做数据分析与挖掘
【数据清洗图】
3、数据规约
数据集成与数据清洗后,数据集的规模是无法改变的,所以需要通过做数据规约来减少数据分析与挖掘所需的数据集规模
【数据规约图】
4、数据转换
数据转换需要通过标准化、离散化与分层化让数据变得更加透明、更加一致,更加容易被模型所理解
【数据转换图】
总结
本篇和大家从数据在商业价值链条中的地位、数据采集、数据传输与数据预处理四个方面聊一聊数据获取的若干事情。数据中台的建设离不开数据,在数据获取之前需要先要盘点出企业所有的数据,梳理清楚企业自身的数据情况,制定好流程与规范再设计数据获取方案。数据是数据中台的粮食,因为获取不到数据就没有任何数据场景化应用的落地,发挥不出企业数据的价值,所以说数据获取是一个非常重要的工作。
另外,还介绍了数据埋点的方法、数据采集的架构图以及在工程落地中会遇到的问题,更多是想和你一起来探讨做数据获取时运用到的思维模式,而不是直接给你数据埋点文档、数据清洗方案等。
数据获取是一个持续进行的过程,希望大家在数据获取的过程中更多的从业务的角度去思考问题,平衡好短期利益和长期利益的关系。毕竟企业建立数据中台,是一种让数据持续赋能业务的机制。它不是一个产品,是一个战略和体系,以数据驱动业务发展为主,让『一切业务数据化,一切数据业务化』。
最后,希望企业能够在认知上,建立数据人员正确的数据价值观,对数据要怀有敬畏之心,在保证数据的安全和隐私的前提下,合理的存储,不要企图利用数据去作恶;在使用上,更多的基于业务本身去思考问题,活用数据,不要被数据绑架。
来源:橙子解忧杂货店
作者:Evans