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

数据仓库:后台服务器就十几张表,为什么要建几十张表的数仓? - Binge

引言

初学数据仓库时,心中多少会有一个困惑。那就是后台服务器也就十几张表,为什么使用分层架构+维度建模搭建数仓时就要创建几十张甚至上百张表?这就好比发面馒头,放到蒸笼一蒸,个头就变大了不少。

那数据仓库是不是把一个简单的问题搞得更复杂了呀?

呵呵,这正是数据仓库的分层架构+维度建模的核心价值所在。让我详细解释这个现象背后的原理。

数据仓库到底有何价值?

我们知道,企业耗费精力搭建数据仓库,目的是为公司的服务或产品做分析数据,最终为公司决策者提供更可靠的数据依据,这就是所谓的商业BI(商业智能)。现在都信息时代了,如果公司老板还在靠拍脑袋做决定,想一想就很不靠谱。

如果公司没有数据仓库,那是不是就不能做分析数据呀?当然不是。

人家有些小微公司,就靠一张 excel 表格就搞定了,照样做数据分析。当然,那是因为小微公司的服务或产品规模小,数据量也就很有限,excel 表格本身就自带很多数据分析功能,足够小公司使用了。

如果觉得 excel 表格分析能力有限,那么就可以使用 python 做数据分析。因为 python 有更强大的数据分析库,比如 numpy、pandas等。不过,这需要你得有一定的 python 编程能力,这对于普通人来说是有门槛的。

那公司大了,数据量也更大,excel 表格就已经容纳不下了,那就要用专门的后台数据库来装,比如 MySQL、Oracle、PostgreSQL。

我们知道,这些都是关系型数据库表,并且支持 SQL 语言,而 SQL 语句具有极强的查询能力,我们通过编写 SQL 语句就可以满足各种数据分析要求。

既然如此,那不就没数据仓库啥事了呀?别着急。

这里存在两个问题。

问题一:数据库不保存历史记录

也就是说,数据库里保存的数据永远是当前状态的数据。比如我修改一条数据库记录,那么它就会覆盖以前的记录。如果我想要查询修改前的记录,那肯定是查不到了。

而数据分析不仅要分析当前的数据,也要分析以前的数据。比如分析用户流失数,也就是之前活跃过的用户,最近一段时间未活跃。

问题二:随着数据量增大查询性能变差

一般表记录达到 2000 万行‌,当然,这个数字并非一个硬性规定,而是一个基于经验的性能拐点提示,全表扫描等操作的性能会显著下降。‌

而数据分析的需求中,有很多都需要做统计,需要全表扫描。如果表记录达到上亿,那数据分析的性能就会更差,耗时更久。

这两个问题对于企业来说,哪一个都是无法接受的。

随着大数据技术的兴起,分布式数据存储和并行计算,大大提升了数据存储和计算能力,为数据仓库提供了底层基座。

数据仓库的价值在于解决的数据库存在的两大问题。

OLTP 和 OLAP

难道数据库自身就无法解决这两大问题吗?是的。

因为 MySQL、Oracle、PostgreSQL 等数据库的设计并不是为数据分析而来,它们更在乎事务处理和数据一致性等,也就是所谓的 OLTP(联机事务处理),它更适合用于后台服务器的数据存储,以支撑业务交易。

而数据仓库的设计则是为数据分析而来,它能够存储海量的历史记录,支持复杂的聚合分析,数据分析性能更好,耗时更短,也就是所谓的 OLAP(联机分析处理)。

分层架构+维度模型

说了半天,似乎还是没有解释“后台服务器就十几张表,为什么要建几十张表的数仓?” 是的。

我们知道,数据仓库是为数据分析而生,它自然要解决数据库存在的两大问题。

那它是如何解决的呢?或者说,它解决问题的思路如何?

来看第一个问题,数据仓库必须可以保存历史记录。

这个问题比较好办。首先,数据仓库采用分布式存储,比如 HDFS 是分布式文件系统,HBase、MongeDB 等也是分布式数据库,支持横向扩展,只要增加服务器,理论上可以支持无限存储。接着,就可以通过datax、flume、sqoop等采集工具将数据采集到数据仓库中。数据采集分为全量同步和增量同步,全量同步就是把数据库中所有数据都采集,增量同步就只采集有变化的数据,这样数据仓库就可以保存历史记录了。

来看第二问题,数据仓库必须有更好的查询性能。

未完待续

http://www.jsqmd.com/news/69157/

相关文章:

  • vue2项目引入vue-lazyload实现图片懒加载
  • 第四次博客作业
  • 芯片腾飞
  • 2025视觉检测设备权威测评榜单正式发布
  • 画图工具
  • 大学生必备APP精选:助力学业与生活的实用工具
  • 2025年地毯品牌最新推荐榜,聚焦企业技术创新、原料品质与市场口碑深度解析羊毛,无胶,可拆洗双层,客厅,卧室,中古风,儿童房,可拆洗,床边,无胶防水地毯公司推荐
  • 中美跨境国际快递配送清单:轻小件低价寄,带电_特货合规清关
  • JVM运营内存清空查看
  • 实用指南:深度学习:从零开始手搓一个浅层神经网络(Single Hidden Layer Neural Network)
  • Linux《Socket编程Tcp》 - 指南
  • 【C语言】结构体
  • 2025 年 12 月上海逃生装备厂家权威推荐榜:聚焦逃生滑道、缓降管、应急器材,解析智能与柔性技术的安全守护之选
  • 2025年中国珍珠奶茶加盟TOP10一线品牌榜
  • 2025最新油田助剂厂家推荐榜:实力企业赋能油气开发,全国优质供应商精选
  • 博弈论模型中的学习与算法设计
  • 《Zephyr RTOS 深度学习指南与生成式AI结合方法探讨》第六章 - 详解
  • 关于敏感信息检测技术的理论知识
  • 自定义拦截器不生效问题记录
  • 102302122许志安作业4
  • Logo设计机构权威选择指南:2025年十大战略型设计服务商深度解析
  • 2025年最新垃圾分类/处理/分拣设备实力厂家TOP5深度解析
  • 纯前端也能用大模型?我的本地推理 + 云端推理混合方案经验
  • 2025 激光焊接机权威榜单出炉!10 大厂家硬核 PK,国产化技术领跑全球
  • 揭秘姜胖胖韩式烤肉连锁加盟:高知名度与好口碑背后的秘密
  • Q:RabbitMQ 安装教程(openEuler 22.03 LTS-SP3)
  • 大学生必备App全攻略:从学习到生活,这几款神器让你轻松拿捏校园时光
  • 你的故事如何打动梦校?留学中介 TOP8 文书能力排行榜
  • 大学生必备 APP 清单,错过血亏!
  • 留学必备APP全攻略:从学习到生活,这几款神器让你轻松适应海外生活