10分钟快速构建云原生数据仓库(二)

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 10分钟快速构建云原生数据仓库(二)

开发者学习笔记【阿里云云数据库助理工程师(ACA)认证10分钟快速构建云原生数据仓库(二)

课程地址https://edu.aliyun.com/course/3112080/lesson/19066

 

10分钟快速构建云原生数据仓库(二)


四、如何基于 AnalyticDB 快速构建数据仓库


图片237.png

基于 ADB 去构建数据仓库的体系可以分为几块,第一个数据从原始的生产数据包括 IoT 的数据,以及一些第三方的数据,这些数据源经过数据抽取然后清洗集成,集成到数据仓库里面。在数据仓库里面可以进行一个数据面向主题的数据建模,数据建模以后经过多层次数据的转化跟建模过程之后,然后应用在线上的生产里面。


线上生产可能主要面向几块,第一种就是面向业务决策上面的数据分析、报表以及业务赋能,另外一个还可以面向数据交易以及数据分享的数据服务,整个各基于 ADB 构建的数据仓库体系。


(1)数仓分层

ADB 内部如何进行数据的输仓分层

图片238.png

数据源数据库/日志/大数据

Oracle/DB2 MysQL SQLServer PostgresQL MongoDB PolarDB SLs/OSS/OTS Hadoop

数据实时同步数据传输服务 DTS

DataworksT+1 周期集成

第三方工具 Kettle/OGG

数据贴源层 ODS 层 必须构建 未经过处理的原始数据 结构与源系统保持一致

数据加工处理

公共数据层 CDM 层 非必须构建 DIM,维度表,例如会员表 DWD,明细事实层,基于业务过程构建的细粒度明细事实表。例如商品交易表 DWS,轻度汇总事实层基于应用及指标需求构建的轻度汇总指标事实表。例如,商品日交易额明细表。

数据加工处理

数据应用层 ADS 层 非必须构建 存放个性化的统计指标数据


数据源经过一些数据集成工具,比如阿里云上面的数据传输服务 DPS 或者是离线的 T+1 周期集成可以去 Dateworks 一些第三方的工具将数据集成到 ADB,ADB 内部数据的原始数据存储在数据的天元层简称 ODS 层,在 ODS 层存储的云端数据源是基本上是未经处理的一些原始数据的存储,而且整个结构跟语言系统保持一致。ODS 的数据可以经过数据的处理加工,加工成中间的公共数据层,在公共数据层里面的数据一般会分为几层,一种是维度表,维度表一般就是例如会员、商品、数据这种数据量相对来说偏小,但是又在最后的分析里面,是经常会作为一个维度数据进行交叉分析的数据,一般放在维度表里面。


第二个是明细表,明细表一般都是基于企业的业务过程,比如企业下单产品过程就是订单的数据,是业务过程当中构建的一些明细的事实表,基本上是每一笔订单都可能在里面会存储一条记录,另外一个是轻度的汇总成,轻度的汇总成叫  DWS 层,例如最终要加工出来的业务要用的数据可能是商品的交易额或者订单的交易额,在 DWS 层可以是每天做一次清度的汇总,也是每天的订单交易总额、每个月或者每七天的交易总额。在ADS 是最后面向业务使用的结果数据,可以基于上层去构建 BI 报表或者是大屏,或者在业务里面去做一些业务的公共决策,包括数据交易全部称为 ADS 面向结果直接可用的数据,例如可能要做的结果数据是商品交易额,在 ADS 层可能就是存储的商品交易额,比如要求做到每个月有一个点的趋势表,变成每个月一条记录的商品交易额,这个是整个数仓业界比较常见的数仓分层模型。数仓需要详细分层的核心还是在于最后面向业务层的需求是多样化的,不可能让每个业务线自己或者每个应用自己去开发一套数据的处理过程,为了简化数据的开发、复用的能力,像公共数据层 CDM 去构建一个公共的数据层,然后上层业务根据自己的个性化的统一需求或者业务需求去构建自己差异化的 ADS层,通过建模过程把一些通用的公共的一些能力建设可以变成一个统一的工作,去节省整个数据的开发工作量,同时也能够保证整个开发口径的一致性。

