本文由百度智能云大数据资深产品经理——崔宝宏在百度开发者沙龙线上分享的演讲内容整顿而成。本次分享模仿企业面临的实在场景,介绍如何利用百度大数据产品帮忙企业构建数据资产。
本次分享从以下四个环节开展:
- 场景介绍
- 架构设计
- 数据开发
- 利用开发
01 场景介绍
为了让大家更好的理解这些产品的利用,首先模仿一个企业应用场景 demo:
有一家中型的零售商,客户和销售数据扩散在不同零碎中。心愿通过一个我的项目买通并实现标准化、集中化的治理。治理好了之后同时心愿能把数据实现价值施展,为高层提供多维度的销售报表,维度包含:客户、产品、地区和工夫。度量包含:销售额和净利润。
企业在技术层面上有如下需要:
- 原始数据存储于 MySQL 数据库或者其余的文件中。
- 为了爱护原始生态系统的稳定性,不必查问源数据间接拜访生产主库。
- 最大解决 TB 级数据,须要 2 小时实现数据全链路解决。
- 报表查问秒级响应。
业务需要剖析
业务解读:
- 数据买通及标准化,通常依照数仓 / 数据集市形式实现数据治理。
- 高层应用多维报表须要思考页面成果以及需要高效响应,客户高层的需要除了罕用的货色之外还须要疾速的响应需要。
技术解读:
- TB 级别在大数据畛域属于数据量中等规模,针对大数据处理从 TB 到 PB 的数据增量的过程当中,须要思考底层将来的扩展性。
- 大数据量报表秒级响应依赖高性能剖析型数据库。
设计方案:
- 依靠多行业实践经验方法论进行构建,实现数据资产治理的集中化、标准化、稳固、历史资产爱护
- 为保障大规模数据处理的性能、稳定性、扩展性,应用分布式大数据根底平台 BMR
- 为进步数据治理效率,升高数据资产构建过程门槛, 应用一站式大数据开发治理平台 EDAP
- 为保障 TB 级明细数据多维数据查问性能,应用 MPP 数据库 Doris
- 为减速报表开发效率以及可视化渲染成果,应用可视化报表开发平台 sugar Bl
02 架构设计
技术架构与数据架构
基于这个业务需要,首先就要进行架构设计。技术架构其中分了三层:
- 最底层有存算引擎,包含托管大数据平台 BMR 和数据仓库 Doris。
- 开发平台是面向开发者进步开发效率的工具——数据湖治理与剖析 EasyDAP。
- 面向高管驾驶舱报表的 Sugar BI。
这就是产品层面的技术架构。
右侧是数据架构,数据要从原始的生产零碎外面数据库拿进去,所以数据架构的源数据在 MySQL 或者文件里。
在构建数仓的过程中要进行大规模的 ETL 解决,一部分要进行基于数仓的实时查问,所以应用了 BMR 外面的 Hive 以及 Doris 这两款存储引擎来实现数据的存储和数据的加工。
最上层生成的报表有 UI 层面的页面数据。
整体的数据架构也是分三层:源数据、仓内数据、页面数据。
数仓构建
技术架构之外,还须要进行数仓构建。
数仓构建的外围就是数据要以一种标准化、规范化、统一化的模式把数据管理起来。
这里引入主体域的概念:什么数据应该存在哪个主题下,具体到不同的业务外面应该怎么划分主题。
划分计划是:实体、事件和形容,能够主观的把日常生活中各种各样的业务用这三个关系表达出来。
举例一个业务场景,比方某人去超市购物,商品或者人就是一个实体,在购物的过程中比方刷卡这是事件,所谓事件就是什么工夫什么地点什么人做了什么事,它是一条事务性的记录,它在做这些事件的过程当中有这样一些定语相干的对他进行形容。
回到构建的场景外面来,这是一家中型的零售商在进行产品的售卖,实体有客户实体、产品实体和合同实体。事件是在购买产品的过程当中有征询、购买和投诉,依照这样的分类形式就把主题域划分分明了。
数据模型分层架构
把模型划分好了之后须要对 ETL 中数据进行分层。
右边是最通用的分层形式:从 ODS 层,到 DWD 层,再到 DWA 层,最初到 ADS 应用层,这也是市面上支流的厂商提供的数据分层的构造。咱们认为这样的分层形式尽管通用,然而不够细化,对于一些精细化的数据管理应该是依照 7 层的数据流架构,这样可能涵盖所有的加工过程。
在数据流架构之中,SRC 是元数据层。ODS 是贴源层,贴源层和 SRC 实际上就是实现数据上的解耦,数据层面是一个镜像级的拷贝,目标是实现对所有生产型业务零碎的备份。
DWD 是规范明细层,从数据粒度上讲是相似的,从数据的定义上是实现了统一化。
DWA 是将数据进行加工汇总。DMA 寄存个性化的应用。之后将不同指标的计算形式拆分成两层比方报表层和剖析层以及最外层的展现层,在构建当中能够灵便的抉择须要哪一层。
03 数据开发
开发程序
开发过程当中,须要进行大规模数据的存储和计算,所以须要一款大数据引擎 BMR,建数仓的外围是 BMR 外面的 Hive,基于 Hive 数据在应用层须要做多维的秒级的实时响应查问,所以须要一款高性能的剖析型数据库 Doris,开发过程中应用 EasyDAP,报表制作应用 Sugar BI。
为什么要用 BMR?
有十分丰盛的组件,不仅是能够实现结构化的数仓,还能够反对实现数据湖的搭建。
高性价比的产品,能够应用更小的资源进行更大规模数据的解决,用更少的存储来存更大量级的数据,等同规模下老本会越来越低。
能够高效运维,整个平台就是页面是全托管的应用形式,不须要在底层写命令来做运维监控,所有的货色都能通过控制台来实现。
十分安全可靠,有各种各样的平安认证,有行列级别的数据权限,在数据的加密脱敏方面有固定的组件撑持,用户的所有操作都能够通过审计。
Hive 库表创立
进行 BMR 的集群构建和库表的创立,须要把 Hive 表建设起来。在建 Hive 表的过程当中,须要把 Hive 表的集群搭建起来,其中有这么几个步骤:
- 第一步是集群创立,过程当中要抉择一些必要的组件比方 Hive、Spark。选好之后须要进行队列的治理,可能最大力度保障外围工作疾速跑完,所有的队列创立好了之后,在理论运行过程中是须要去检测有没有一些运行中呈现的服务异样,或者服务异样之后的报警性能。
- 第二步要进行 Hive 库表的创立,建设一些数据库如 ODS 库、DWD 库和 DWA 库,建表过程当中,每一层的库都遵循建表的标准。
Doris 产品个性
Doris 产品其实是高性能的 MPP 数仓,它的个性有以上几点。
Doris 建库建表
在 Doris 上须要建设好 DMA,建库的过程只须要 creat_database 命令,而后通过可视化的页面就实现了,建完库之后须要把 DMA 外面的表创立好,建表标准与 DWA 和 DWD 统一,都是依照主题域而后特定的业务实体来表白。
在这个建表的过程当中能够指定哪些表是维度,所谓维度就是说能够用来做聚合,把聚合的字段定义好之后,那么在这张表的写入过程当中,程序就会默认帮你把底层多维穿插的分组数据在指标层面做了分组和统计,当咱们去查问这两个维度下对应的指标数据的时候,这曾经不是一个实时计算的过程而只是一个实时查问的过程,所以它能实现数据的疾速响应。
最初建完表之后要把数据疾速导入,Doris 和支流的 Hadoop 生态是兼容的,Hive 建完仓之后,数据其实是放在 HDFS 中,所以只须要把 HDFS 导入就能够了。
EasyDAP 产品个性
用这些根底的引擎构建完之后,在开发的过程中是须要把 ETL 工作流通过一款产品来实现,这款产品就是 EasyDAP。
- 能做数据集成、数据凋谢、数据分析和数据服务。它的个性就是能够把 Doris 的 Hive 当作数据源引入进来,把 BMR 的计算引擎当作计算资源引入进来。
- 提供了一个低门槛的开发方式,在开发的过程当中不须要写代码,通过利落组件就能够实现。
- 十分安全可靠,在这个平台内所有的操作都是通过审计日志的,表的拜访也都是有受权的。
- 十分凋谢兼容,除了可能对接百度的 Doris、Hadoop,还可能对接市面上其余厂商开源的 Hadoop 生态。
数据源配置
在 EasyDAP 进行数据开发的过程当中,第一步就是要把原始数据引入到数仓外面,在平台上创立一个计算资源,而后再把源 MySQL 的 JDBC 配置好,把指标的 Hive JDBC 配置好,就能够实现一些根底的操作。从权限上来讲,这些操作都应该是管理员来操作的,开发人员进来之后只须要进行开发就行,由管理人员来进行这些根底的配置。
数据开发阶段
把以上根底配置好之后就进入数据开发阶段。首先创立开发我的项目,而后绑定我的项目须要应用的资源,最初须要把开发人员进行受权治理。
编写数据集作业,数据写入 Hive ODS 库表中
把根底的治理相干的工作做完之后,就是理论开发人员进入平台进行 ETL 开发。图中的例子里想要把 MySQL 外面的数据集成到 Hive 里,第一步就是要把 MySQL 外面的原始数据放入到 Hive 的 ODS 层。
举例说明:MySQL 外面有两个库,一个是 CRM 库,一个是 MARKET 库,CRM 库外面有一种表是客户根本信息(CUST_INFO),MARKET 库外面也有一种表是客户明细信息(CUST_DETAIL),同时 MARKET 库外面还有合同信息(CONTRACT_INFO)。在 Hive 外面的话就是依照 Hive 的命名标准,原始库名 + 原始零碎名 + 原始表名。
加工的过程当中,能够有几种加工模式,第一个用可视化开发工具,第二用脚本开发。
线上监控以及告警解决
配置调动实际上就是来执行异样告警,失败重做,以及日常的日志排查,同时也反对手工的执行。
Hive 仓内开发
把原始数据库里的数据写入到 Hive 的 ODS 层后,须要在 Hive 外面做仓内开发,也就是要把数据从 ODS 层写入 DWD 层写入 DWA 层,因为 Hive 反对丰盛的数据生态,所以应用 HQL 来实现。
右边这张图,ODS 中有三张表,在加工进入 DWD 中是要把两个客户的根本信息做对立,写入到 DWD 的客户主题下的信息表,而后销售合同外面的合同信息在主题域外面认为是一个订单,所以在事件主题上面有一个订单表。
加工好了之后就要做汇总层,其中包含天级、月级、季级和年级。
写入 Doris
到了 DWA 之后,下一步要写入 Doris,在 DWA 和 DMA 外面其实只是做数据的转储,指标是为了响应实时的数据查问。只须要将数据源抉择 Hive,将数据指标抉择 Doris,而后把图配好之后,就能够把数据生成了,也能够应用底层脚本的形式,应用 Doris 的命令也能够把 Hive 外面的数据写入 Doris 外面。
以上是老师的全副分享内容,有问题欢送在评论区提出。
往期举荐
🔗
可视化神器背地的神秘
6000 字,详解数据仓库明星产品背地的技术神秘
3 个步骤,4 大平台,搞定大规模数据处理
扫描二维码,备注:大数据开发,立刻退出大数据产品 & 技术交换群。