当前位置: 首页 > news >正文

数据中台-数仓分层结构【Doris】

数据仓库采用Doris进行搭建,并分为ODS/DWD/DWM/DWS/ADS等层级结构进行分层数据存储。Doris是百度开源的MPP数据库,可有效支撑大数据量的数据计算和分布式扩展存储。


数据仓库分层架构设计目标

  1. 解耦与复用性:通过分层隔离原始数据与业务逻辑,提升数据复用性。

  2. 高效计算:逐层聚合减少重复计算,优化查询性能。

  3. 数据治理:规范数据血缘、质量监控与权限管理。

  4. 灵活扩展:适应业务变化,快速响应新需求。


基于Doris的分层架构设计

1. ODS层(Operational Data Store)
  • 作用

    • 原始数据接入层,存储未经处理的业务系统数据(全量/增量)。

    • 数据格式与来源系统一致,保留历史变更痕迹(如日志、事务表)。

  • Doris实现策略

    • 表设计

      • 按业务主题分区(如dt=YYYYMMDD),支持增量数据按天/小时分区。

      • 使用 Duplicate数据模型,存储原始明细数据,避免数据丢失。

    • 数据接入

      • 通过Flink CDC、Kafka或DataX实时/批量同步MySQL、日志等数据源。

    • 优化点

      • 启用冷热数据分离策略,将历史数据转存至低成本存储(如HDFS)。

2. DWD层(Data Warehouse Detail)
  • 作用

    • 清洗、标准化ODS层数据,解决脏数据、缺失值、编码不一致等问题。

    • 构建业务一致性维度,生成事实表与维度表。

  • Doris实现策略

    • 表设计

      • 使用 Aggregate/Unique数据模型,按业务主键去重,确保数据唯一性。

      • 定义明确的Schema(如字段类型、约束),添加注释说明业务含义。

    • ETL流程

      • 通过Spark/Flink进行数据清洗(如过滤无效记录、补全默认值)。

      • 关联维度表生成宽表(如用户ID转用户名、商品ID转类目)。

    • 优化点

      • 利用Doris的 物化视图 预计算常用维度组合,加速查询。

3. DWM层(Data Warehouse Middle)
  • 作用

    • 轻度汇总层,基于DWD层数据进行跨主题的中间层聚合(如按小时/天粒度统计)。

    • 服务于共性业务指标(如UV、PV、交易额),减少上层重复计算。

  • Doris实现策略

    • 表设计

      • 使用 Aggregate数据模型,预聚合常用维度(如时间、地域、产品线)。

      • 按时间范围分桶(如按周分桶),提升范围查询性能。

    • 数据处理

      • 通过定时任务(Airflow/DolphinScheduler)调度SQL实现增量聚合。

    • 优化点

      • 针对高频查询指标,设置 Bloom Filter索引 加速过滤。

4. DWS层(Data Warehouse Service)
  • 作用

    • 高度汇总层,面向业务主题的宽表设计(如用户画像、订单分析)。

    • 提供可直接查询的指标数据,支持OLAP分析与BI报表。

  • Doris实现策略

    • 表设计

      • 使用 Duplicate/Aggregate模型,按业务场景设计宽表(如用户行为宽表含点击、购买、浏览)。

      • 分区键选择高频过滤字段(如user_idproduct_id)。

    • 数据加工

      • 通过Doris的 Rollup表 实现多维度上卷(如从省份到国家层级汇总)。

    • 优化点

      • 启用 动态分区 自动管理分区生命周期。

5. ADS层(Application Data Service)
  • 作用

    • 应用数据层,直接对接前端业务系统(如报表、API接口)。

    • 按需加工个性化指标,满足实时/离线场景的快速响应。

  • Doris实现策略

    • 表设计

      • 使用 Unique模型 存储最终结果数据(如每日营收报表、实时大屏指标)。

      • 根据查询需求设置合适的分桶数(避免数据倾斜)。

    • 数据同步

      • 通过Doris的 External Table 直接查询Hive/HDFS数据,减少数据迁移成本。

    • 优化点

      • 为高频查询配置 查询缓存(如Session级别缓存)。