(2)数据仓库构建流程

图片239.png需求分析

明确业务板块  明确业务过程

定义业务

定义业务板块  定业务过程

梳理指标

原子指标  衍生指标

数据梳理

定义 ADS 层  定义 CDM 层

梳理数据源

梳理 ODS 层表,定义表来源

比如企业要构建数仓的过程中,可以按照上面的流程去梳理整个企业构构建数仓每一层需要产出的一些数据。


首先要基于面向业务,面向最后主题的需求分析倒推去梳理最终需要构建 ODS 层、ADS 层,包括 CDM 层的一些数据,比如需要明确业务的板块,例如是电商的板块、金融借贷的板块、还是物流的板块,要明确里面的业务板块是哪一块。


第二个是明确业务过程,因为业务板块是非常多的,比如在电商里面可能涉及到了商品的生产过程,还有订单的下单过程,会员的注册过程,里面的业务过程非常多,要明确需要行数据分析的业务的业务过程是什么,就定义好业务过程,你才能去分析这些业务过程涉及到的哪些数据有哪些。


那例如我们可能是一个订单的下单过程,那第二个的话就是我们需要定义好这个业务过程之外,我们明确好了业务需求之后,就定义好业务板块跟业务过程,然后根据业务需求去梳理出来里面需要产出的业务指标是什么,业务指标就是业务的一些需求,比如最重要的产出是商品交易或者某个商品交易订单金额的一个变化趋势图,或者是某个商品在某个区域交易金额的变化趋势,这些里面涉及到一些指标,在指标里面有一些是可以分为原子指标跟衍生指标,原子指标是不可再分的,衍生指标一般是从原子指标里面经过经过一些限定词的限定之后,然后获得了衍生类的指标,比如原子指标是电商里面所有的商品交易额,可能是每天的交易额,衍生指标可能是要 a 品牌 a 商品的交易额趋势,所以衍生指标是经过一些限定词从原子指标里面去生产加工出来的,企业需要去定义好原子指标跟衍生指标,根据原子指标跟衍生指标比如电商商品的交易和的趋势,就可以知道需要商品每个交易订单交易额的金额,包括衍生指标里面的一些限定值,比如对应的一些商品的品牌属性、商品的种类属性、商品的名称属性,这些数据都是需要的,所以根据这些数据可以梳理出来最终需要的 ADS 层、CDM 层以及原始的 ODS 层的数据是需要哪块,建议数仓构建的过程是从业务数据分析需求倒推出来,去梳理想要的数据来源。

图片240.png

基于 ADB 来构建的时候也是用原始数据,然后通过像用 DPS 的数据实时传输,把原始数据在 ADS 里面、ADB 里面去构建它的 ODS 天元层,然后天元层的数据经过数据加工整合可以构建出一个数据公共层,然后根据面向个性化的统计指标需求去构建 ADS 层。


(3)ODS 层的实时数据准备

一键打通数据源到 AnalyticDB 的数据链路快速构建数据仓库 ODS层。

图片241.png

核心价值 :

一键同步数据库及业务日志

数据实时同步更新,无延迟

减少 ETL 开发工作量

阿里的 ADB 是支持通过 DTS 将原端的日志数据以及业务生产数据实时的集成到 ADB 里面去构建 ODS,比如企业只要在 ADB 里面去使用一键建仓功能,选择好要集成的数据源的 id,然后配置好要集成到哪个数据仓库里面,点击确定会一键自动的构建起来。


