数据仓库理论与实践

本文深入探讨了数据仓库理论,包括数据库与数据仓库的区别、数据建模和维度建模步骤。介绍了Hive离线数仓的实践,如数仓分层(ODS、DWD、DWS、ADS)及其作用,以及数据采集工具Flume和日志服务器日志采集。此外,详细阐述了用户画像系统的构建,包括标签计算和存储。最后讨论了Hive的相关优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据仓库理论与实践(用户画像)



Java、大数据开发学习要点(持续更新中…)


一、数仓理论

1.1 数据库和数据仓库的区别

  • 数据库和数据库软件
      数据库软件是一种物理概念,用于实现数据库。数据库是一种逻辑概念,用于存放数据,数据库由各种表组成,表则能表达数据的二维关系,而数据库的表能用二维表现多维关系。
  • 数据仓库
      数据仓库从逻辑上讲与数据库没有什么差别,功能都是用于存放数据。但从数据用途和数据量上来讲,数据仓库区别于数据库是面向数据分析和数据挖掘的,即用于BI(商业智能)的。数仓面向主题、集成数据、数据时间相对稳定、反映数据历史变化。
  • 两者的具体差别
  • 数据库是面向事务,存储数据是日常业务相关的,用于联机事务处理(OLTP)。数据主要针对业务的联机数据操作,主要涉及增删改查。主要关注操作的响应时间、数据并发安全和数据完整性等问题。主要用于操作型处理。(建模一般符合三范式,利于数据增删改查)
  • 数据仓库是面向主题,存储数据来源于日志与数据库,用于联机分析处理(OLAP),主要用于各个业务主题历史与实时的数据分析。主要用于决策管理。(建模一般通过维度建模,利于数据查询)

1.2 数据建模理论

  • 三范式建模(业务系统数据库建模):

    1. 第一范式:表中的每一列都不可分割。
    2. 第二范式:在第一范式基础上,非主键必须依赖主键。(消除非主属性对主码的部分函数依赖)
    3. 第三范式:在第二范式基础上,任何的非主属性不依赖于其他非主属性。(消除非主属性间传递函数依赖)

    实际就是将业务表尽可能拆分使得对表格增删的操作对其他表格不会造成影响

  • 维度建模(数仓建模):根据表的类型分为事实表维度表

    1. 事实表就是记录事实、度量、维表主键的表(什么人做了什么事情的的记录,如下单、退款、评价等);
    2. 维度表就是对事物观察的角度(比如购买是在什么时间点在哪买了什么商品),即对同一个指标的统计可以从不同的维度统计,维度表就记录了不同的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值