费元星-关于百度在数据仓库-层级架构上的思考

feiyuanxing feiyuanxing     2022-12-01     535

关键词:

 

目前在做的数据产品都是基于数据仓库上实现,主要的应用方式包括固定报表、数据查询、数据挖掘等。

在知识类相关的数据分析产品中,通常需要对多个业务系统的数据进行集成,更需要对数据分层进行科学的规划。

为什么分层

我们对数据进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:

  1. 清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解;
  2. 数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围;
  3. 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算;
  4. 把复杂问题简单化:讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复;
  5. 屏蔽原始数据的异常;
  6. 屏蔽业务的影响:不必改一次业务就需要重新接入数据。

数据体系中的各个表的依赖就像是电线的流向一样,我们都希望它是很规整,便于管理的。

怎么分层

大部分数据处理都是基于百度的分层思想来做,可以把数据仓库分为下面三个层,即:数据运营层、数据仓库层和数据产品层,但通常在数据仓库实践中,这种简单的分层模式会导致数据仓库层承担过多的功能,比如明细数据和汇总数据分层不明确等。优化后的数据分层如下:

  • 数据接口层 Reduced                 --  通常在UDA系统中进行灵活配置,不需要任何coding即可将数据入库,并可以做简单的处理。
  • 近源数据层 ODS                     
  • 明细数据仓库层 DWD
  • 轻度汇总数据仓库层 DWG
  • 数据应用层 (根据具体的应用形式命名,比如报表 CPT,关键指标 KPI)
  • 中间数据层 TMP

Reduced 层

INF, 即接口数据层,主要来源主要为数据库和文件。数据结构和数据源基本相同,为了方便后续历史数据处理,需添加以下字段:

  • dw_created_time

该记录生成的时间。

  • dw_updated_time

该记录更新的时间,默认与 dw_created_time ,数据发生更新时更新。

  • dw_deleted_time

dw 中该记录删除的时间,默认值为 9999-12-31。

  • src_updated_time

源数据中的更新时间戳。

我们对接口层的定义是把源系统的数据拉取到数据仓库中,而这个步骤可能由非技术人员来完成,所以尽可能简单,不对数据进行过多修改。

接口层中所有表以 INF_ 为前缀,其中字典表以 INF_DICT_为前缀。

ODS 层

近源数据层主要完成以下工作:

  • 根据数据的量级选择分区键对数据进行分区
  • 对缓慢变化维进行处理,反应变化

近源数据层不做以下事情:

  • 脏数据处理;
  • 数据表间一致性处理;
  • 不同业务表的合并.

我们对于近源数据层的定位是可以"快速"的构建基础数据平台. 不做业务相关的处理可以让这部分的工作专注在大数据架构正确性和稳定性的问题.

DWD 层

数据仓库明细层,由 ODS 层经过去重、去噪、字典翻译、空值转化,日期格式化、关联JOIN、维度分析等清洗后的数据,主要包括两种形式,数据宽表和维度模型(星型模型)。

它的定位是"操作简单, 执行快速, 屏蔽错误, 统一口径".

这个过程主要完成如下几个事情:

  • 合并不同业务为统一过程;
  • 屏蔽脏数据, 比如典型的测试数据.
  • 冗余字段. 把常用的join操作在宽表中封装.

数据宽表以DW_为前缀;事实表以DW_FACT_为前缀;维度表以DW_DIM_为前缀。

通常优先考虑使用数据宽表实现,在灵活性要求比较高或有特殊要求的情况下采用维度模型实现。

DWG 层

数据仓库轻度汇总层,对明细层的数据根据年、月、日等维度对数据进行轻度汇总。

轻度汇总层的表名以 DWG_ 为前缀。

应用层

应用指标层 KPI

应用指标层,针对常用的 KPI 指标项进行计算。

应用报表层 CPT

专用于报表应用,一般适用于计算比较复杂的报表应用(如跨数据集计算等)。

 

关于云数据仓库的几项关键思考

...计费且易于上手的规模化优势切实同市场需求相对接。而关于云数据仓库,我们在投身其中之前显然有必要作出以下思考。1.确定用例2.机器学习与数据科学3.实时与可操作分析4.混合型工作负载分析5.切实把握云数据仓库能力二... 查看详情

关于领域驱动架构ddd思考

一个高大上的概念领域驱动架构就这样展开。   开发了多年的软件,一直以来的习惯是拿到产品的需求对照UI的图纸然后就干干干碰到问题大不了找人沟通再次定义问题,最后交付。其实最后也能把一件事情完成但如... 查看详情

浅谈数据仓库架构设计

1.数据中台与DW/BI/DSS个人认为数据中台本质上是一种新的适配大数据技术发展的新的“数据仓库-决策支持(商业智能)”架构。这个架构是构建在传统的架构基础之上,对传统架构的一种新的发展。数据中台从企业的... 查看详情