面向日志数据也是一样的构建过程,所以阿里云的 ADB 构建程非常简单,数据进入到 ADB 里面之后,需要应用一些调度开发品牌,比如 Dateworks、Dataphin 或者 DMS 的一些数据管理开发调度平台,就可以把数据进行二次的加工整合,整合成 CDM 以及 ADS 层的数据。在 CDM 层当数据进入到 ODS 层之后,需要经过一些初步的预聚合,聚合成 CDM 层,涉及到如果要做离线的聚合调度,做实时的计算可以去调度开发平台,比如可以在里面去配置加工的一些逻辑,然后去做一个任务的编排,配置任务调度的开发能力,去实现 CDM 的构。

图片242.png

数据加工以及开发跟最后产出的衍生指标和原子指标非常强相关的,加工之后的数据又可以重回到 ADB 里面的 CDM 层。

 

五、一个基于 AnalyticDB 构建数据仓库的示例


某电商公司 X,销售各种品牌的服装。其订单表如下:

图片243.png

假设业务上需要统计 A 品牌服装每天的销售总额,那么上述案例相,

前面讲的是业界在数仓构建过程当中的方法论,以及基于阿里云的 ADB 构建数据仓库目前常用工具,包括数据传输 DPS 以及数据管理 DMS,去构建 ODS、CDM 以及最后的 ADS 层。以电商维度简单介绍前面所说的各种业务板块、业务过程之类到底具体对应到业务里面是什么东西。


例如这里是一个电商公司的订单数据,就要做一个订单金额、销售额的数据分析来做经营的决策辅助,这里面企业有很多订单表,还有各种买家卖家维度、商品维度的各种维度表的一些数据,拿订单表的原始数据来做参考,比如订单 ID 对应的订单里面的买家是谁,买家姓名商品 ID 是什么,购买的数量、支付的金额是什么。