Doris分层架构的核心技术优势

  1. 高性能查询

    • MPP架构 + 列式存储,支持高并发复杂查询。

    • 分区与分桶策略结合,减少数据扫描范围。

  2. 灵活数据模型

    • Aggregate/Unique/Duplicate模型适配不同场景。

    • 物化视图与Rollup表实现预计算加速。

  3. 实时与离线融合

    • 支持批量数据导入(Broker Load)与实时流写入(Routine Load)。

  4. 资源隔离

    • 通过资源标签(Resource Tag)隔离不同层级负载,保障核心任务稳定性。


分层数据流转示意图

sql

复制

下载

数据源 → ODS层(原始数据)  ↓ ETL清洗  
DWD层(明细数据)  ↓ 轻度聚合  
DWM层(中间汇总)  ↓ 主题宽表构建  
DWS层(服务数据)  ↓ 业务加工  
ADS层(应用数据) → BI/报表/API

总结

基于Doris的分层架构设计,通过 ODS→DWD→DWM→DWS→ADS 逐层加工,实现了数据从原始采集到业务可用的高效转化。Doris凭借其实时分析能力、灵活数据模型与分布式架构,成为支撑数据中台建设的理想引擎,尤其适用于高并发查询、实时报表与复杂分析场景。

相关文章:

数据中台-数仓分层结构【Doris】

数据仓库采用Doris进行搭建,并分为ODS/DWD/DWM/DWS/ADS等层级结构进行分层数据存储。Doris是百度开源的MPP数据库,可有效支撑大数据量的数据计算和分布式扩展存储。 数据仓库分层架构设计目标 解耦与复用性:通过分层隔离原始数据与业务逻辑&a…...

使用Jmeter对AI模型服务进行压力测试

一、JMeter介绍 Apache JMeter 是一款开源的性能测试工具,主要用于评估Web应用程序的负载和性能。它支持多种类型的测试,包括但不限于: 负载测试:模拟大量用户访问系统以检测其在高负载下的表现。性能测试:评估系统在…...

测试用例管理平台哪些好用?9款主流测试平台对比

在当今软件开发领域,测试用例管理平台已成为提升产品质量和团队协同效率的关键工具。本文将围绕“测试用例管理平台”这一核心关键词,全面解析市面上9款主流产品,帮助企业管理者和测试团队快速了解各平台的核心优势和适用场景,从而…...

C++函数传值与传引用对比分析

在C编程中,函数参数传递的方式直接影响程序的性能、内存管理以及代码逻辑的正确性。传值(Pass by Value)和传引用(Pass by Reference)是两种最常用的参数传递方式,它们各有优缺点,适用于不同的场…...

【se-res模块学习】结合CIFAR-10分类任务学习

继CIFAR-10图像分类:【Res残差连接学习】结合CIFAR-10任务学习-CSDN博客 再优化 本次训练结果在测试集上的准确率表现可达到90%以上 1.训练模型(MyModel.py) import torch import torch.nn as nnclass SENet(nn.Module): # SE-Net模块def…...

二元随机响应(Binary Randomized Response, RR)的翻转概率

随机响应(Randomized Response)机制 ✅ 回答核心: p 1 1 e ε 才是「翻转概率」 \boxed{p \frac{1}{1 e^{\varepsilon}}} \quad \text{才是「翻转概率」} p1eε1​​才是「翻转概率」 而: q e ε 1 e ε 是「保留真实值」…...

湖北理元理律师事务所:债务优化中的“生活保障”方法论

债务危机往往伴随生活质量骤降,如何在还款与生存间找到平衡点,成为债务优化的核心挑战。湖北理元理律师事务所基于多年实务经验,提出“双轨并行”策略:法律减负与生活保障同步推进。 债务优化的“温度法则” 1.生存资金预留机制…...

