当前位置: 首页 > 编程日记 > 正文

个推CTO安森:我所理解的数据中台

作者 | 个推CTO安森

来源 | 个推技术学院(ID:ID: getuitech)

引言

在前面两篇文章(《数据智能时代来临:本质及技术体系要求》和《多维度分析系统的选型方法》)之中,我们概括性地阐述了对于数据智能的理解,并根据工作中团队涉及到的多维度分析系统的选型方法进行了穿插介绍。按照原先的规划,我们接下去的内容会涉及数据智能平台中的治理、安全计算以及质量保证方面。

不过,计划不如变化快,最近这段时间“数据中台”这个词非常热,有人问了我两个问题:“数据中台”与这个系列的核心“数据智能的技术体系”有什么区别?你们是怎么理解“数据中台”这个概念的呢?

顺着这两个问题,这篇文章就和大家聊聊我们对于“数据中台”的理解,以及和“数据智能的技术体系”间的区别。

正文内容

再从数据的价值谈起

数据的产生来源于我们的产品和服务所提供的直接价值。以打车软件为例,因为APP需要提供给乘客所在地点周围的司机信息,因此系统需要及时收集司机的位置以及车载乘客状态以确定是否可被调度,然后把乘客的轿车需求发送给设定参数范围内的可用车辆。司机在进行抢单或者配单后,就可以接上乘客并按照导航送至目的地。

在这个过程中,乘客的上车位置、下车位置、司机车辆的位置、状态以及车辆行驶过程中的位置信息等数据都是为“打车”这个动作的直接价值服务。

正如大家所知,我们可以利用这些几千几万辆车的位置信息,聚合出每个道路的交通状况,再把这些知识提供给交通优化等。这就是数据的扩展价值,数据的多种价值汇总起来就是数据的选择价值。

再打个比方,数据的首要价值被挖掘后仍能够不断给予,它的真实价值就像漂浮在海洋中的冰山,绝大部分被隐藏在表面下。数据的选择价值也就是“取之不尽,用之不竭”的数据创新成果。这些数据创新并不是事先就规划好或者事先都能想到的。

那么为了保证这种创新的可能性,我们需要让这些数据都能被保存下来,而不是在实现了直接价值后,就弃之如敝屣。这个也是接下来要提到的“数据湖”的由来。

数据湖与数据仓库

数据湖【1】的概念是2011年提出的。由于无法对已流失的数据进行回溯,一些大数据厂商在Hadoop为基础的技术栈上,把一个组织中产生的原始数据存储在一个单一的系统中。一般大家会用开源的Hadoop来构建数据湖,不过数据湖的概念比Hadoop更为广泛。

看到数据湖,大家肯定会想到数据仓库或者数据集市,那么两者的区别在哪里呢?我们先来看看下面的这个图。

图 1 数据湖示意

数据湖存储数据源提供的原始数据,没有对数据的形式进行任何假设。每个数据源可以使用其选择的任何形式,最终数据的消费者会根据他们自己的目的来使用数据,这是数据湖区别于数据仓库的一个非常重要的原因。同时,这也是数据仓库没有走得更远的原因,因为数据仓库首先需要考虑数据方案(schema)。

图 2 数据仓库示意

数据仓库倾向于为所有分析需求设计一个总体的方案表示,但是实际上即使是一个非常小的组织,想要通过一个统一的数据模型来涵盖一切,也是不太实用的。另外,数据仓库在使用中会出现数据质量问题:不同的分析需求对数据的构成有不同的质量要求和容忍度。数据仓库的这个特征导致了漫长的开发周期、高昂的开发成本和维护成本、细节数据丢失等问题的出现。

数据湖在直观上更像一个数据质量差异很大的数据倾倒场,如果只是聚合后的数据,意味着会丢掉很多数据。数据湖应该包含所有数据,因为你不知道人们可以在什么时候找到有价值的东西,可能是在今天,也可能是在未来几年的时间里。