假设需要统计 a 品牌服装每天的销售总额是最后统计的衍生指标,a 品牌的销售总额整个建仓模型就是参考下面,里面的业务板块讲的是电商业务,业务过程讲的是下单购买比较简单,要针对的是下单购买的数据去做一个最后的数据建仓,然后里面的维度因为统计的是 a 品牌,所以它的维度就是品牌维度,品牌一定要放进去,业务原子指标是销售总额,因为衍生指标要统计 a 品牌销售总额,所以要对衍生原子指标进行一些限定,业务限定是服装品牌为 a 品牌,时间周期是一天,所以通过业务限定加时间周期就可以从原子指标拿到产出的衍生指标,可以知道需要把一些订单数据,品牌的维度数据去同步到数据仓库进行原子指标以及衍生指标的架构。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
24天前
|
边缘计算 Cloud Native 安全
构建灵活高效的下一代应用架构 随着企业数字化转型的加速,云原生技术正逐渐成为构建现代化应用程序的关键支柱。
随着企业数字化转型加速,云原生技术逐渐成为构建现代化应用的关键。本文探讨了云原生的核心概念(如容器化、微服务、DevOps)、主要应用场景(如金融、电商、IoT)及未来发展趋势(如无服务器计算、边缘计算、多云架构),并分析了面临的挑战,如架构复杂性和安全问题。云原生技术为企业提供了更灵活、高效的应用架构,助力数字化转型。
57 4
|
1月前
|
Cloud Native 持续交付 开发者
探索云原生技术:构建高效、灵活的应用架构
【10月更文挑战第6天】 在当今数字化浪潮中,企业面临着日益复杂的业务需求和快速变化的市场环境。为了保持竞争力,他们需要构建高效、灵活且可扩展的应用程序架构。本文将探讨云原生技术如何帮助企业实现这一目标,并分析其核心概念与优势。通过深入剖析云原生技术的各个方面,我们将揭示其在现代应用开发和部署中的重要性,并提供一些实用的建议和最佳实践。
54 2
|
7天前
|
Kubernetes Cloud Native Ubuntu
庆祝 .NET 9 正式版发布与 Dapr 从 CNCF 毕业:构建高效云原生应用的最佳实践
2024年11月13日,.NET 9 正式版发布,Dapr 从 CNCF 毕业,标志着云原生技术的成熟。本文介绍如何使用 .NET 9 Aspire、Dapr 1.14.4、Kubernetes 1.31.0/Containerd 1.7.14、Ubuntu Server 24.04 LTS 和 Podman 5.3.0-rc3 构建高效、可靠的云原生应用。涵盖环境准备、应用开发、Dapr 集成、容器化和 Kubernetes 部署等内容。
31 5
|
1月前
|
运维 监控 Cloud Native
构建行业应用生态:云原生应用市场简化企业软件安装
在移动互联网时代,尽管手机应用市场为用户带来了极大的便利,但企业级软件的安装和管理仍面临诸多挑战,包括安装复杂、交付效率低、应用兼容性差等问题。为此,基于云原生技术的企业级应用市场Rainstore应运而生,旨在简化企业软件的安装和管理,提升交付效率,增强应用兼容性,支持远程管理和个性化定制,构建开放的行业应用生态,助力企业数字化转型。
构建行业应用生态:云原生应用市场简化企业软件安装
|
20天前
|
Cloud Native 持续交付 云计算
云原生技术深度探索:构建现代化应用的基石####
【10月更文挑战第21天】 本文将深入探讨云原生技术的核心概念、关键技术及其在现代软件开发中的应用。我们将从容器化、微服务架构、持续集成/持续部署(CI/CD)、无服务器架构等关键方面展开,揭示这些技术如何共同作用,帮助企业实现高效、弹性且易于维护的应用部署与管理。通过实例分析,展现云原生技术在实际项目中的显著优势,为读者提供一套全面理解并应用云原生技术的指南。 ####
31 2
|
1月前
|
运维 Cloud Native 持续交付
云原生技术:构建现代应用的基石
【10月更文挑战第9天】在数字化转型的浪潮中,云原生技术如同一股清流,引领着企业走向更加灵活、高效的未来。本文将深入探讨云原生的核心概念,揭示其在现代应用开发与部署中的重要作用,并通过实际案例分析,展现云原生技术如何助力企业实现敏捷开发和自动化运维,最终提升业务竞争力。
77 3
|
10天前
|
监控 Cloud Native 微服务
云端漫步:探索云原生应用的构建与部署
【10月更文挑战第32天】在数字时代的浪潮中,云原生技术如同一艘航船,承载着企业的梦想驶向未知的海洋。本文将带你领略云原生应用的魅力,从基础概念到实战操作,我们将一步步揭开云原生的神秘面纱,体验它如何简化开发、加速部署,并提升系统的可扩展性与可靠性。让我们一起启航,探索云原生的世界!
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术:构建现代应用的新范式
【10月更文挑战第9天】 云原生是一种通过云计算环境优化的软件开发和运行方法论,旨在最大化利用云平台的灵活性、可扩展性和弹性。本文将深入探讨云原生技术的基本原理、核心组件以及其在实际项目中的应用。我们将从Kubernetes的容器编排机制入手,逐步探讨如何通过自动化工具实现持续集成与持续部署(CI/CD),最终展示如何构建一个高效、可靠的云原生应用。
50 2
|
30天前
|
Cloud Native Devops 云计算
云原生技术:构建现代应用的新基石
【10月更文挑战第12天】 本文深入探讨了云原生技术的核心理念、关键技术和实践方法,揭示了其在现代应用开发和运维中的重要地位。通过分析云原生技术的发展趋势和面临的挑战,本文为读者提供了全面而深入的理解,旨在帮助读者更好地利用云原生技术构建高效、灵活和可扩展的现代应用。
35 0
|
1月前
|
监控 Cloud Native 持续交付
云原生技术:构建现代应用的新范式
【10月更文挑战第9天】 随着云计算技术的不断成熟,云原生技术正迅速成为现代应用开发和部署的新标准。云原生不仅是一种技术,更是一种理念和实践方法,旨在最大化利用云计算的优势,提升应用的灵活性、可扩展性和弹性。本文将深入探讨云原生的核心概念、关键技术以及它如何改变我们构建和运行应用程序的方式。
82 0

热门文章

最新文章