专栏名称: 京东成都研究院
京东商城成都研究院信息平台
目录
相关文章推荐
成都发布  ·  热搜第一!卖爆了!医生提醒…… ·  昨天  
成都发布  ·  3月30日起,去双流机场赶飞机有变! ·  2 天前  
成都本地宝  ·  明日正式开通!成都天府机场高速出行更方便! ·  2 天前  
成都本地宝  ·  看雪山/日落!成都又一观景台即将开放! ·  3 天前  
成都本地宝  ·  成都5个严重被低估的古镇/村落!全部免费! ·  2 天前  
51好读  ›  专栏  ›  京东成都研究院

B2B拨云专栏 | 走进数据加工

京东成都研究院  · 公众号  · 成都  · 2018-02-26 18:06

正文

01

前言

如今, 业务需求从单纯的业务功能,逐步转向数据分析。如何运用公司内部现有的平台,快速响应需求,轻松应对呢?


这次分享将讲解离线数据在京东内部是如何运作的。本次的分享是实践运用技巧,并不会涉及到大数据领域很深层的原理,分享的目的是这了让大家熟悉京东大数据平台整体离线数据分析的过程。

我会从以下四个方面来为大家拨云见日,消除大家内心的疑虑。

  1. 预备知识,讲解一些基础的大数据知识、概念。

  2. 接入大数据平台,如何将我们的数据接入到大数据平台上。

  3. 数据加工,基于大数据平台如何做我们的业务数据分析。

  4. 运用数据,加工好的数据,又如何回到我们的系统。

02

预备知识

数据仓库,是个什么呢?


我们平时,对MySQL是比较熟悉的。其实数仓我们可以对比为MySQL实例,一个MySQL实例中,可以多个数据库,如订单数据库、商品数据库、库存数据库,数据库里有数据表。


同样在数仓中,也有数据库的概率,数据库中也是有众多的数据表。


区别在于MySQL的数据库,更多的是以业务维度为划分依据。而数仓中,更多的则是以数据的聚合程度来分库的,这个后面会详细讲,数据表这不层,就是一致的了,都是为了保存数据。

京东是一个基于Hive的数据仓库,Hive将HQL语句转为Map\Reduce任务在hadoop上执行。

在Hive的SQL语法大部分与MySQL的一样,这里重点讲一下——Hive中的数据插入语法。


在MySQL中数据插入语法都是INSERT INTO,没有insert overwrite 。两个都是将数据插入表中,但是insert overwrite 在插入数据时,会删除分区,再插入数据,效果就是多将执行同一个语句时,总是只有最后一次执行的结果。


这个特性在MySQL中,其实没有什么大用处,也没有人这么用,因为MySQL重点在事务处理,而在Hive上,大部分都是做数据分析,经常会删除都逻辑的数据,重跑数据。

刚才讲了Hive是基于hadoop的,而hadoop的数据都是文件中的,文件就有目录,hive通过目录的形式来实现分区的隔离,这样就可以快速的定位到我们关心的分区。

Hive中的数据,是列式存储的。MySQL是行式存储,也就是我们的一条数据,是放在同一个文件的连续的范围内有。


而列式存在,我们可以理解为一个表的数据是放在这个文件里的,通过行号来确定是同一条数据;这样做的处理在数据分析上有很明显的优势。


其实在数据分析时,我们往往只关系几列的数据,这样我们只取几列的数据,那hive就只会去访问对应的几个文件就可以了。其实列式存储还有很多优点,这里就不展开讲了。

上面说了那么多hive的一些知识,那京东内部是怎么运用的呢?


其实在集群上,通过数仓 + 集市的形式来构建大数据平台的。那有人问了集市又是什么呢?其实也是数仓,只是为了区分。


我们这里提的JDW 京东数仓,其实是所有京东的基本数据都是放在这里的。而集市可以理解为真正业务分析的数仓,我们将我们MySQL表中的数据同步到JDW数仓,我们在分析数据时,再从 JDW数仓将数据同步到我们成都集市,就可以做相关的处理了。


比如其他的团队也想用我们的数据,就不用找我们要数据了,只需要从JDW数仓申请同步就可以了。同样的我们在用其他组的数据,如订单数据,也不用找订单组要,直接数仓同步就可以了。

那在数仓内部,也是将不同汇聚情况的数据,通过库的形式再做了区分,这样做的目的,方便管理,清晰。使用时,你直接看名称就大概知道这个数据,是什么形式的,是原始的基础数据,还是分析处理过的数据了。当然我们在使用时,也要遵循这个规定。


JDW数据仓库我们业务开发人员是没有权限的,我们可以在app、tmp库中随意发挥,其他库我们一般只有只读权限。


03

接入大数据平台

数据我们的MySQL表中的数据,接入到大数据平台,通过数据直通车JDBUS,填写相关信息就可以完成。

目前大数据平台可以接入很多的数据源,这里重点讲一下MySQL的接入;选择离线接入_MySQL,点下一步。

配置接入表的库名、地址、表名即可。

对于分库分表的,可以通过这样一个快捷的方式来完接入,同样也可以通过excel导入。

配置完成后,点击提交,找领导审批。第一步就完成了。

领导审批完成后,只是让领导知道我们这个数据在放到大数据平台了。


接下来,我们还得来配置表的信息,主要的抽取方式和我们表的业务主键 ,在这里重点说一下,分库分表的归档字段一定在选择成为我们的业务主键,也就是我们通用ID生成器生成的那个列,当然也可以是多列。

这里有个存储方式,拉链表,流水表。


存储方式简单理解就是我们的数据抽过去后,在数据平台上如何保存、如何放分区。


流水表,每表大数据平台抽过去每天是一个分区,这个简单,好理解。


拉链表在数仓中一个非常重在的概念,下面我会多数据的增、删、改三个方面详细说一下。

在大数据平台上还有其他几种存储方式。







请到「今天看啥」查看全文