数据湖的这种原始数据的复杂性意味着我们可以通过一些方式来将数据转变成一个易于管理的结构,这样还可以减少数据的体量,更易于处理。数据湖还是不应该经常性地被直接访问,因为数据是很原始的,需要很多技巧才能使之变得有意义。一般可以按照下图来处理,我们可以把它称为数据湖岸集市。

图3 数据湖岸集市

把所有数据放入湖中的一个很关键的点是需要有一个清晰的治理。每个数据项应该有一个清晰的跟踪,以便于知道数据从哪个系统中来以及什么时候产生等,也就是元数据管理、数据血缘以及必要的数据安全。

数据中台

数据中台这个概念是阿里巴巴提出来的。随着业务的快速发展,企业的多条业务线都产生了大量的数据,而且数据都按照不同的形式进行采集、存储、处理等。为了快速满足每个前端业务的需求,公司通常会让前台直接去联系后台。譬如,大部分公司的大后台就是财务,初始可能比较有效,但是随着需求越来越多、越来越频繁,沟通成本大大提高,效率大大降低。

同时,对于一个公司的多个业务来说,哪怕看起来很个性的需求,经过抽象以及合并同类项后,我们发现也可以形成共有的能力。其实,对于后台的很多功能,同样可以抽象出来,成为各业务共有的能力。这样可以让数据更灵活更敏捷地服务于前台的各项业务,这个就是数据中台的初衷。

对于阿里来说,如何更好地把包括自己不同业务的数据、被收购公司的数据在内的多个数据变成One Data , 然后为整个公司的业务服务,也是数据中台的一个核心目标。

事实上,数据中台的建设与数字化转型一样,其实也是一个螺旋上升的过程,往往需要不断根据业务变化需求进行完善。哪怕再宏大的数据中台战略,也必须要用真实的业务场景去实践,通过以小到大的场景不断去锻炼中台。

总结而言,数据中台是练出来的,即数据的复用率决定了数据中台的成功与否。一个数据中台的成功意味着不少数据都在进行着重复使用。此外,我们需要注意数据安全策略的执行,包括底层数据安全的实现以及业务层数据的合规使用。

如果一个公司的数据中台没有和业务中台紧密配合,那么这种纯粹的数据中台只是蹭热点,不会有很大的效果。所以我们认为,更有价值的中台是业务偏向的数据中台,而不是通用型的数据中台。这个观点,和前阿里数据委员会主席车品觉是一致的。

根据上面的分析,我们建议公司在业务或者产品比较单一抑或数据战略并不太清晰的情况下,可以建设数据湖,而不是为了建设中台而去建设。从本系列第一篇文章《数据智能时代来临:本质及技术体系要求》的整体介绍来看,我们数据智能的体系和数据中台的目标是一致的。

结语

从我们自身的理解来看,数据智能体系和数据中台一样,本质上是把数据作为资产,整理出企业的元数据和数据血缘关系,再以这些数据为中心,抽象出公共服务的能力。最后,让前端流程的构造和企业的稳定数据公共服务解耦。这样就沉淀出了公共服务能力,即把这些能力SaaS化。

数据智能体系或者说中台,最根本的目的是敏捷地支撑业务部门的业务创新需求,打造快速服务商业需求的服务能力,并且尽量实时处理,体现数据的资产化及价值最大化。

我们认为中台最主要的用户是数据开发者群体,包括数据研发人员、数据分析及建模人员。建设中台的目的在于提高他们的效率、降低学习曲线、提高数据质量。

下一个系列,我们将回到主线,继续讲讲数据治理、安全计算、数据质量保证等方面的内容,敬请期待。

作者简介

安森,个推CTO

毕业于浙江大学,现全面负责个推技术选型、研发创新、运维管理等工作,已带领团队开发出针对移动互联网、风控等行业的多项前沿数据智能解决方案。

曾任MSN中国首席架构师,拥有十余年资深技术开发与项目管理经验,在大数据处理系统、大规模并发平台、分布搜索系统、手机应用开发、无线通信领域和智慧金融系统等领域拥有丰富实践经验。

(*本文为AI科技大本营转载文章,转载系原作者)

精彩推荐

