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
相关文章
|
25天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
5天前
|
人工智能 Cloud Native 大数据
DataWorks深度技术解读:构建开放的云原生数据开发平台
Dateworks是一款阿里云推出的云原生数据处理产品,旨在解决数据治理和数仓管理中的挑战。它强调数据的准确性与一致性,确保商业决策的有效性。然而,严格的治理模式限制了开发者的灵活性,尤其是在面对多模态数据和AI应用时。为应对这些挑战,Dateworks进行了重大革新,包括云原生化、开放性增强及面向开发者的改进。通过Kubernetes作为资源底座,Dateworks实现了更灵活的任务调度和容器化支持,连接更多云产品,并提供开源Flowspec和Open API,提升用户体验。
|
19天前
|
Cloud Native
邀您参加云原生高可用技术沙龙丨云上高可用体系构建:从理论到实践
云原生高可用技术专场,邀您从理论到实践一起交流,探索云上高可用体系构建!
|
25天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
30天前
|
Cloud Native JavaScript Docker
云原生技术:构建现代应用的基石
在数字化转型的浪潮中,云原生技术如同一艘承载梦想的航船,引领企业驶向创新与效率的新海域。本文将深入探索云原生技术的核心价值,揭示其如何重塑软件开发、部署和运维模式,同时通过一个简易代码示例,展现云原生应用的构建过程,让读者领略到云原生技术的魅力所在。
|
2月前
|
运维 Cloud Native Docker
云端漫步:构建你的第一个云原生应用
在这篇文章中,我们将一起踏上一段激动人心的旅程,探索如何从零开始构建一个云原生应用。我们将深入理解云原生的核心概念,并通过实际代码示例,学习如何利用云平台的强大功能来部署和管理应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的指导和启发。让我们一起开启这场云端之旅,发现云原生应用的魅力吧!
40 3
|
2月前
|
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 部署等内容。
73 5
|
2月前
|
Cloud Native 持续交付 云计算
云原生技术深度探索:构建现代化应用的基石####
【10月更文挑战第21天】 本文将深入探讨云原生技术的核心概念、关键技术及其在现代软件开发中的应用。我们将从容器化、微服务架构、持续集成/持续部署(CI/CD)、无服务器架构等关键方面展开,揭示这些技术如何共同作用,帮助企业实现高效、弹性且易于维护的应用部署与管理。通过实例分析,展现云原生技术在实际项目中的显著优势,为读者提供一套全面理解并应用云原生技术的指南。 ####
42 2
|
2月前
|
运维 Kubernetes Cloud Native
云原生架构:构建现代应用程序的基石####
本文将深入探讨云原生架构的核心概念、关键特征及其对现代软件开发的重要性。不同于传统的摘要概述,我们将通过一个生动的案例引入——想象一下,一家初创企业如何在短短几个月内,从零开始构建起一个能够支撑数百万用户访问量、具备高可用性与弹性伸缩能力的在线服务平台。这个过程中,云原生技术扮演了怎样的角色?它是如何帮助这家企业快速响应市场变化,同时保持系统稳定性和成本效益的?带着这些问题,让我们一起揭开云原生架构背后的神秘面纱。 ####
|
2月前
|
监控 Cloud Native 微服务
云端漫步:探索云原生应用的构建与部署
【10月更文挑战第32天】在数字时代的浪潮中,云原生技术如同一艘航船,承载着企业的梦想驶向未知的海洋。本文将带你领略云原生应用的魅力,从基础概念到实战操作,我们将一步步揭开云原生的神秘面纱,体验它如何简化开发、加速部署,并提升系统的可扩展性与可靠性。让我们一起启航,探索云原生的世界!