全新一代企业级大数据应用模式揭秘

简介: 三个问题 1.当下是否还需要一个复杂的EDW(企业级数据仓库)? 2.数据系统的目标用户是谁? 3.让数据适应计算能力还是计算跟着数据走 数据仓库这个概念在二十多年前由Bill Inmon提出后,几乎所有的IT厂商都开始介入这个领域,为企业级数据仓库设计非常复杂的体系结构和数据模型,典型的企业级数据应用架构如下: 这个架构,层次结构非常清晰,但是链路非常长,导致数据冗余非常大,同时数据表结构关系复杂,是一个典型的给技术人员使用的模型,业务的同学要使用数据是非常难的,没法理解底层复杂的表结构和表之间复杂的关联关系。

三个问题

1.当下是否还需要一个复杂的EDW(企业级数据仓库)?

2.数据系统的目标用户是谁?

3.让数据适应计算能力还是计算跟着数据走

数据仓库这个概念在二十多年前由Bill Inmon提出后,几乎所有的IT厂商都开始介入这个领域,为企业级数据仓库设计非常复杂的体系结构和数据模型,典型的企业级数据应用架构如下:

这个架构,层次结构非常清晰,但是链路非常长,导致数据冗余非常大,同时数据表结构关系复杂,是一个典型的给技术人员使用的模型,业务的同学要使用数据是非常难的,没法理解底层复杂的表结构和表之间复杂的关联关系。这个现状到现在还在持续存在,许多企业投入大量的资源构建企业级数据仓库,目标是提升企业自身数据化运营的能力,其结果大部分都与目标相差很远,更多看到的就是构建了一套报表系统。

同时,随着互联网和移动互联网的兴起,几乎所有的企业都在拥抱互联网,企业里面产生出很多互联网应用,同时也产生了大量的非结构化数据,结果问题来了,发现按照这样的结构设计数据模型,似乎并不能解决企业对非结构化数据的应用能力。同时对于提升数据处理效率也没有带来多大的用处。

业务变化快,这点在新兴互联网公司表现的特别明显,在创新的驱动下,业务变化非常频繁,同时大数据概念的提出,多源数据结合使用将成为主流的数据应用模式,导致数仓工程师很难抽象出一个相对比较稳定的数据仓库模型。

产生大量沉睡数据,很多企业里面,设计了ODS、DW、DM、RT层,产生了大量的数据表和数据任务,结果真正生产上使用的数据不多,导致每天有大量的关联任务在不断的耗用资源。我遇到的一些case,每日从业务库里面抽取的表只有1万多张,但是经过后面的各种加工,整个库里面产生上百万张数据表,技术人员使用起来都非常困难了,找不到数据。

我们回过头来分析一下,为什么会这样,同时也思考一下那三个问题。为什么会按照这个体系来设计:

我认为,出现上述架构的最大的原因是计算能力不够,传统的IT架构用来实现DT架构,计算能力受限,必须通过改变数据的组织形式来适应计算。也就是前面我提到的数据跟着计算走,去积极的适应计算能力。这同时也导致另一个更为严重的问题,二十几年的发展,各个大数据厂商,都把很大精力放在了数据模型的设计和构建上面,忽略了针对上层业务场景化应用的计算模型探索,所以在新的技术体系下,我们需要来重新思考这些问题。

这样的模式下,限制了上层数据应用模式,企业里面业务人员根本不可能去理解一个复杂的IT架构,所有的需求都是由业务人员驱动技术人员来实现。真正对数据有需求的业务人员,理解不了技术的语言,他们理解不了什么是表、什么事字段、什么是主键、什么是外键、表与表之间怎么关联、甚至是SQL怎么写都很难理解。而日常工作中,业务人员更能理解的是什么,他们能理解自己的客户是谁,客户都长什么样子,具备什么样的气质;自己有哪些产品,产品有什么功能,能解决什么问题;自己的客户和产品之间是如何互动,互动的结果是什么。诸如此类的,这是业务人员能力理解的。所以当下要做的就是抽象并提供一套能让业务人员直接可以理解使用的数据模型,而这个模型一定不是传统的数仓模型。

封闭的,不透明的,这也是导致企业内数据膨胀的重要原因,同一个标签,甚至同一张表,在企业数据仓库里面比比皆是,导致大量数据冗余,因为很多技术同学根本不知道库里面有什么,厂商提的元数据管理也是面向技术的一个方案,没有从本质上解决数据的业务视图。所以企业里面需要一种可以协同、共享、共建的全新的数据应用体系,确保有效数据的有效透出。

企业需要数据应用,提升自身数据化运营能力,但是是否需要一个复杂的DW模型,我认为当下不需要了,设计上应该轻数据模型(注意这里是轻数据模型,不是不要),重计算模型。

DTBoost新一代企业数据应用模式