RFID智能书柜:精准定位,找书告别 “大海捞针”

在传统图书馆的浩瀚书海,找书无异于在错综复杂的迷宫里徘徊。读者在书架间来回奔波,耗费大量时间精力,还常一无所获。RFID智能书柜的出现,彻底改写了这一局面。它搭载的RFID读写器与天线协同工作,能实时精准定位贴有RF…...

视觉图像处理及多模态融合初探

(一)指标汇总 1. 图像采集与质量提升 指标描述可能的量化值图像清晰度反映图像中物体的边缘和细节的清晰程度例如:1-10 分(1 为极不清晰,10 为非常清晰)噪声水平表示图像中随机噪声的多少例如:噪声强度百分比(0%-100%)畸变程度描述图像中物体形状的变形程度例如:畸变…...

射频前端模组芯片(PA)三伍微电子GSR2337 兼容替代SKY85337, RTC7646, KCT8247HE

射频前端模组芯片(PA)三伍微电子GSR2337 兼容替代SKY85337, RTC7646, KCT8247HE 型号GSR2337 ‌频率‌: 2.4 GHz ‌类型‌: FEM (PALNASW) ‌WIFI‌: 11n/ac/ax ‌功率‌: 21dBmEVM-43dB5V ‌封装‌: 3*3 mm ‌电压‌: 3.3V & 5V ‌P2P‌: SKY85…...

python 接收c++的.so传的jsoncpp字符串

叮!快来看看我和文心一言的奇妙对话~点击链接 https://yiyan.baidu.com/share/57o6vGa3GY -- 文心一言,既能写文案、读文档,又能绘画聊天、写诗做表,你的全能伙伴! 要从 C 动态链接库 (.so 文件) 中接收 JS…...

EasyRTC嵌入式音视频通话SDK驱动智能硬件音视频应用新发展

一、引言 在数字化浪潮下,智能硬件蓬勃发展,从智能家居到工业物联网,深刻改变人们的生活与工作。音视频通讯作为智能硬件交互与协同的核心,重要性不言而喻。但嵌入式设备硬件资源受限,传统音视频方案集成困难。EasyRT…...

Day19 常见的特征筛选算法

常见的特征筛选算法 1. 方差筛选 原理 :方差衡量的是数据的离散程度。在特征筛选中,如果某个特征的方差很小,说明该特征在不同样本上的值差异不大,那么它对模型的区分能力可能很弱。方差筛选就是通过设定一个方差阈值&#xff0…...

如何使用极狐GitLab 软件包仓库功能托管 terraform?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 Terraform 模块库 (BASIC ALL) 基础设施仓库和 Terraform 模块仓库合并到单个 Terraform 模块仓库功能引入于极狐GitLab 15.1…...

15前端项目----用户信息/导航守卫

