惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
I
InfoQ
博客园_首页
G
Google Developers Blog
爱范儿
爱范儿
Last Week in AI
Last Week in AI
量子位
阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
月光博客
月光博客
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

任霏博客

我将关闭服务器:AI彻底掐死了奄奄一息的个人博客 - 博客文章 - 任霏的个人博客网站 Vibe Coding 实现本地模型 Token 自由 IntelliJ IDEA + LM Studio + LM Link + Continue - 博客文章 - 任霏的个人博客网站 1Password涨价后,别急着退订1Password,这个操作能帮你省25% - 博客文章 - 任霏的个人博客网站 我,吃饱了撑的注册了个域名,Cloudflare账号没了,不建议将域名放在Cloudflare - 博客文章 - 任霏的个人博客网站 临时邮箱:保护隐私与免骚扰的新方式 - 博客文章 - 任霏的个人博客网站 价值4100万美元SOL被盗SwissBorg在Solana上遭遇安全事件超200万枚ETH排队退出质押 - 博客文章 - 任霏的个人博客网站 注意 Web3 钱包遭遇 NPM 超大规模供应链攻击投毒事件 - 博客文章 - 任霏的个人博客网站 我受到以太坊ERC-20假代币地址投毒攻击记录一下大家谨防上当受骗 - 博客文章 - 任霏的个人博客网站 在2025年使用显卡 NVIDIA RTX 2080 Ti 挖矿收益记录和分析还能不能挖矿 - 博客文章 - 任霏的个人博客网站 分享我是如何成功戒烟的经验(包含失败的经验) - 博客文章 - 任霏的个人博客网站 在 OpenWRT 中配置 PassWall2 插件的教程记录 - 博客文章 - 任霏的个人博客网站 Office Professional Plus 2019 VL 版下载与 KMS 激活 - 博客文章 - 任霏的个人博客网站 最近几天我的 CDN 流量受到来自电信[山东烟台]、[江苏扬州]两地家庭宽带的攻击 - 博客文章 - 任霏的个人博客网站 自建AI服务器使用PVE配置显卡直通虚拟机安装驱动、CUDA和cuDNN运行LLM大模型进行AI炼丹 - 博客文章 - 任霏的个人博客网站 各代英特尔Intel芯片组主板适配兼容的CPU和DDR内存数据统计 - 博客文章 - 任霏的个人博客网站 GitLab Global 国际站将在60天内删除中国大陆、香港、澳门地区的账号 - 博客文章 - 任霏的个人博客网站 Github Copilot Free 开放免费版所有人均可使用 OpenAI GPT-4o、Anthropic Claude 3.5 AI 代码生成服务 - 博客文章 - 任霏的个人博客网站 Cloudflare 更新了订阅协议明确禁止优选IP和搭建梯子的行为 - 博客文章 - 任霏的个人博客网站 Linux(systemd)手动离线安装二进制(binary)MairaDB数据库指定版本 - 博客文章 - 任霏的个人博客网站 流程引擎 Flowable/Activiti 无法启动报错:liquibase - Waiting for changelog lock.... - 博客文章 - 任霏的个人博客网站 Spring Boot 全局异常捕获 ControllerAdvice 无法捕获 过滤器(Filter)和拦截器(Interceptor)中的异常 - 博客文章 - 任霏的个人博客网站 Freenom 收回了全部免费域名(.tk/.cf/.gq/.ga/.ml) - 博客文章 - 任霏的个人博客网站 Alibaba Druid 数据库连接池 takeLast() AQS 死锁导致程序无响应 - 博客文章 - 任霏的个人博客网站 你的网站加入 HSTS preload 预加载列表了吗 - 博客文章 - 任霏的个人博客网站 我的博客网站接入使用 Cloudflare 的架构分享 - 博客文章 - 任霏的个人博客网站 在 Ubuntu 上的 Nginx 高并发配置实践 - 博客文章 - 任霏的个人博客网站 技术分析黑客敲诈勒索站长的新手法百度对此也无能为力 - 博客文章 - 任霏的个人博客网站 百度站长平台快速收录权限和sitemap提交权限被全部收回 - 博客文章 - 任霏的个人博客网站 极狐 GitLab 免费时代结束不升级付费账号将禁止登陆 - 博客文章 - 任霏的个人博客网站 免费.ml域名10年委托合同到期被马里共和国收回域名经营权 - 博客文章 - 任霏的个人博客网站
数据仓库的概念(二):数据仓库的分层设计 - 博客文章 - 任...
任霏 · 2021-02-03 · via 任霏博客