DTBoost是什么?DTBoost是阿里云结合阿里巴巴自身大数据应用场景,经过多年总结抽象出的企业级大数据应用平台,其目标,是让业务人员可以快速的理解数据,应用数据;轻数据模型设计,重计算模型设计;结构开放,快速支撑数据应用开发;企业内部共建共享,协同开发。

DTBoost对标的产品是什么?

我周边经常有人问我这个问题,我可以直接告大家,DTBoost目前没有对标的产品。在我理解,DTBoost是一种全新的企业级数据应用开发的模式,我们通过DT技术的手段,将这种模式实现成一套公共云计算平台上数据应用的PaaS,同时也可以部署在专有云。通过DTBoost可以帮助企业快速实现数据业务解决方案,同时使得业务人员直接使用数据变成现实。

DTBoost架构

通过前面的分析,DT时代需要一个全新的数据模型,这个也将是整个DTBoost的基础。我们要站在业务的视角来设计。同时要提供一套数据模型的管理系统,来方便模型的设计和构建。为此在数据模型这部分将包含以下几个核心模块。

上图中,最下面三个标签工厂、领域OLT模版、智能OL发现主要是为了加速业务OLT模型构建和标签生产。

OLT(Object Link Tag)模型:所谓的实体,例如 消费者、商家、商品等都可以表示成一个实体,这些都是直接业务的同学可以理解的。关系例如 交易、收藏、点击、搜索等行为都是一个关系,由多个实体之间发生的某种行为。同时我们会在实体、关系上打上很多标签,来刻画实体和关系。听下来和OLP模型非常像,不错,在整体模型结构上一致,我们重点在tag(标签)这部分,标签是业务人员最容易理解的一种数据形态,标签可以是实体的某种属性,也可以是通过算法深度加工出来的某个评分,或者多个标签组合的一个计算逻辑。

共建共享

DTBoost可以在标签这个粒度实现权限控制,确保企业内形成共建共享的数据应用模式,标签可以有多个团队开发,可以发布、授权共享给其它部门查看使用。确保业务应用数据层公开透明。

市场机制

在这一层也可以通过市场机制的模式确保数据质量,严格意义上讲是标签数据质量,DTBoost可以通过标签元信息的公开透明,确保业务同学能快速的理解标签业务含义;通过讲标签的数据分布可视化,确保数据产出的稳定性;通过业务线使用标签的情况,来确保标签是否要被淘汰,如果一个标签长时间没人用,系统就可以考虑将其停用下线,释放底层计算资源;再进一步可以通过上层应用的情况,来自动优化物理层数据的组织方式。这里举个例子,如果A、B、C三个标签经常性被业务方组合使用,原先这三个标签在物理层分布在三张表中,那这种情况下,DTBoost会自动检测,自动构建新的底层物理表,将三个标签合并到同一张表中,优化存储的同时,优化了计算。

智能搬迁

这里在标签元信息中,DTBoost会详细记录标签对应物理的存储,当业务方在应用标签时,只用对计算模型进行选择,不用对数据物理存储关心,这个模块会根据计算模型的指令,完成底层物理数据的自动关联和搬迁(这里的搬迁指的是自动的将数据由一个存储搬迁到计算模型需要的存储中),不用数据开发的同学再去做物理数据的关联和数据传输任务的配置。

API

下面的所有功能,DTBoost将其封装成标准的API,共合作伙伴或者开发者做二次开发。

UI

DTBoost通过一个官方标准的交互界面,将底下的这些功能封装,给用户提供一套统一的操作体验。

标签工厂

为什么需要这个模块,DTBoost数据模型里面有非常重要的一块就是标签,但是标签怎么产生,哪些标签是有效的标签,这个就至关重要。而生成标签的方式有多种,可以让数据开发人员,根据业务同学的定义,通过SQL或着MR去一一实现,这个也是不可避免的。但是经过对业务需求的分析,你会发现有一部分计算逻辑是非常通用的,为此DTBoost里面可以为客户提供这部分功能,来解决企业内30-50%的标签加工需求,让业务人员自己就可以实现通用方法的标签加工。同时标签工厂能够对用户屏蔽底层之间的表联接逻辑,用户只需要知道所用的标签含义即可。当在某个时间段内同时有多个标签进行生成、处理、分析的时候,标签工厂可以自动找出这些处理的共同依赖、同一计算等,节省计算资源,避免某些热门物理表被多次全盘扫描。现阶段规划的功能如下:

