Google三驾马车,大数据基石:
- GFS:存储->hdfs
- MapReduce:分析->hadoop
- Bigtable:查询->hbase(基于GFS结构化存储
OLAP: olap:联机分析处理;oltp:联机事务处理
- MOLAP:预处理,预计算,查询快,不灵活
- ROLAP:不需要预处理,查询灵活,查询性能不好
- HOLAP:当查询聚合性数据的时候,使用MOLAP 技术;当查询明细数据时,使用 ROLAP 技术。
1. 数仓:ODS -> DW(DM) -> APP
-
ODS:操作性数据,数据源经过ETL到达本层
-
DW:数据仓库,ODS进行数据建模形成。
- DWD:明细层,?
- DWM:轻度汇总,处理,?
- DWS(DM):数据集市即宽表,用于业务查询
-
APP:针对业务深度成熟的DM
-
DIM:维表,标签系统
lambda架构:离线批处理不满足实时性要求,再加一条实时计算的路。两条路独立。
kappa架构:流批统一,即抛弃批处理。
Impala :ROLAP,业务使用sql查多个库,支持kudu
Presto:ROLAP,业务使用sql查多个库,跨数据源join
kylin:MOLAP,空间换时间,预计算hive数据到hbase
druid:MOLAP,?
Hbase :可以更新,依赖rowkey高速随机读写,不适合分析
kudu :介于二者之间,和hbase都基于BigTable
hdfs :列式存储,无法更新,适合分析
Tidb :mysql分库分表
doris :ROLAP
clickhouse :c++,俄罗斯老哥研发
es: 搜索引擎,轻度存储库
2. 数据湖:
与数仓不同,专注于数据资产的统一管理而不是存储和计算。全量数据单一存储,一锅烩(结构非结构),支持大量存储以及数据分析。治理不好就变沼泽。
iceberg: 不擅长update,delete,merge,专注查询性能,支持ACID,flink集成完备,数据merge可以通过spark/flink任务进行。
hudi(Apache): Hadoop Upserts Deletes and Incrementals,查询支持Hive、Spark(首选)、Presto,flink也在集成(想替代spark的野心),支持 Copy On Write(写入merge)和 Merge On Read(查询merge)。腾讯,阿里在搞
delta(Apache): 支持 update,delete,merge,实现基于spark的join功能,数据写入与Spark是绑定,流批一体。