开幕倒计时9天|2019 中国大数据技术大会(BDTC)即将震撼来袭!豪华主席阵容及百位技术专家齐聚,十余场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读。6.6 折票限时特惠(立减1400元),学生票仅 599 元!

推荐阅读

  • 量子算命,在线掷筊:一个IBM量子云计算机的应用实践,代码都有了

  • 通俗易懂:8大步骤图解注意力机制

  • 用了这个方法,两周没变过的模型精度居然提升了(附资源)

  • 15篇论文全面概览BERT压缩方法

  • 扛住 2019 双 11 流量洪峰,起底支付宝技术两大超级利器

  • 全球 43 亿 IPv4 地址宣告耗尽

  • 华为电脑终于又能搭载正版 Windows 系统了

  • 网易患病员工被保安赶出公司,程序员该如何应对中年危机?

  • 2020年编程语言趋势解读:编程世界之未来握于谁手?

  • 你点的每个“在看”,我都认真当成了AI

相关文章:

玩弹珠手游-杂想

前言 为什么会写这个杂想呢? 因为最近这一个月来,我有点太沉迷怪物弹珠这个游戏了,每天下班回来的时间和上下班路途都在玩这个游戏,占据了我大部分的业余时间,也该是时候放一放玩游戏了。 为什么会玩这个游戏呢&#x…

OC封装时间选择器

#import <UIKit/UIKit.h> protocol TimeDatePickerViewDelegate <NSObject> //必须实现的两个协议 required - (void)changeTime : (NSDate *)date;//当时改变时出发 - (void)daterMine : (NSDate *)date;//更确定时间 end interface TimeDatePickerView :UIView /…

银行卡大小的充电宝,买就送耳机!

每个人的朋友圈和微博上似乎都有那么几个活得让人羡慕的朋友他们的生活看起来不仅精致&#xff0c;还很丰富多彩从早上第一刻就开始了↓出门旅游新一天的穿搭逆天朋友团咖啡馆到书店逼格十足的日料夜景太迷人忍不住发个小视频最后一定不要错过傍晚的夕阳&#xff0c;真的好上镜…

C++中插件使用举例

插件并不是在构建时链接的&#xff0c;而是在运行时发现并加载的。因此&#xff0c;用户可以利用你定义好的插件API来编写自己的插件。这样他们就能以指定方式扩展API的功能。插件库是一个动态库&#xff0c;它可以独立于核心API编译&#xff0c;在运行时根据需要显示加载。不过…

C和C++安全编码笔记:指针诡计

指针诡计(pointer subterfuge)是通过修改指针值来利用程序漏洞的方法的统称。 可以通过覆盖函数指针将程序的控制权转移到攻击者提供的外壳代码(shellcode)。当程序通过函数指针执行一个函数调用时&#xff0c;攻击者提供的代码将会取代原本希望执行的代码而得到执行。 对象指…

runLoop和runtime的分析

一.RunLoop: Runloop是事件接收和分发机制的一个实现。 Runloop提供了一种异步执行代码的机制&#xff0c;不能并行执行任务。 在主队列中&#xff0c;Main RunLoop直接配合任务的执行&#xff0c;负责处理UI事件、定时器以及其他内核相关事件。 (1).RunLoop的主要目的&#…

脑出血遇到深度学习,是否可以无所遁形?

近期大家对身体健康这个话题格外关注&#xff0c;而我们今天公开课的主题也恰巧与此不谋而合。我国脑卒的发病率已经超过心血管疾病&#xff0c;成为致死、致残率最高的疾病&#xff0c;并且发病率呈逐年上升的趋势&#xff0c;此外脑血管病和颅内肿瘤等脑部疾病也危害人们的健…

Cloudera Manager 5.3 和 CDH5.3.0 本地(离线)

为什么80%的码农都做不了架构师&#xff1f;>>> 声明一下&#xff1a;http://my.oschina.net/dataRunner/blog/369129 是本人所写&#xff0c;并非抄袭。 有部分内容来自 http://www.wangyongkui.com/hadoop-cdh5/ 这个文件是根据官网操作&#xff0c;翻译的不…

万字长文详解如何用Python玩转OpenGL | CSDN 博文精选

