基于Spark快速构建数仓项目
重点问题
数据仓库解决了什么业务问题,它和传统数据库的区别是什么?
对数据仓库的基础架构有大致的了解。
使用 Spark 可以构建数据仓库的哪些核心能力?
如何使用 Spark Core/Streaming 扩展数据源?
如何使用 Spark 进行 OLAP?
哪些操作是窄依赖
数仓的特性有哪些
什么是数据仓库
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。 ——数据仓库之父比尔·恩门
基于Spark集成数据源(ETL)
基于Spark SQL 进行OLAP分析
QA
从etl到事实表维表过程中,etl的结果也会在数仓中吗? 那对于数据源表新增字段等ddl,有什么解决办法吗?
这是一个比较细节的技术问题,表结构变化了,原始数据怎么处理;其实这个要看具体的存储模块能不能解决了;新增字段这种场景下,如何能够兼容老的数据结构(新增字段自动填充null),就可以解决;
碰到复杂的ETL逻辑的时候,比如说生成大宽表的时候,通常都是上百个字段,那spark sql适用这类的复杂逻辑么?
理论上SQL是能够表达的,但是处理太过复杂。模型化的数据可以使用程序自动生成,对于这种上百列的数据任务处理起来会更容易一点;
spark sql能否实现表结构的合并、基于原有属性派生新属性等较复杂的数据转换操作?
使用自定义 UDF