登录/注册 持久存储用户信息问题 退出登录导航守卫解决问题 持久存储用户信息 本地存储:(在actions中请求成功时) 添加localStorage.setItem(token,result.data.token);获取存储:(在user仓库中,state中tok…...

重定向及基础实验

1.if指令 if (判断条件){ 执行语句; } if的正则表达式 #比较变量和字符串是否相等,相等时if指令认为该条件为true,反之为false ! #比较变量和字符串是否不相等,不相等时if指令认为条件为true,反之为false ~ #区分大小写字符&…...

CBO和HBO区别及介绍

CBO(Cost-Based Optimizer)和 HBO(Heuristic-Based Optimizer)是两种数据库查询优化器的类型,它们在优化策略和实现方式上有显著的区别。以下是详细的解释和对比: 1. CBO(Cost-Based Optimizer…...

华为HCIP-AI认证考试版本更新通知

​华为HCIP-AI认证考试版本更新通知​ ​HCIP-AI-EI Developer V2.5认证发布​ 华为官方宣布,​HCIP-AI-EI Developer V2.5认证考试将于2025年3月31日正式上线。新版认证聚焦AI工程化开发与行业实践,新增大模型部署优化、AI边缘计算等前沿技术内容&…...

【算法-链表】链表操作技巧:常见算法

算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟 链表是一种灵活的数据结构,广泛用于需要频繁插入和删除的场景。掌握链表的常见操作技巧,如插入、删除、翻转和合并等,能帮助开发者更…...

【探寻C++之旅】第十三章:红黑树

请君浏览 前言1. 红黑树的概念1.2 红黑树的规则1.3 红黑树如何确保最长路径不超过最短路径的两倍?1.4 红黑树的效率 2. 红黑树的实现2.1 红黑树的结构2.2 红黑树的插入情况1:变色情况2:单旋变色情况2:双旋变色代码演示 2.3 红黑树…...

JavaScript 性能优化全攻略:从基础到实战

引言 在现代 Web 开发中,JavaScript 作为核心语言,其性能直接影响用户体验。无论是单页应用(SPA)还是复杂交互页面,性能优化始终是开发者关注的核心。 本文将从基础策略、最新技巧、常见误区和实战案例四个维度,系统性地解析 JavaScript 性能优化的关键方法,并提供可复…...

Kafka消息队列之 【消费者分组】 详解

消费者分组(Consumer Group)是 Kafka 提供的一种强大的消息消费机制,它允许多个消费者协同工作,共同消费一个或多个主题的消息,从而实现高吞吐量、可扩展性和容错性。 基本概念 消费者分组:一组消费者实例的集合,这些消费者实例共同订阅一个或多个主题,并通过分组来协调…...

HuggingFace与自然语言处理(从框架学习到经典项目实践)[ 01 API操作 ]

本教程适用与第一次接触huggingface与相应框架和对nlp任务感兴趣的朋友,该栏目目前更新总结如下: ​​Tokenizer​​: 支持单句/双句编码,自动处理特殊符号和填充。 批量编码提升效率,适合训练数据预处理。Datasets​…...

uniapp-文件查找失败:‘@dcloudio/uni-ui/lib/uni-icons/uni-icons.vue‘

uniapp-文件查找失败:‘dcloudio/uni-ui/lib/uni-icons/uni-icons.vue’ 今天在HBuilderX中使用uniapp开发微信小程序时遇到了这个问题,就是找不到uni-ui组件 当时创建项目,选择了一个中间带的底部带选项卡模板,并没有选择内置u…...

springboot+vue实现在线网盘(云盘)系统

今天教大家如何设计一个网盘(云盘)系统系统 , 基于目前主流的技术:前端vue,后端springboot。 同时还带来的项目的部署教程。 视频演示 springbootvue实现在线网盘(云盘)系统 图片演示 一. 系统概述 用过百…...

启智平台调试 qwen3 4b ms-swift

以上设置完成后,我们点击新建任务。等待服务器创建和分配资源。 资源分配完成后我们看到如下列表,看到资源running状态,后面有一个调试按钮,后面就可以进入代码调试窗体界面了。 点击任务名称 跳转 访问github失败 加速器开启…...

KAXA凯莎科技AGV通信方案如何赋能智能仓储高效运作?

AGV智慧物流系统融合了先进的自动导航技术和智能控制算法,通过激光雷达、摄像头、激光传感器等多种感知设备,实现仓库内的精准定位与自主导航。系统具备环境实时感知能力,能够动态避障,并基于任务调度智能规划最优路径&#xff0c…...

【AI提示词】费曼学习法导师

提示说明 精通费曼学习法的教育专家,擅长通过知识解构与重构提升学习效能。 提示词 Role: 费曼学习法导师 Profile language: 中文description: 精通费曼学习法的教育专家,擅长通过知识解构与重构提升学习效能background: 认知科学硕士背景&#xff0…...

体绘制中的传输函数(transfer func)介绍

文章目录 VTK volume不透明度传输函数梯度不透明度传输函数颜色传输函数VTK volume VTK (Visualization Toolkit) 中的 Volume(体积)是一个重要的概念,特别是在处理和可视化三维数据时。以下是 VTK Volume 的一些关键概念: 定义: Volume 在 VTK 中代表一个三维数据集,通…...

Algolia - Docsearch的申请配置安装【以踩坑解决版】

👨‍🎓博主简介 🏅CSDN博客专家   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入&#xff01…...

【文档智能】开源的阅读顺序(Layoutreader)模型使用指南

一年前,笔者基于开源了一个阅读顺序模型(《【文档智能】符合人类阅读顺序的文档模型-LayoutReader及非官方权重开源》), PDF解析并结构化技术路线方案及思路,文档智能专栏 阅读顺序检测旨在捕获人类读者能够自然理解的…...

现在的AI应用距离通用agent差的那点儿意思

现在的AI应用距离通用Agent差的那点儿意思 引言:从"生成力"到"行动力" 当前AI应用最显著的进步体现在内容生成能力上——无论是ChatGPT的流畅对话,还是Midjourney的惊艳画作,都展示了强大的生成力。然而,正…...

LeetCode 热题 100 238. 除自身以外数组的乘积

LeetCode 热题 100 | 238. 除自身以外数组的乘积 大家好,今天我们来解决一道经典的算法问题——除自身以外数组的乘积。这道题在 LeetCode 上被标记为中等难度,要求在不使用除法的情况下,计算数组中每个元素的乘积,其中每个元素的…...

分享 2 款基于 .NET 开源的实时应用监控系统

前言 在现代软件开发和运维管理中,实时应用监控系统扮演着至关重要的角色。它们能够帮助开发者和运维人员实时监控应用程序的状态,及时发现并解决问题,从而确保应用的稳定性和可靠性。今天大姚给大家分享 2 款基于.NET 开源的实时应用监控系…...

使用pytorch保存和加载预训练的模型方法

需要使用到的函数 在 PyTorch 中,torch.save() 和 torch.load() 是用于保存和加载模型的核心函数。 torch.save() 函数 主要用途:将模型或模型的状态字典(state_dict)保存到文件中。 语法: torch.save(obj, f, pi…...

Linux/AndroidOS中进程间的通信线程间的同步 - 消息队列

本文介绍消息队列,它允许进程之间以消息的形式交换数据。数据的交换单位是整个消息。 POSIX 消息队列是引用计数的。只有当所有当前使用队列的进程都关闭了队列之后才会对队列进行标记以便删除。POSIX 消息有一个关联的优先级,并且消息之间是严格按照优…...

DNA Launcher:打造个性化安卓桌面,开启全新视觉体验

DNA Launcher是一款专为安卓手机设计的桌面美化软件,旨在为用户提供丰富多样的桌面美化选项和全新的操作逻辑。通过这款软件,用户可以轻松调整桌面布局、更换主题、添加个性化元素,打造出独一无二的手机桌面。它支持多分辨率重新布局&#xf…...

Flink SQL DataStream 融合开发模式与动态配置热加载机制实战

一、为什么需要 SQL 与 DataStream 融合开发? 在实时数仓构建中,Flink SQL 的易用性和声明式优势广受欢迎;但遇到业务逻辑复杂、需要灵活控制时,DataStream API 提供了不可替代的灵活性。 而现实中,我们常常遇到如下痛点: 场景问题解决方式多业务线、多个 Kafka Topic,…...

4.2java包装类

在 Java 里,基本数据类型不具备对象的特性,像不能调用方法、参与面向对象的操作等。为了让基本数据类型也能有对象的行为,Java 提供了对应的包装类。同时,自动拆箱和自动装箱机制让基本数据类型和包装类之间的转换更加便捷。 包装…...

在一台服务器上通过 Nginx 配置实现不同子域名访问静态文件和后端服务

一、域名解析配置 要实现通过不同子域名访问静态文件和后端服务,首先需要进行域名解析。在域名注册商或 DNS 服务商处,为你的两个子域名 blog.xxx.com 和 api.xxx.com 配置 A 记录或 CNAME 记录。将它们的 A 记录都指向你服务器的 IP 地址。例如&#x…...

C++23 views::as_rvalue (P2446R2) 深入解析

文章目录 引言C20 Ranges库回顾什么是Rangesstd::views的作用 views::as_rvalue 概述基本概念原型定义工作原理 应用场景容器元素的移动与其他视图适配器结合使用 总结 引言 在C的发展历程中,每一个新版本都会带来一系列令人期待的新特性,这些特性不仅提…...

Mockoon 使用教程

文章目录 一、简介二、模拟接口1、Get2、Post 一、简介 1、Mockoon 可以快速模拟API,无需远程部署,无需帐户,免费,跨平台且开源,适合离线环境。 2、支持get、post、put、delete等所有格式。 二、模拟接口 1、Get 左…...

15.thinkphp的上传功能

一&#xff0e;上传功能 1. 如果要实现上传功能&#xff0c;首先需要建立一个上传表单&#xff0c;具体如下&#xff1a; <form action"http://localhost/tp6/public/upload"enctype"multipart/form-data" method"post"><input type&…...

G口大带宽服务器线路怎么选

G口大带宽服务器线路选择指南 ​​一、线路类型与特点​​ ​​单线&#xff08;电信/联通/移动&#xff09;​​ ​​优势​​&#xff1a;带宽独享、价格低、延迟稳定&#xff0c;适合单一运营商用户集中场景。​​劣势​​&#xff1a;跨运营商访问延迟高&#xff08;如电信…...

低秩适应(LoRA)与量化LoRA(QLoRA)技术解析

LoRA&#xff1a;从线性代数到模型微调 从矩阵分解理解Lora 假设我们有一个大模型中的权重矩阵&#xff0c;形状为1024512&#xff08;包含约52万个参数&#xff09;。传统微调方法会直接更新这52万个参数&#xff0c;这不仅计算量大&#xff0c;而且存在过拟合风险。 LoRA的…...

Webug4.0靶场通关笔记22- 第27关文件包含

目录 一、文件包含 1、原理分析 2、文件包含函数 &#xff08;1&#xff09;include( ) &#xff08;2&#xff09;include_once( ) &#xff08;3&#xff09;require( ) &#xff08;4&#xff09;require_once( ) 二、第27关渗透实战 1、打开靶场 2、源码分析 3、…...

OpenCV CPU性能优化

OpenCV 在 CPU 上的性能优化涉及多个层次&#xff0c;从算法选择到指令级优化。以下是系统的优化方法和实践技巧&#xff1a; 一、基础优化策略 1. 内存访问优化 连续内存布局&#xff1a;优先使用 cv::Mat::isContinuous() 检查 cpp if(mat.isContinuous()) {// 可优化为单循…...

OpenCV进阶操作:图像的透视变换

文章目录 前言一、什么是透视变换&#xff1f;二、透视变换的过程三、OpenCV透视变换核心函数四、文档扫描校正&#xff08;代码&#xff09;1、预处理2、定义轮廓点的排序函数3、定义透视变换函数4、读取原图并缩放5、轮廓检测6、绘制最大轮廓7、对最大轮廓进行透视变换8、旋转…...

MySQL事务隔离机制与并发控制策略

MySQL事务隔离机制与并发控制策略 MySQL事务隔离机制与并发控制策略一、数据库并发问题全景解析二、事务隔离级别深度解析三、MySQL并发控制核心技术1. 多版本并发控制&#xff08;MVCC&#xff09;2. 锁机制 四、隔离级别实现差异对比五、生产环境最佳实践六、高级优化技巧七、…...

【算法学习】递归、搜索与回溯算法(二)

算法学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言&#xff1a; 在&#xff08;一&#xff09;中我们挑了几个经典例题&#xff0c;已经对递归、搜索与回溯算法进行了初步讲解&#xff0c;今天我们来进一步讲解…...