作者 | 天元浪子来源 | CSDN博文精选【编者按】OpenGL&#xff08;开放式图形库&#xff09;&#xff0c;用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口&#xff0c;C、C、Python、Java等语言都能支持 OpenGL。本文作者以 Python 语法为例&#xff0c;用两万字详…

模仿视频抓帧实现

路口或某些场所可能并不会把从摄像头获取到的视频全部存储下来或对所有的视频帧进行处理&#xff0c;即摄像设备是一直处于打开状态&#xff0c;可能会根据需要间隔性的抓取其中一帧&#xff0c;或当某事件触发时才会抓取当前的一帧数据进行处理。这里使用两个线程来模仿此场景…

iOS--MD5加密封装

#import <Foundation/Foundation.h> interface MD5 : NSObject /** * md5加密 * * param inPutText 需要加密的字符串 * * return 加密好的字符串 */ (NSString *)md5:(NSString *)inPutText; end #import "MD5.h" #import "CommonCrypto/CommonDiges…

Akka路由_RoundRobinRoutingLogic

2019独角兽企业重金招聘Python工程师标准>>> Akka路由_RoundRobinRoutingLogic 使用Round Robin算法的Router&#xff0c;代码中有注释&#xff0c;基本和上篇文章中的代码一样 http://my.oschina.net/xinxingegeya/blog/369721&#xff0c; 具体如下&#xff0c;关…

iOS ---网络请求封装(自动缓存与手动缓存)

#import <Foundation/Foundation.h> interface WNetworkCache : NSObject /** * 手动写入/更新缓存 * * param jsonResponse 要写入的数据 * param URL 请求URL * * return 是否写入成功 */ (BOOL)saveJsonResponseToCacheFile:(id)jsonResponse andURL:(NSStrin…

Windows下获取视频设备的一种改进实现

之前在https://blog.csdn.net/fengbingchun/article/details/102806822中介绍过在Windows下获取视频设备列表的方法。其实那种实现方法是有缺陷的&#xff0c;当PC机上连接多个视频设备&#xff0c;并且其中有设备处于启动运行状态时&#xff0c;再调用相关接口获取视频设备可能…

最新单步目标检测框架,引入双向网络,精度和速度均达到不错效果

作者 | Tiancai Wang等译者 | 路一直都在出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;one-stage的目标检测方法因其具有实时性强、检测精度高等特点&#xff0c;近年来受到广泛关注。目标检测包括分类和定位两个子任务&#xff0c;通常来说&#xff0c;one-stage目…

基于Sentinel的Redis3.2高可用方案

默认情况下&#xff0c;Redis node和sentinel的protected-mode都是yes&#xff0c;在搭建集群时&#xff0c;若想从远程连接redis集群&#xff0c;需要将redis.conf和sentinel.conf的protected-mode修改为no&#xff0c;若只修改redis node&#xff0c;从远程连接sentinel后&am…

从YARN迁移到k8s,滴滴机器学习平台二次开发是这样做的

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;【导读】人工智能时代&#xff0c;机器学习已经渗透进每个领域&#xff0c;改变了这些领域的业务模式、技术架构以及方法论。随着深度学习技术近年来快速发展&#xff0c;高效、易用的机器学习平台对于互联…

最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解

cocoapods官网&#xff1a;https://guides.cocoapods.org 一、什么是CocoaPods 每种语言发展到一个阶段&#xff0c;就会出现相应的依赖管理工具&#xff0c;例如 Java 语言的 Maven&#xff0c;nodejs 的 npm。随着 iOS 开发者的增多&#xff0c;业界也出现了为 iOS 程序提供…

libusb中的热插拔使用举例

以下为判断usb设备是插入还是拔出状态(热插拔)的测试代码&#xff1a; 在Windows下是不支持的&#xff0c;在Linux是支持的&#xff0c;下一个版本可能会支持Windows下的热插拔&#xff1a; #include <chrono> #include <thread> #include <iostream> #incl…

C++复制控制:拷贝构造函数

