数据仓库可以理解为一个较大的数据集合,主要用于数据分析和决策支持。 数仓不生产数据,所有数据来源于业务系统。业务系统数据较为分散、异构、不统一所以需要数仓进行数据整合。 ## 一、数仓分层 数仓分层是为了更好的组织、管理、维护数据,分层只是解偶的手段之一。通常情况下数仓分为3到4层即可(根据公司业务复杂度进行调整)。DWS和ADS层的表结构不是一次成型的,会在业务过程中逐渐变化。 数仓分层本质是空间换时间的思想,通过数据冗余将复杂的数据处理统计过程分摊到对应层。 | 名称 | 用途 | 说明 | 涉及问题点| | ---- | ---------- | ---- |----| | ODS | 数据接入层 | 负责接入其他业务系统的原始数据 |异构数据源、数据库转换、ETL| | DWD | 清洗层 | ODS层清洗处理后的,符合数仓标准的数据 |数据对标、自动化清洗、数据量统计| | DWS | 汇总层 | 基于业务指标对DWD表进行汇总得到的宽表、可通过ADS层反推表结构 |业务梳理、需考虑应用层需求| | ADS | 应用层 | 对DWS层宽表再次提取出能直接在业务或BI中使用的数据,通常不会包含太多维度 || 数据分层的场景: 1. 公司业务简单,且相对比较固定,数据涞源不多,结构也清晰,需求也不多,可以使用ods+dwd+dws,三层足矣,ods起到解耦业务数据库+异构数据源的问题,DWD解决数据脏乱差的问题,DWS直接面向前台业务需求。 2. 公司业务一般复杂,每年跟着战略变,那中规中矩的设计4层,多一层DWB(轻度汇总层)。每年按照战略调整一次,工作量也不会太大,最重要的是能够保证底层结构的稳定和数据分析的可持续性。 3. 公司业务非常复杂,业务线众多,那就在4层基础上加一层。 ## 二、数据治理 + 数据接入、清洗标准 + 标准表定义 ## 三、ETL + DataX ## 四、数据分析 + 疫情人员伴随 + 区域伴随 + 人员轨迹 ## 五、大数据组件 ### 5.1 Hadoop ### 5.2 Hbase ### 5.3 Hive ### 5.4 Kafka