OLAP 架构?

...描述】:我正在学习数据仓库的架构和设计,并且有一个关于OLAP系统的问题。因此,据我了解,从历史上看(当计算能力和内存不是商品时),数据将被获取并存储在数据仓库中。对于每个分析/BI任务,都需要配置一个OLAP系统... 查看详情

mpp架构海量数据分析仓库——greenplum介绍(代码片段)

...储和分布式计算理论刚刚被提出来,Google的两篇著名论文关于GFS分布式文件系统和关于Map 查看详情

关于微服务架构业务思考

现实业务场景微服务框架的大行其道(SpringCloud、SpringCloudAlibaba),似乎没在微服务架构下写过代码都不好意思出去面试。在我最近待过的两家公司中,都采用了微服务架构,且研发团队没有超过20人,那... 查看详情

关于技术规划管理架构的思考

一、关于技术规划三板斧技术规划规划分为三个部分的内容:第一部分:全局分析,这需要溯源历史,思考未来,要对未来有一定的预判。能够基于数据,基于专业,基于客户价值,同时结合公司... 查看详情

关于人类活动各层级各类别平台的思考罗国正

关于人类活动各层级、各类别平台的思考                罗国正          (二0一九年十月九日) 我一直以来都自觉或不自觉地有... 查看详情

马蜂窝数据仓库架构实践

http://km.ciozj.com/Detail.Aspx?AI=98315&CI=2数据中台的概念非常接近传统数据仓库+大数据平台的结合体。它是在企业的数据建设经历了数据中心、数据仓库等积累之后,借助平台化的思路,将数据更好地进行整合与统一,以组件化的... 查看详情

数据仓库层级

从数据的获取到数据提供到最终的应用方,数据仓库中,我们将其分为源数据层、操作数据层、数仓公共层、集市层四个层次。1.数据采集到后会根据数据本身特性分别进入stage和ods,stage区的数据处理过后也会存入ods中,对后面... 查看详情

关于如何管理团队的思考

? 明确、透明的组织架构明确的组织架构很重要,这样可以大幅度的避免权力交叉争夺,太多的人力消耗就是消耗在了权力斗争当中,不要试图去使用“帝王学”,那只会让你的团队人员随时处于相互斗争中,从而消耗... 查看详情

关于数据管理的一些思考

伴随着互联网、5G、大数据的蓬勃发展,数据俨然已成为企业不可或缺的重要资产,数据管理的意义愈发突出,但想要管理好数据却并不是一件容易事,为什么呢?首先看一下数据的定义:数据是指对客观事件进行记录并可鉴别... 查看详情

关于androidapp架构的一点思考

关于androidapp架构的一点思考关于架构,我们首先要明白的点就是为什么要进行架构设计?对程序进行架构设计的原因,对于大企业归根到底是为了提高生产力。通过设计使程序模块化,做到模块内部的高聚合和模... 查看详情

前沿分享|阿里云数据库解决方案架构师王宏宇:云原生数据仓库analyticdb在零售行业的深度应用和业务价值

...峰会分论坛中,阿里云数据库解决方案架构师王宏宇关于“云原生数据仓库AnalyticDB在零售行业的深度应用和业务价值”的分享。更多前沿分享,点击云栖大会视频回放链接即可获取。本篇内容将通过三个部分来介绍基于... 查看详情

什么是数据仓库总线架构

一、总线架构维度建模的数据仓库中,有一个概念叫BusArchitecture,中文一般翻译为“总线架构”。总线架构是Kimball的多维体系结构(MD)中的三个关键性概念之一,另两个是一致性维度(ConformedDimension)和一致性事实(Conf... 查看详情

数据湖和数据仓库的区别是啥?

数据湖就是一个集中存储数据库,用于存储所有结构化和非结构化数据。数据湖可用其原生格式存储任何类型的数据,这是没有大小限制。数据仓库是位于多个数据库上的大容量存储库。它的作用是存储大量的结构化数据,并能... 查看详情

关于serverless应用架构对企业价值的一些思考

作者:寒斜前言对于企业方而言,最关心的核心诉求就是如何能获取更多的营收,更高的利润,通俗点说就是如何赚更多的钱;企业赚钱的方式主要是通过出售企业服务,当用户购买更多的企业服务,企业赚的钱就越多;而出售... 查看详情

搭建数据仓库第01篇:数据仓库开发的生命周期

 生命周期方法为我们在数据仓库开发过程中提供了路标的作用,生命周期方法的总体结构和步骤有定义业务需求技术路径技术架构设计产品的选择和安装数据路径维度建模物理设计ETL设计和开发BI应用路径BI应用设计BI应用开... 查看详情