教程索引目录请访问:《大数据技术入门级系列教程

上一篇我们了解了数据仓库的作用,随着数据随时间流入我们的数据仓库以后,数据的种类和数量将越来越庞大,如果不加以治理和设计,我们查询取用数据时将遇到很大的问题,所以就需要对数据仓库进行设计,让数据分门别类的放到自己应该去的地方,方便我们日后随时调用查取。

任霏注:本文中讲到的数仓分层设计大多源自国内阿里巴巴的《大数据之路》,国外英文文献中搜索不到 DWD/DWS 等描述,而且这个分层设计只是推荐并没有标准答案,有可能并不适合你的行业数据结构,这个思想会有利于构建自己行业的数据结构和模型。

为什么要分层

如果我们不对原始数据进行治理,当数据达到海量的时候,你会发现当你想要一个分析图表的时候,数据查询会非常吃力,可能要关联几百个表,扫描全部几TB的数据,所以我们可以用空间换时间:通过建设多层次的数据模型供用户使用,避免用户直接使用操作原始数据,可以更高效的访问数据。同时可以将复杂的问题分解成单个简单的步奏来完成,比较简单和容易理解。

数仓分层

注意数仓分层并没有标准答案,我这里讲述的是阿里巴巴的解决方案,大部分将数仓分为四层,虽然名称和缩写可能不太一样,请领会里面的思想,不要纠结分层必须是哪些层。

根据阿里的大数据计算服务(MaxCompute,原名ODPS)以及阿里巴巴的《大数据之路》中给出的解决方案,数仓将分为四层:数据层( Operational Data Store, ODS)、明细数据层( Data Warehouse Detail , DWD )、汇总数据层( Data Warehouse Summary, DWS )和 应用数据层(ApplicationDataStore, ADS)。这里引用阿里云对MaxCompute的描述:

阿里云对MaxCompute的描述

数据层( Operational Data Store, ODS)

ODS 有时候我们也叫它贴源层,因为这里存放的是最原始的数据,我们什么也不改变,就保留原始数据的内容,结构上与源系统保持一致,是数据仓库的数据准备区。

我们从原始系统抽取来的数据就存放在这里,从这里进入我们的大数据平台,在这个区域我们只做查询操作,不要进行修改和删除任何数据!

明细数据层( Data Warehouse Detail , DWD )

DWD 这层和 ODS 层保持一样的数据结构,只不过在从 ODS 里抽取到 DWD 的时候这个过程叫 ETL,后面我们会再讲 ETL,在抽取时对数据进行清洗加工,提供一定的数据质量保证,提供更干净的数据。

同时会进行维度退化,当一个维度没有数据仓库需要的任何数据时,就可以退化维度,将维度退化至事实表中,减少事实表和维表的关联。后面我们再讲维度表和事实表,这里只讲数据仓库分层。

汇总数据层( Data Warehouse Summary, DWS )

这层主要进行轻度汇总,也称为宽表层,有的地方叫数据服务层( Data Warehouse Service, DWS ),不用纠结叫法和缩写翻译,请领会治理思想。

这里表的数量将大幅度下降,大多按照主题进行划分,例如订单、用户等,但这些表的字段比较多,所以也叫宽表,由于上一层 DWD 进行了维度退化,这里的数据可能出现冗余,例如订单ID可能存在于多个事实表中,这是正常的,用于提供后续的业务查询。

然后补充上阿里对这层的描述,读着有点拗口:

以分析的主题对象作为建模驱动,基于上层的应用和产品的指标需求,构建公共粒度的汇总指标事实表,以宽表化手段物理化模型。构建命名规范、口径一致的统计指标,为上层提供公共指标,建立汇总宽表、明细事实表。

应用数据层(ApplicationDataStore, ADS)

这层有的叫做数据集市层( Data Mart, DM),顾名思义,这里的数据就是给顶层的应用程序消费使用,例如整合汇总成分析某一个主题域的报表数据为各种统计报表提供数据。