一、拷贝构造函数是一种特殊构造函数&#xff0c;具有单个形参&#xff0c;该形参&#xff08;常用const修饰&#xff09;是对该类类型的引用。与默认构造函数一样 &#xff0c;拷贝构造函数可由编译器隐式调用。拷贝构造函数应用的场合为&#xff1a; &#xff08;1&#xff0…

关于IOS获取本地通讯录信息(包含iOS9.0前后)

在ios开发当中&#xff0c;获取用户本地的通讯录功能愈加频繁的出现&#xff0c;七两自己也在自己公司的项目当中遇到的获取本地的通讯录信息的功能&#xff08;俗称“种子用户功能”&#xff0c;太可怕了&#xff09;。对此七两总结了自己使用本地通讯录时的注意点&#xff0c…

C和C++安全编码笔记:动态内存管理

4.1 C内存管理&#xff1a; C标准内存管理函数&#xff1a; (1).malloc(size_t size)&#xff1a;分配size个字节&#xff0c;并返回一个指向分配的内存的指针。分配的内存未被初始化为一个已知值。 (2).aligned_alloc(size_t alignment, size_t size)&#xff1a;为一个对象…

作为一名程序员,数学到底对你有多重要?

最近在知乎上看到一个贴子&#xff0c;看完后我沉默了.....沉思后想想&#xff0c;其实每个行业都会分等级&#xff0c;程序员也不例外&#xff01;说好听一点的叫工程师&#xff0c;普通一点的叫程序员&#xff0c;差一点的叫码农&#xff0c;更差的还会叫码畜&#xff0c;码奴…

经典SQL(sqlServer)

一、基础 1、说明&#xff1a;创建数据库CREATE DATABASE database-name 2、说明&#xff1a;删除数据库drop database dbname3、说明&#xff1a;备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat--- …

iOS UITextField输入框随键盘弹出界面上移

//点击输入框界面跟随键盘上移 - (void)textFieldDidBeginEditing:(UITextField *)textField { CGRect frame textField.frame; int offSet frame.origin.y 70 - (self.view.frame.size.height - 216.0); //iphone键盘高度为216.iped键盘高度为352 [UIView beginAnimations:…

IEEE分享 | 机器学习在领英的规模化应用

人工智能和机器学习仍然是全球持续增长的领域之一&#xff0c;近年来涌现出越来越多本科生或者非人工智能专业出身的工程师&#xff0c;他们努力学习和使用技术来改进产品&#xff0c;几乎每天都有新的机器学习技术和框架发布。这篇文章将讨论领英如何规模化利用技术&#xff0…

GitHub/GitLab/Gitee中项目互拷贝后仍保留历史提交记录的方法

GitHub、GitLab、Gitee等在同一个网站中执行复制或拷贝一个已有项目到一个新项目比较简单&#xff0c;因为它们在每一个项目上都有一个Fork按钮&#xff0c;直接点击此Fork按钮即可&#xff0c;Fork后的新项目会保留原有项目的历史提交记录。但是如果不在同一个网站上进行此操作…

基于mimeTex的数学公式Webservice的部署和实现

通过Latex语法&#xff0c;实现生成数学公式的解决方案也很多。这里介绍一种方法&#xff0c;使用开源的mimeTex。该项目的官网地址如下&#xff1a;http://www.forkosh.com/mimetex.html网站主页有一个声明。如果你的服务器上已经安装了latex&#xff0c;那么推荐使用mathTex&…

对称加密算法AES之GCM模式简介及在OpenSSL中使用举例

AES(Advanced Encryption Standard)即高级加密标准&#xff0c;由美国国家标准和技术协会(NIST)于2000年公布&#xff0c;它是一种对称加密算法。关于AES的更多介绍可以参考&#xff1a;https://blog.csdn.net/fengbingchun/article/details/100139524 AES的GCM(Galois/Counte…

iOS UITextField清空按钮

extField.clearButtonModeUITextFieldViewModeWhileEditing; 就可以了&#xff0c;表明编辑输入框的时候启动一键清空按钮。另外&#xff0c;clearButtonMode还有三个属性&#xff1a; UITextFieldViewModeNever, 清空按钮永不出现 UITextFieldViewModeUnlessEditing, 不编…