从京东618数据井喷看大数据平台峰值处理制胜关键大数据应用

来源:互联网 / 作者:SKY / 2018-09-14 20:12 / 点击:
随着DT(数据技术)A5的到来,人们能比以往更容易地获取更丰富的数据。数据作为一种新的能源形式,正在源源不断地发挥其巨大的价值,帮助我们激发更多的技术驱动

9月15日技术沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖探讨精准运维!

一、大数据综述

随着DT(数据技术)A5的到来,人们能比以往更容易地获取更丰富的数据。数据作为一种新的能源形式,正在源源不断地发挥其巨大的价值,帮助我们激发更多的技术驱动力,提供更优质的服务。

京东,有着EB级规模的历史数据,每天有近PB级的数据增长,同时每天有百万级的数据处理任务在执行。数据井喷式的增长给数据采集、数据处理、数据管理、数据应用、数据质量、数据运维带来了极大的考验。

京东的数据目前包含了电商、金融、广告、配送、智能硬件、运营、线下、线上等场景的数据,每个场景的数据背后都存在着众多复杂的业务逻辑。为了帮助业务人员降低获取数据的门槛,简化数据获取的流程,同时帮助分析人员方便快捷地进行数据统计分析, 进而挖掘数据的潜在价值,京东搭建了一套完整的数据解决方案。

从京东618数据井喷看大数据平台峰值处理制胜关键


大数据平台技术架构

上图为大数据平台技术架构,分散在四处的线上系统数据(多为结构化的业务数据),或者是各种日志文件、文档、图片、音频、视频等非结构化数据,需要进行采集。我们分别借助实时和离线的数据处理平台,将数据抽取至实时数据仓库和离线仓库,然后借助平台内的工具对数据进行加工处理,同时辅以各种平台产品对数据进行统一管理、监控、处理、查询、分析等, 并结合具体的业务需求,形成相应的数据应用产品。

二、技术平台

1、数据采集

京东包含了电商所涉及的营销、交易、仓储、配送、售后等环节,每个环节中都会产生大量的业务数据,同时用户在网站上进行的浏览、购物、消费等活动,以及用户在移动设备上对应用的使用情况,包括各种系统的操作行为,也会生成海量的行为数据。为了将上述的结构化业务数据以及用户非结构化的用户行为日志进行采集,京东搭建了一套标准化采集方案,能够将业务分析所需的数据进行标准化采集,并将数据传输到大数据平台,以便后续的加工处理及上层的数据应用。

目前京东的数据采集方案主要分为两大类:用户行为日志采集方案(点击流系统)和通用数据采集方案(数据直通车),下面将做详细介绍。

点击流系统

目前京东有着丰富的入口平台及展示形式,包括PC网页、H5页面、App应用、App内部的H5页面、智能设备、微信、手Q以及微信生态下的新场景微信小程序。其中PC网页、H5页面、App内部的H5页面、微信、手Q以及微信小程序由网页方式呈现, 用户通过浏览器进行访问;而智能设备,例如手机、移动手环、智能家电等,则是以App应用的方式呈现,用户访问App即可获得相应的服务。

以下是浏览器和App用两种使用场景的日志采集方案:

浏览器端的日志采集

日志采集:浏览器的日志采集方式,首先需要在统计页面日志的页面中预先植入一段Java Script脚本,当页面被浏览器加载时,会执行该脚本。脚本中预设了一些采集需求,包括收集页面信息、访问信息(访次、上下文)、业务信息、运行环境信息(浏览器信息、访问时间、访问地址)等。日志采集脚本在被执行后,会向服务器端发送一条HTTPS的请求,请求内容包含了收集到的日志信息。

服务器日志接收:日志服务器在成功接收到浏览器发送的日志请求后,立刻向浏览器发送一个请求成功的响应,日志请求的响应不影响页面的加载。日志服务器在接收到日志请求后,会对日志请求进行分析处理,包括判断其是否为爬虫、是否为刷流量行为、是否为恶意流量、是否为正常的日志请求等,对日志请求进行屏蔽和过滤,以免对下游解析和应用造成影响。

日志存储:服务器接收到日志请求后,会依据请求的内容及约定的格式对其进行格式化落地。例如,当前页面、上一页面、业务信息、浏览器等信息以特定的字段标识,字段之间使用特定的分隔符,整条日志以特定的格式记录下来。结合业务的时效性需求,将日志分发到实时平台或者落地成离线文件。

经过数据的收集(采集—上报—接收—存储),我们将用户在浏览器端的行为日志实时记录下来。除植入代码人工干预外,可以保证数据的准确性,数据的过滤和筛选保证了异常流量的干扰,格式化数据方便了后续的数据解析处理。

移动设备的日志采集

移动设备的页面有别于浏览器页面,移动设备主要为原生页组成的App应用,原生页使用原生预研开发完成。例如Android系统使用Java语言,iOS系统使用Objective-C原生语言开发,原生页运行速度快,效率高。

采集方式:移动设备上App应用的数据采集主要使用的是SDK工具,App应用在发版前将SDK工具集成进来,设定不同的事件行为场景,当用户触发相应的场景时,则会执行SDK相应的脚本,采集对应的行为日志。

日志存储:用户的各种场景都会产生日志,为了减少用户的流量损耗,我们将日志先在客户端进行缓存,并对数据进行聚合,在适当时机对数据进行加密和压缩后上报至日志服务器,同时数据的聚合和压缩也可以减少对服务器的请求情况。

数据直通车

数据直通车为京东线上数据提供接入京东数据仓库的完整解决方案,为后续的查询、分发、计算和分析提供数据基础。直通车提供丰富多样、简单易用的数据处理功能,可满足离线接入、实时计算、集成分发等多种需求,并进行全程状态监控。

从京东618数据井喷看大数据平台峰值处理制胜关键

上图所示的数据直通车接入数据类型,根据抽取的数据量及抽取对线上的影响,会分为定时的离线接入和实时接入两种抽取方式。每种抽取方式支持不同的数据类型,每天在零点后可以获取前一天完整的数据,然后将一整天的数据进行集中加工处理,并将数据最终储存到目标表对应的分区中。

2、数据处理

实时平台

阅读延展

1
3