内容简介
本书以功能更广更深、可靠性和安全性要求更高的金融级大数据平台为参照,介绍大数据平台的架构过程及各种大数据技术,不仅包含数据采集、数据集成、作业调度、数据加工、实时数据仓库、数据服务、数据可视化、数据挖掘等常见的应用场景,还加入了数据质量、数据安全、三态投产等广受关注的内容。本书以业务场景、技术选型、技术架构对主要章节进行划分,让读者在理解大数据业务需求的基础上,了解各种大数据技术,并能够选取合适的技术来构建大数据平台。
本书内容丰富,图文并茂,实战性强,适合大数据技术初学者,政府、金融机构的大数据应用决策和技术人员,以及IT经理、CTO、CIO等快速学习大数据技术,并能快速提升读者的大数据平台架构能力。
目录
前言
第1部分 概述及数据处理
第1章 金融大数据应用概述/
1.1 金融大数据技术发展历程/
1.2 大数据技术分类/
1.3 金融大数据技术应用场景/
第2章 数据采集/
2.1 数据采集业务场景/
2.2 存储到HDFS的采集技术方案/
2.2.1 前端渠道用户行为数据采集/
2.2.2 服务端应用层数据采集/
2.2.3 数据库层的采集/
2.2.4 基于HDFS的数据采集整体架构/
2.3 T+0的采集技术方案/
2.3.1 T+0采集架构与基于HDFS的采集架构的不同点/
2.3.2 T+0采集架构在前端、后端以及数据库端的设计/
2.3.3 T+0数据采集整体架构/
2.4 全域数据实时采集的技术挑战/
2.5 实现全域数据实时采集的技术思路/
2.5.1 数据库数据实时采集/
2.5.2 基于Flink的采集平台和采集类型算子化/
2.5.3 如何保证实时采集链路数据的一致性/
2.6 全域数据实时采集的整体技术方案/
2.6.1 数据源层/
2.6.2 数据采集层/
2.6.3 数据存储层/
2.6.4 如何选择合适的采集模式/
2.7 本章小结/
第3章 数据离线处理/
3.1 数据离线处理业务场景/
3.2 数据离线处理架构的主要难点/
3.2.1 数据传输标准/
3.2.2 可以快速自由组合大数据处理动作的架构/
3.2.3 数据离线处理的整体技术架构/
3.2.4 数据离线处理各环节的技术要点/
3.3 企业级数据传输标准/
3.3.1 标准文件定义/
3.3.2 模型演进下的数据传输标准/
3.4 快速自由组合大数据作业流的架构要点/
3.4.1 大数据离线处理作业开发流程/
3.4.2 大数据离线处理作业开发流程技术要点/
3.5 数据离线处理整体架构要点/
3.5.1 大数据开发人员是写代码还是写SQL语句/
3.5.2 是否使用单一的计算引擎/
3.5.3 如何解决事务的场景问题/
3.5.4 整体架构/
3.6 离线处理动作实现要点/
3.6.1 数据卸载/
3.6.2 数据传输/
3.6.3 数据预处理/
3.6.4 数据加载/
3.6.5 数据加工/
3.6.6 数据复制/
3.7 本章小结/
第4章 流式数据处理/
4.1 流式数据处理业务场景/
4.2 流式数据处理简介/
4.2.1 什么是流式处理/
4.2.2 流计算和实时计算有什么区别/
4.2.3 流处理引擎/
4.2.4 引擎选型思路/
4.3 整体方案/
4.4 方案难点和解决思路/
4.4.1 如何处理延迟与乱序数据/
4.4.2 如何实现维表关联/
4.4.3 计算结果存在哪里/
4.4.4 如何保证数据一致性/
4.5 运维注意事项/
4.5.1 监控哪些指标/
4.5.2 优化并行度/
4.5.3 做好数据补偿的准备/
4.6 本章小结/
第2部分 数据使用
第5章 数据服务/
5.1 数据服务业务场景/
5.1.1 构建联机同步数据服务的案例/
5.1.2 案例扩展/
5.1.3 数据服务的需求/
5.2 规划的功能架构/
5.3 建设思路/
5.3.1 服务访问代理层/
5.3.2 网关层/
5.3.3 服务管理层/
5.3.4 数据服务/
5.3.5 数据访问代理(查询引擎)/
5.4 整体架构和时序图示例/
5.4.1 整体架构/
5.4.2 时序图示例/
5.4.3 注意事项/
5.5 本章小结/
第6章 数据加速/
6.1 数据加速业务场景/
6.2 技术选型/
6.2.1 选型维度介绍/
6.2.2 ClickHouse、Kylin、Elasticsearch和Doris的对比/
6.2.3 ClickHouse和Doris的对比/
6.2.4 ClickHouse和Kylin的对比/
6.2.5 选型结论/
6.3 整体架构介绍/
6.3.1 功能架构介绍/
6.3.2 业务流程介绍/
6.4 基于ClickHouse的实战介绍/
6.4.1 基于ClickHouse的数据链路/
6.4.2 ClickHouse部署架构/
6.4.3 部署规划/
6.4.4 配置经验/
6.5 基于Kylin的实战介绍/
6.5.1 基于Kylin的数据链路/
6.5.2 配置经验/
6.6 本章小结/
第3部分 数据治理
第7章 元数据管理/
7.1 元数据管理的业务背景/
7.1.1 元数据管理的目标/
7.1.2 元数据管理的功能需求/
7.2 详细设计思路和实现方案/
7.2.1 元数据模型/
7.2.2 元数据存储/
7.2.3 元数据采集与登记/
7.2.4 元数据设计与发布/
7.2.5 数据权限管理/
7.2.6 元数据应用/
7.3 整体技术架构介绍/
7.4 本章小结/
第8章 数据安全管理/
8.1 数据安全管理业务背景/
8.1.1 需求讨论/
8.1.2 数据安全流程/
8.2 识别和脱敏的技术难点/
8.2.1 如何快
前言/序言
前言
随着互联网和数字化技术的飞速发展,大数据成为热门的技术领域。特别是2019年国家明确将“数据”视为生产要素以来,大数据技术的发展更加迅猛,已经成为现代社会各行各业发展的“最大变量”。
掌握大数据技术,对于程序员来说,可以极大地提升职场价值和社会价值。然而,作者在学习MapReduce和Spark的时候,有多次从入门到放弃的经历。相关的技术教程很多,即使按照教程一步步学习,也往往不得其解,过了一段时间就忘掉了,需要从头再学。
现有的大数据技术非常多,如Hive、MPP、Spark、Flink、Kafka、Hudi、Iceberg等,这些技术往往很复杂,学习代价也很大。即使下定决心去学一种技术,也会因为不知道这种技术对未来工作有没有用,而带着质疑去学习,效果可想而知。
如果有这么一本书,像讲故事一样,描述用特定大数据技术解决一些业务问题的项目经历,在各种大数据使用场景中引领读者学习各种大数据技术的具体应用,那么读者就可以参照这些场景,并结合自己的实际工作,从应用出发,带着一些具体问题,研究对应的大数据技术,这样的学习是更有效的。这就是本书的意义所在。
下面对本书的结构脉络进行说明。
1.大数据技术应用场景选取
本书以大数据技术应用场景进行章节划分,所述场景力求全面,而金融业在大数据技术运用的深度和广度上都有优势,且应用场景比较典型。在过去的十几年里,作者团队一直扎根金融大数据技术研发,对大数据技术体系的庞大和应用场景的复杂多样深有体会,且积累了大量实战经验。本书由团队中不同大数据领域的十几位技术负责人编写,囊括丰富的大数据应用场景,涉及常用的大数据技术。本书将这些场景分成五类。
1)数据处理类:将数据从业务系统采集到数据仓库,以及在数据仓库做批量加工或者流式加工。
2)数据使用类:数据加工完成以后,以数据服务、数据可视化图表的方式给到业务系统,并满足数据使用过程中的响应速度要求。
3)数据治理类:大数据所有端到端过程中的质量管理、元数据管理、安全管理。
4)数据运维类:大数据系统中的作业调度、跨环境部署、计算资源管理。
5)综合场景类:一些特殊的综合场景,如数据湖、流批一体、信创等。
除了在本集团落地以外,团队解决大数据应用问题的方案或产品也会输出到同行业其他公司和其他行业的公司。在与同行的交流当中,作者发现,虽然团队使用的有些技术架构不是最前沿的(因为金融业比较注重稳定性和安全性),但是几乎覆盖大数据能碰到的所有场景,所以本书所选的场景,应该可以满足大部分大数据技术人员的诉求。
2.每个场景的编写脉络
本书每个场景基本都是按照如下脉络展开的。
1)描述业务需求。
2)分析业务需求对应要解决的技术问题,归纳出几个待解决的技术难点。
3)阐述每个技术难点的解决思路。
4)针对解决思路进行技术选型。
5)分析针对每一个难点的解决方案。
6)整合得到整体解决方案和技术架构。
7)阐述方案落地时的技术要点或注意事项。
8)介绍方案实际应用效果。
9)分析架构的优缺点、使用注意事项、不适合的场景(使用限制)。
以上内容基本是按照大数据架构师碰到特定业务问题时,从需求分析到方案落地,再到事后总结的整个历程编排的。读者阅读时,可以从架构师的角度进行思考,也能够习得架构师的一些实战经验。
本书基于场景进行大数据技术应用讲解,在以下几个方面可以帮助读者。
1.学习新技术
开发人员学习新技术时,可能已经确定这项技术要用在哪里,比如,为了快速搜索一个有上千万条记录的大表,就去学习Elasticsearch;也可能并不清楚这项技术的用途,比如,因为很流行用Spark作为大数据平台,所以就去学习。这两种情况里,前者往往通过相关教程或者官方文档就能上手使用,但是对于后者,开发人员在学习过程中可能经常会想,为什么要有某个功能?为什么会有Shuffle?结果资料看完了,对技术如何使用还是云里雾里的。
阅读这本书,在应用场景中学技术,知道某项技术能解决什么问题,也就能理解它为什么那样设计,才能真正学会它。
2.发挥数据的业务价值
技术人员都希望利用自己的技术能力提供业务价值,在大数据平台中,就是利用大数据技术挖掘数据的价值。但是实现这个目标并不容易,需要丰富的实战经验,对于新手来说,往往要花费不少时间进行诸多项目的历练。这时就可以参考本书,对照自己的任务需求找到类似的项目实施过程。
3.提升自我价值
如果想成为一名架构师,需要在哪些方面有所提升?需要做些什么?答案可能是,列出几个甚至几十个维度,对照自己的不足逐个进行改进。作者认为,有一个更简单的答案:某个项目需要设计方案去实现某种相对较新的功能,如果能够给出可行方案,那就是完成了一项架构师工作。
对于一个新的项目需求