文章目录
数据仓库理论与实战
数据仓库已经是企业的数据竞争的核心了,学好数据仓库对提高自己和找到一份好的工作都至关重要,但是很多人对数仓的印象还是停留在写SQL的层面,其实今天的数仓更像是一个数据平台应用,我们学习的大数据技术其实最终的价值都体现在数据服务上,数仓是数据服务的基石,如果说业界以前还有离线和实时之分的话,那么现在实时数仓的提出与落地,未来数仓将是数据战争的最激烈的战场,一切大数据技术都将为数仓提供服务,也都将在数仓这一环节进行收口。
本专栏主要专注于数仓工具学习、数仓建模以及业务建模、SQL 实战和平台建设,最后以3家公司的数仓建建设和实时数仓作为结尾项目,这份教程有以下特点
- 知识体系完善,从数仓的概念、建模、数仓工具的使用、数仓的落地实践都有,还会有很多小案例,例如股票的连续涨停天数计算,最大涨停板的概率计算,会话分析,复杂时间序列匹配等
- 使用的技术都是当前企业最常用的技术,版本也是比较新的,不会导致大家看到一个代码,然后一执行发现语法不支持或者废弃掉了
- 后续的更新也会很及时,不会说更新了一段时间断更了,在更新完大纲之后,我也会不断完善该系列,不断添加新的知识点
- 创作团队都是在企业一线员工,实战多于理论,还有很多经典的面试题,例如拉链表的优化、计算连续登陆、连续增长、最大在线用户数
适合人群
- 小白对数仓感兴趣同学
- 有数仓经验但是缺乏全面认识的同学
1. 数仓建模
编号 | 文章 |
---|---|
1 | 数仓建模—数仓初识 |
2 | 数仓建模—数仓架构发展史 |
3 | 数仓建模—数仓建模方法论 |
4 | 数仓建模—分层建设理论 |
5 | 数仓建模—数据治理 |
6 | 数仓建模—指标体系建设 |
7 | 数仓建模—数据模型 |
8 | 数仓建模—宽表的设计 |
9 | 数仓建模—埋点设计与管理 |
10 | 数仓建模—ID Mapping(上) |
11 | 数仓建模—ID Mapping(下) |
12 | 数仓建模—OneID落地实践 |
13 | 数仓建模—数据集成 |
14 | 数仓建模—元数据管理 |
15 | 数仓建模—自助分析 |
16 | 数仓建模—建模工具PDMan(CHINER) 入门介绍 |
17 | 数仓建模—事实表 |
18 | 数仓建模—维度表 |
19 | 数仓建模—数仓建模实战(建模流程/建模工具) |
20 | 数仓建模—数据集市(DM) |
21 | 数仓建模—总线矩阵 |
22 | 数仓建模—数据安全 |
23 | 数仓建模—数据域 |
24 | 数仓建模—数据质量 |
25 | 数仓建模—数仓开发规范 |
26 | 数仓建模—实时数仓架构发展史 |
27 | 数仓建模—数据地图 |
28 | 数仓建模—数仓建模和业务建模 |
29 | 数仓建模—雪花模型和星型模型 |
30 | 数仓建模—OneData体系 |
31 | 数仓建模—数据资产管理 |
32 | 数仓建模—事实表和维度表设计规范 |
33 | 数仓建模—表设计规范 |
34 | 数仓建模—数据同步方案设计 |
35 | 数仓建模—美团DB数据同步到数据仓库的架构与实践 |
36 | 数仓建模—数据领域常见概念与职位划分 |
37 | 数仓建模—用户画像 |
38 | 数仓建模—数据驱动业务 |
39 | 数仓建模—主数据管理 |
40 | 数仓建模—数据治理的本质与实践 |
41 | 数仓建模—用户旅程地图 |
42 | 数仓建模—数据仓库即服务 |
43 | 数仓建模—数据安全平台建设实践 |
44 | 数仓建模—数据水印 |
45 | 数仓建模—IOTA架构 |
46 | 数仓建模—美团数据质量监管平台实践 |
47 | 数仓建模—企业数字化转型 |
48 | 数仓建模—主题域和主题 |
49 | 数仓建模—增量数据处理 |
50 | 数仓建模—数据报表体系搭建 |
51 | 数仓建模—什么商业智能BI |
52 | 数仓建模—数仓建设概论 |
53 | 数仓建模—AI+BI的解决方案 |
54 | 数仓建模—建模方法论之范式建模 |
55 | 数仓建模—数据血缘分析盘活数据资产 |
56 | 数仓建模—数据中台概论 |
57 | 数仓建模—数据网格 |
58 | 数仓建模—建模方法论之实体-关系(Entity-Relationship)建模 |
59 | 建模方法论之Data Vault 建模 |
2. 运营数据分析模型
编号 | 文章 |
---|---|
1 | 指标体系—指标管理 |
2 | 指标体系—北极星指标体系 |
3 | 运营数据分析模型—漏斗分析 |
4 | 运营数据分析模型—用户分层分析 |
5 | 运营数据分析模型—用户画像 |
3. 数仓工具
1. Hive
编号 | 分类 | 文章 |
---|---|---|
1 | 基础篇 | 1. 什么是Hive |
2 | 基础篇 | 2. Hive的编译安装 |
3 | 基础篇 | 3. Hive表的基础操作 |
4 | 基础篇 | 4.Hive数据的组织管理方式 |
5 | 基础篇 | 5. Hive内部表和外部表 |
6 | 基础篇 | 6. Hive动态分区 |
7 | 基础篇 | 7.Hive命令行 |
8 | 基础篇 | 8. Hive基本数据类型 |
9 | 基础篇 | 9.Hive复合数据类型 |
10 | 基础篇 | 10. Hive Streaming |
11 | 基础篇 | 11.Hive关键字 |
12 | 基础篇 | 12.Hive函数大全 |
13 | 基础篇 | 13.Hive的架构设计 |
14 | 基础篇 | 14.Hive架构之HiveServer2 |
15 | 基础篇 | 15.Hive的其他语言调用 |
16 | 基础篇 | 16.Hive架构服务 |
17 | 基础篇 | 17.Hive的严格模式和本地模式 |
18 | 基础篇 | 18.Hive的执行引擎 |
19 | 基础篇 | 19.Hive视图和物化视图 |
20 | 基础篇 | 20.Hive UDF |
21 | 基础篇 | 21.Hive Metastore |
22 | 基础篇 | 22.MetaStore的standalone模式和高可用 |
23 | 基础篇 | 23.Hive基础之设置变量 |
24 | 基础篇 | 24.报错后退出执行 |
25 | 语法篇 | 1. Json 解析 |
26 | 语法篇 | 2. like rlike regexp |
27 | 语法篇 | 3. explode 和 lateral view |
28 | 语法篇 | 4. with as和from |
29 | 语法篇 | 5.Order by, Sort by ,Dristribute by,Cluster By |
30 | 语法篇 | 6.grouping sets |
31 | 语法篇 | 7.cube和rollup |
32 | 语法篇 | 8.map join、reduce join、smb join |
33 | 语法篇 | 9.窗口函数初识 max count sum |
34 | 语法篇 | 10.窗口函数row_number、rank、dense_rank |
35 | 语法篇 | 11. 窗口函数ntile |
36 | 语法篇 | 12.窗口函数first_value和last_value |
37 | 语法篇 | 13.窗口函数lead和lag |
38 | 语法篇 | 14. 窗口函数cume_dist和 percent_rank |
39 | 语法篇 | 15. 窗口函数练习和总结 |
40 | 语法篇 | 16. Hive语法之抽样 |
41 | 语法篇 | 17. collect_set 和 collect_list |
42 | 语法篇 | 18. 行列转换 |
43 | 语法篇 | 19.Hive语法之子查询 |
44 | 语法篇 | 20.Hive语法之物理分组 |
45 | 语法篇 | 21.Hive语法之复杂json解析处理 |
46 | 语法篇 | 22.Hive语法之with扩展 |
47 | 语法篇 | 23.Hive语法之Merge 语句 |
48 | 语法篇 | 24.Hive语法之join 扩展 |
49 | 语法篇 | 25.Hive语法之连续full join主键重复 |
50 | 进阶篇 | 1. Hive进阶之索引 |
51 | 进阶篇 | 2.Hive进阶之事务初识 |
52 | 进阶篇 | 3.Hive进阶之事务深度剖析 |
53 | 进阶篇 | 4.Hive进阶之执行计划 |
54 | 进阶篇 | 5.Hive进阶之数据存储格式 |
55 | 进阶篇 | 6.Hive进阶之数据压缩配置与格式 |
56 | 进阶篇 | 7. Hive进阶之SerDe |
57 | 进阶篇 | 8. Hive进阶之权限管理 |
58 | 进阶篇 | 10.Hive优化指南 |
59 | 进阶篇 | 11.Hive进阶之优化map任务数量 |
60 | 进阶篇 | 12.Hive进阶之优化reduce任务数量 |
61 | 进阶篇 | 13.Hive进阶之优化小文件问题 |
62 | 进阶篇 | 14.Hive进阶之谓词下推 |
63 | 进阶篇 | 15.Hive进阶之归档 |
64 | 进阶篇 | 16. Hiv进阶之MSCK |
65 | 进阶篇 | 17.Hive进阶之Hive中的锁 |
66 | 进阶篇 | 18.各种join 的执行计划 |
67 | 进阶篇 | 19. InputFormat 和 OutputFormat |
68 | 进阶篇 | 20.MultiDelimitSerDe |
69 | 进阶篇 | 21. 查询最佳实践 |
70 | 进阶篇 | 21. Statistics与Analyze Table命令 |
71 | 进阶篇 | 22. 表设计最佳实践 |
72 | 进阶篇 | 23.性能优化最佳实践 |
73 | 源码篇 | 1.源码环境搭建 |
74 | 源码篇 | 2. cli 模块 |
75 | 源码篇 | 3.CliDriver |
76 | 源码篇 | 4.Beeline/HiveCli |
77 | 源码篇 | 5.扩展篇Thrift |
78 | 源码篇 | 6.SQL 解析 |
79 | 源码篇 | 7.SQL解析之Antlr入门 |
80 | 源码篇 | 8. SQL解析Antlr进阶 |
81 | 源码篇 | 9.SQL解析的应用SQL优化 |
82 | 实战篇 | 1.Hive实战之UDF分词 |
83 | 实战篇 | 2.Hive实战之UDF IP 解析 |
84 | 实战篇 | 3.Hive实战之UDF SQL 解析 |
85 | 实战篇 | 4.Hive实战之拉链表 |
86 | 实战篇 | 5.Hive实战之用户行为记录session分割 |
87 | 实战篇 | 6.Hive实战之最大连续登陆 |
88 | 实战篇 | 7.Hive实战之留存分析 |
89 | 实战篇 | 8.Hive实战之各种join的经典应用 |
90 | 实战篇 | 9.Hive实战之漏斗分析 |
91 | 实战篇 | 10.Hive实战之累计计算 |
92 | 实战篇 | 11.Hive实战之占比同比环比 |
93 | 实战篇 | 12.Hive实战之自关联经典案例 |
94 | 实战篇 | 13.Hive实战之日活跃周活跃月活 |
95 | 实战篇 | 14.Hive实战之full join 经典案例 |
96 | 实战篇 | 15.Hive实战之UDF外部依赖文件找不到 |
97 | 实战篇 | 16.Hive实战之对比分析 |
98 | 实战篇 | 17.Hive实战之事件序列匹配/复杂事件处理 |
99 | 实战篇 | 18.Hive实战之UDF GIS |
100 | 实战篇 | 19.Hive实战之描述性计算 |
101 | 实战篇 | 20.Hive实战之滑动/滚动时间窗口计算 |
102 | 实战篇 | 21.Hive实战之UDF 复杂JSON 处理 |
103 | 实战篇 | 22.Hive实战之UDF汉字首字母 |
104 | 实战篇 | 23.Hive实战之生成连续序列 |
105 | 集成篇 | 1.Hive集成篇之ES |
106 | 集成篇 | 2.Hive集成篇之ClickHouse |
107 | 集成篇 | 3.Hive集成篇之Kafka |
108 | 集成篇 | 4.Hive集成篇之UDF写ES |
109 | 优化篇 | 1.用户画像亿级数据表关联 |
110 | 优化篇 | 2.UDAF批量调用外部请求 |
高性能查询引擎
1.Spark-SQL
1. Spark 初识
2. Spark SQL 初识
3. 股票数据分析
4. 股票打板策略分析
2.Impala
3.Presto
4.Druid
5.Clickhouse
编号 | 文章 |
---|---|
1 | ClickHouse初识 |
2 | Clickhouse—基础架构 |
3 | Clickhouse Docker部署 |
4 | Clickhouse 数据入库 |
5 | Clickhouse表引擎—MergeTree系列 |
6 | Clickhouse表引擎—日志系列引擎 |
7 | Clickhouse引擎—数据库引擎 |
8 | Clickhouse表引擎—集成系列引擎 |
9 | ClickHouse—物理机部署 |
10 | Clickhouse—实用工具 |
11 | Clickhouse—实用工具obfuscator |
12 | Clickhouse—基础数据类型 |
13 | ClickHouse—复合数据类型 |
14 | ClickHouse—DML操作 |
15 | Clickhouse—DDL 操作 |
16 | Clickhouse—时间函数 |
17 | Clickhouse—字符串函数 |
18 | Clickhouse—算数函数/哈希函数/条件函数 运算符 |
19 | Clickhouse—数组函数 |
20 | Clickhouse—聚合函数 |
21 | Clickhouse—聚合函数组合 |
22 | Clickhouse—其他函数 |
23 | Clickhouse—时间窗口函数 |
24 | Clickhouse—数据字典 |
25 | Clickhouse—MergeTree 数据生命周期 |
Doris
Doris基础篇—初识
Doris基础篇—安装部署
Doris基础篇—使用场景与特性
Doris基础篇—数据分布Bucket(Tablet)
Doris基础篇—数据分布Partition
Doris基础篇—数据模型Duplicate 模型
Doris 基础篇—数据模型Unique 模型
Doris基础篇—数据模型Aggregate 模型
Doris基础篇— 数据丢失
Doris基础篇—数据集成 Catalog
Doris进阶篇—Flink+Doris 实时数仓
Doris进阶篇—Flink CDC 同步数据到Doris
Doris案例篇—美团外卖数仓中的应用实践
Doris案例篇— 工商信息商业查询平台的湖仓一体建设实践(02)
Doris 案例篇—长安汽车基于 Doris 的车联网数据分析平台建设实践
Doris 案例篇—Doris 如何基于自增列满足高效字典编码等典型场景需求
Doris 案例篇—Doris在日志分析中的应用
Doris案例篇—Doris 在思必驰的应用实践
3.数据集成工具
sqoop
Sqoop
sqoop 2.x
datax
DataX 初识
DataX部署使用
DataX—Web部署使用
DataX 源码改造支持Mysql 8.X
Maxwell
Maxwell 初识
Maxwell 实践应用
SeaTunnel
Apache SeaTunnel 初识
Apache SeaTunnel和SeaTunnel Web
Flink CDC
Flink CDC 初识
Flink CDC 同步数据
4. 数据湖
编号 | 文章 |
---|---|
1 | 数据湖—数据湖初识 |
2 | 数据湖—数据湖再识 |
3 | 数据湖—Delta Lake 概论 |
4 | 数据湖—Delta lake 与湖仓一体 |
5 | 数据湖—Spark SQL Scala版 使用 Delta Lake |
6 | 数据湖—Spark SQL Shell 版 使用Delta Lake |
7 | 数据湖—Spark SQL SQL 版 使用 Delta Lake |
8 | 数据湖—Spark SQL Python 版 使用 Delta Lake |
9 | 数据湖—Spark Streaming 使用 Delta Lake |
10 | 数据湖—Delta Lake 事务日志 |
11 | 数据湖—Delta Lake 事务日志实践 |
12 | 数据湖—Delta Lake 时间旅行 |
13 | 数据湖—Delta Lake 版本管理 |
14 | 数据湖—Delta Lake DML 内部原理 |
15 | 数据湖—Delta Lake 1.0 版本功能预览 |
16 | 数据湖—Delta Lake Schema 约束与演化 |
17 | 数据湖—Delta Lake 并发控制 |
18 | 数据湖—Delta Lake 实践指南 |
19 | 数据湖—Delta Lake与实时计算 |
5. 调度工具
dolphinscheduler 的使用
dolphinscheduler 安装部署
1. 调度工具的使用
2. 调度工具整合
首先我们会创建常用的脚本然后配合配合数仓的SQL 进行数仓的整体的调度,脚本的话我们主要有抽数的脚本、执行SQL的脚本、监控的脚本、发布脚本
当然我们还会引入版本管理工具,管理我们的SQL和脚本,然后进行发布
6. 元数据管理工具
7. 监控工具
8. 报表工具
9. 实时数仓
10. 数据资产
4. 数仓实战
1. K12赛道Top公司的数仓建设案例
2. 知名游戏公司的数仓建设案例
3. 大型支付公司实时数仓建设案例
总结
以hadoop 作为基础生态,从0到进行数仓建设,主要分为基础篇和实战篇两部分,基础篇主要是各种组件的学习和案例,实战篇主要是三家企业的数仓设计案例,最后是扩展篇主要是实时数仓。