为什么不建议在操作数据库上建立数据仓库

现有我对此问题的几个思考,如有不对还请纠正,如果有不足,还请补充

  1. 数据仓库主要是进行查询,常常需要对数据进行汇总和聚集数据记录的操作,需要的仅仅是只读操作,而操作数据库的写操作,会伴随锁、事务等,这些都会远远降低OLAP查询的效率

  2. 数据仓库需要的是历史数据,而不是经常变化的数据,对于OLAP操作,如果每秒数据都在变化,那么将会重复进行很多次的汇总和聚合,极大降低数据仓库的效率

  3. 数据仓库中的数据往往是来自于异构源的数据(整理、聚集和汇总)。而操作数据库上存在的往往是原始数据,而在异构系统中,往往低同一维度的单位都会不同,那么如果直接拿来分析操作,将会对数据库造成莫大的压力!

阅读 3.4k
1 个回答

数据仓库 并不是不能建在数据库之上。主要看数据库能否满足需求。
1 数据仓库中所有的数据都是结构化数据。并且采集后都可以归纳到数据库。
2 数据库可以容纳下所有数据仓库的数据。
3 离线计算的时间在容忍范围之内

满足以上三点可以使用数据库
现实是
1数据来源多样 非结构话数据多
2 一般数据库难以处理1T以上的数据
3 需要分布式计算

所以很少数据仓库完全使用数据库 但往往包含数据库在数据仓库之内

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题