什么是数据湖?
维基百科定义:数据湖是一类存储数据自然/原始格式的系统或存储,通常是对象块或者文件,包括原始系统所产生的原始数据拷贝以及为了各类任务而产生的转换数据,包括来自于关系型数据库中的结构化数据(行和列)、半结构化数据(如CSV、日志、XML、JSON)、非结构化数据(如email、文档、PDF等)和二进制数据(如图像、音频、视频)。
为什么需要数据湖?
- 更快的开发节奏,fast time to market
- 多样性数据源,包括实时和批模式,结构化和非结果化数据
- 灵活选择数据集
数据湖架构
工作流
工具集
阶段 | 工具 |
---|---|
1. 数据集成 | Sqoop,Filebeat,Flume,Kafka |
2. 数据实时处理 | Kafka stream,Spark Steaming,Flink |
3.数据安全 | Ranger,Kerberos,白名单 |
4.数据离线处理 | Spark,Zepplin,Jupyter,airflow |
5.数据存储 | HDFS,S3,Clickhouse |
6.数据治理 | 元数据,数据服务,数据质量 |
7.数据分析 | Presto,Hive,Spark,Tableau |
8.数据下载 | 自助取数,Excel |
最佳实践
- 相对于数据仓库,数据湖的数据结构无需事先定义。
- 快速可以导入新的类型数据,包括结构化、半结构和非结构化数据。
- 目的是信息发现,主力生产工具切换成为更为自由的notebook
- 数据安全是强制要求
- 元数据自助可查