当前支持的衍生方法:

  • 时间序列上的衍生: 方法名称 方法描述

  • cnt 变量在一定周期内的发生次数

  • cntd 变量在一定周期内出现的不同值次数

  • totv 变量在一定周期内的总和

  • ttav 变量在一定周期内的均值

  • hmax 变量在一定周期内的最大值

  • hmin 变量在一定周期内的最小值

  • hmedian 变量在一定周期内的中位数

  • stddev 变量在一定周期内的标准差

  • variance 变量在一定周期内的方差

  • days 变量在一定周期内满足条件的天数

  • ftdays 变量在一定周期内满足条件的首次行为距今时长 ltdays 变量在一定周期内满足条件的末次行为距今时长

  • 组合标签支持的表达式以及函数:

  • 计算运算:+, -, *, /, %

  • 数学函数:abs,acos,asin,atan,ceil,conv,cos,cosh,cot,exp,floor,ln,log,pow,round,sin,sinh,sqrt,tanh,tanh

智能发现
这个模块的作用就是加速构建OLT模型的过程,如果说 标签工厂是加速T的过程,那么智能发现就是加速OL的过程。如何构建一个有效的OLT模型非常关键,也是这个新一代大数据应用模式里面可能花费时间最长的环节。为此我们通过技术的手段来辅助解决这个问题,实体在物理数据中大部分都是以Key的形式存在,关系一般都是以组合Key的形式存在,我们采用机器学习方式,通过对业务库log的挖掘,自动的发现出可能的实体和关系,并根据关系的强弱切割成不同的子图,来帮助建模师确认、发现关键的业务模型。

领域OLT模版
这点非常有意思,也是真正意义上的领域知识,通过DTBoost在不同行业的不断输出,可以总结沉淀出不同领域的实体关系模型,沉淀出不同领域标签模型以及标签分类体系,来形成DTBoost领域知识库。同时它不仅仅是模型层的一个领域模版,他会和上层计算模型联动,形成从模型层到应用层一整套模版。比如金融领域,首先会沉淀出一套金融领域的实体关系标签模型,基于这个之上,可以沉淀出一套多维交叉分析模版、风控预警模版、市场营销模版。在相同领域输出时,可以基于这个领域知识库做快速的客户化改造。
到这里,数据模型部分可以告一个段落,这块是新一代企业大数据应用模式的基础,非常重要,为此DTBoost在这部分花了大量的时间和资源进行设计开发。重要但确实是个基础,他并不能直接解决业务问题,真正作用到业务是基于这套数据模型之上的计算模型。

【转自:必达】

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
15天前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
27天前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
1月前
|
存储 消息中间件 大数据
Go语言在大数据处理中的实际应用与案例分析
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理中的实际应用,通过案例分析展示了Go语言在处理大数据时的优势和实践效果。文章首先介绍了大数据处理的挑战与需求,然后详细分析了Go语言在大数据处理中的适用性和核心技术,最后通过具体案例展示了Go语言在大数据处理中的实际应用。
|
25天前
|
数据采集 分布式计算 大数据
Java语言在大数据处理中的应用
传统的大数据处理往往依赖于庞大的数据中心和高性能的服务器,然而随着大数据时代的到来,Java作为一种强大的编程语言正在被广泛应用于大数据处理领域。本文将探讨Java语言在大数据处理中的优势和应用,以及其在分布式计算、数据处理和系统集成等方面的重要作用。
|
1月前
|
存储 大数据 数据挖掘
云计算与大数据:从基础设施到实际应用
云计算与大数据:从基础设施到实际应用
100 0
|
17天前
|
NoSQL 大数据 数据挖掘
现代数据库技术与大数据应用
随着信息时代的到来,数据量呈指数级增长,对数据库技术提出了前所未有的挑战。本文将介绍现代数据库技术在处理大数据应用中的重要性,并探讨了一些流行的数据库解决方案及其在实际应用中的优势。
|
22天前
|
机器学习/深度学习 人工智能 数据可视化
基于Python的数据可视化技术在大数据分析中的应用
传统的大数据分析往往注重数据处理和计算,然而数据可视化作为一种重要的技术手段,在大数据分析中扮演着至关重要的角色。本文将介绍如何利用Python语言中丰富的数据可视化工具,结合大数据分析,实现更直观、高效的数据展示与分析。
|
29天前
|
存储 NoSQL 大数据
新型数据库技术在大数据分析中的应用与优势探究
随着大数据时代的到来,传统数据库技术已经无法满足海量数据处理的需求。本文将探讨新型数据库技术在大数据分析中的应用情况及其所带来的优势,为读者解析数据库领域的最新发展趋势。
|
2月前
|
分布式计算 并行计算 大数据
Python多进程在数据处理和大数据分析中的应用
Python多进程在数据处理和大数据分析中的应用
|
2月前
|
存储 NoSQL 大数据
新型数据库技术在大数据处理中的应用探讨
【2月更文挑战第2天】随着信息时代的到来,大数据处理成为了各行业发展的关键。本文将探讨新型数据库技术在大数据处理中的应用,分析其优势和挑战,为读者提供深入了解和思考。
27 5