一、Hive:离线数仓的"元数据管理者"与"SQL翻译官"
它的本质:它是一个构建在Hadoop之上的数据仓库软件(数据仓库工具),而不是一个数据库。
作用:
不存数据:物理数据实际存在HDFS上。
**不直接算数据:**它自己不具备计算能力,而是将用户写的Hive SQL翻译成底层的分布式计算任务,交由它们去执行。
它真正负责的:元数据管理和逻辑建表。它维护了表结构、分区、数据存放在HDFS的哪个路径下等信息。它提供了一套类似SQL的接口,让用户能方便地查询存放在HDFS上的海量文件。
一句话总结:Hive是离线数仓的逻辑视图层和SQL接口,借HDFS存储,借Spark/MapReduce计算。
二、Spark:统一的分布式计算引擎
它的本质:基于内存的分布式计算框架。
准确的作用:
它是"计算引擎",负责"算",基于不负责长期存储(虽然有内存缓存和RDD持久化,但目的是为了加速运算)。
承担及其复杂的数据清洗(ETL)、机器学习、图计算等任务。
一句话总结:数仓的超级算力中心,负责执行各种复杂的处理逻辑。
三、DataX:异构数据源之间的"搬运工"
它的本质:离线数据同步工具。
准确的作用:
它是ETL中的E(Extract抽取)和L(Load加载)。负责在不同数据库、文件系统之间建立管道。
比如:把业务库MySQL的数据全量/增量抽到HDFS/Hive中;把Hive算好的报表结果导出到MySQL供前端展示。
一句话总结:只负责搬运数据,不负责存,也不负责算。
四、ClickHouse:极速单表分析引擎(OLAP)
它的本质:列式存储的MPP架构分析数据库。
作用:
它是存算一体的(数据存在ClickHouse自己的目录里)数据库。
极其擅长海量数据的单表聚合查询。它的列式存储和向量化执行引擎带来了极致的性能。
局限:不擅长复杂的多表JOIN,也不擅长高并发点查。
一句话总结:适合做固定的、大宽表的极速表分析。
五、Doris:综合型实时分析数据库(OLAP)
**它的本质:**现代MPP架构的实时数据仓库。
作用:
也是存算一体的数据库。
主打多表关联、高并发、实时。它兼容MySQL协议,能很好地支持即席查询(Ad-hoc)和实时数据看板。(即席查询(Ad-hoc) 就是"临时提问、当场写 SQL 查数据"然后在几秒钟就能出结果。)
相比ClickHouse,Doris更加全能,能应对更复杂的业务分析场景。
一句话总结:试图"一库多用",解决实时报表 、即席分析 和多表关联的综合分析平台。
总结:
-
DataX 把数据从业务系统搬运到数据仓库(存到 HDFS)。
-
Hive 用表结构把这堆文件管理起来,并提供 SQL 接口。
-
用户写的 SQL,Hive 翻译后交给 Spark 去计算。
-
算好的结果,如果是固定的大报表,放进 ClickHouse 里供人极速查询。
-
如果要应对复杂的、多维度的实时即席分析,放进 Doris 里。