2023离线和实时大数据开发实战.docx
《2023离线和实时大数据开发实战.docx》由会员分享,可在线阅读,更多相关《2023离线和实时大数据开发实战.docx(259页珍藏版)》请在课桌文档上搜索。
1、离线和实时大数据开发实战I第1章数据大图2 1.1数据流程3 1.2数据技术4 1.3数据相关从业者和角色5 1.4本章小结6第2章数据平台大图7 2.1离线数据平台的架构、技术和设计8 2.2实时数据平台的架构、技术和设计9 2.3数据管理I)2.4本章小结Il第二篇离线数据开发:大数据开发的主战场12第3章H章OOD原理实践B3.1开启大数据时代的HadoODK3.2HDFS和MaPRedUCe优缺点分析153.3HDFS和MaDRedUCe基本架构63.4MaDRedUCe内部原理实践IZ3.5本章小结B第4章HiVe原理实践K4.1离线大数据处理的主要技术:HiVe2)4.2HiVeS
2、oL2L4.3HiVeSOL执行原理图角军22 4.4HiVe函数23 4.5其他SQLCmHadOoP技术Z4.6本章小结25第5章HiVe优化实践加5.1离线数据处理的主要挑战:数据倾斜2Z5.2HiVe优化28 5.3join无关的优化29 5.4大表ioin小表优化D5.5大表ioin大表优化315.6本章小结32第6章维度建模技术实践S6.1大数据建模的主要技术:维度建模4 6.2维度表设计至6.3深入事实表金6.4大数据的维度建模实践3Z6.5本章小结38第7章H章OOD数据仓库开发实战5 7.1业务需求4)7.2HadoOP数据仓库架构设计417.3HadOOD数据仓库规范设计里
3、7.4FUmreRetailer数据仓库构建实践电7.5数据平台新架构数据湖41名7.6本章小结第三篇实时数据开发:大数据开发的未来心第8章StOrm流计算开发4Z8.1流计算技术的鼻祖:StOrm技术冬8.2SlOrm实时开发示例4J8.3Storm高级原语Trident5)8.4StOrm关键技术5L8.5本章结2第9章SDarkStreaming流计算开发$9.1SDark生态和核心概念国9.2SPark生态的流计算技术:SparkStreamingS9.3SDarkStreaming的实时开发示例S9.4SparkStreaming调优实践5Z9.5SParkStreaming关键技术
4、5B9.6本章小结刃第10章Flink流计算开发10.1流计算技术新贵:Flink&10.2FlinkAPIS10.3Flink实时开发示例10.4Flink关键技术详解国10.5本章小结伤第11章Beam技术6611.1意图一统添计算的BeamQ11.2Beam技术核心:BeamModel囹11.3BeamSDK11.4Beam窗口详解D11.5本章小结71第12章StreamSQL实时开发实战H12.1流计算SQL原理和架构飞12.2流计算SQL:未来主要的实时开发技术羽12.3StreamSoL飞12.4StreamSQL的实时开发实战无12.5撤回机制7712.6本章小结第1章数据大图
5、数据是原油,数据是生产资料,数据和技术驱动,人类正从IT时代走向DT时代,随着数据的战略性日渐得到认可,越来越多的公司、机构和组织,尤其是互联网公司,纷纷搭建了自己的数据平台。不管是基于开源技术自研、自建还是购买成熟的商业解决方案,不管是在私有的数据中心还是在公有云端,不管是自建团队还是服务外包,一个个数据平台纷纷被搭建,这些数据平台不但物理上承载了所有的数据资产,也成为数据开发工程师、数据分析师、算法工程师、业务分析人员和其他相关数据人员日常的工作平台和环境,可以说数据平台是一个公司、机构或组织内“看”数据和“用数据”的关键基础设施,己经像水电煤一样不可或缺,正是它们的存在才使得数据变现成为
6、可能。数据从产生到进入数据平台中被消费和使用,包含四大主要过程:数据产生、数据采集和传输、数据存储和管理以及数据应用,每个过程都需要很多相关数据技术支撑。了解这些关键环节和过程以及支撑它们的关键技术,对一个数据从业者来说,是基本的素养要求。因此本章首先对数据流程以及相应的主要数据技术进行介绍。同时,本章也将介绍数据的主要从业者,包括平台开发运维工程师、数据开发工程师、数据分析师、算法工程师等,并对他们的基本工作职责和日常工作内容等进行介绍,使读者对数据相关的职位有基本的认识和了解。Ll数据流程不管是时髦的大数据还是之前传统的数据仓库,不管是目前应用最为广泛的离线数据还是越来越得到重视的实时数据
7、,其端到端流程都包含:数据产生、数据采集和传输、数据存储处理、数据应用四大过程,具体的数据流程图及其包含的关键环节如图1-1所示。数据产生数据应用 报表展示 数据分析 即席分析 数据挖掘 机器学习 深度学习 数据在线 服务图1-1数据流程大图下面详述图1-1所示的各个关键关节。1.1.1数据产生数据产生是数据平台的源头,没有数据,所谓的大数据也无从谈起。所以首先要保证有数据。随着近年来互联网和移动互联网的蓬勃发展,数据已经无处不在,毫无疑问,这是一个数据和信息爆炸的时代。所以,即使一个企业和个人没有数据,通过爬虫工具和系统的帮助,也可以从互联网上爬取到各种各样的公开数据。但是更多的、高质量的数
8、据是爬取不到的,这些数据存在于各个公司、企业、政府机关和机构的系统内部。1 .数据分类根据源头系统的类型不同,我们可以把数据产生的来源分为以下几种。(1)业务系统业务系统指的是企业核心业务的或者企业内部人员使用的、保证企业正常运转的IT系统,比如超市的POS销售系统、订单/库存/供应链管理的ERP系统、客户关系管理的CRM系统、财务系统、各种行政系统等。不管何种系统,后台的数据一般都存在后台数据库内。早期的大部分数据主要来源于这些业务系统的数据库,管理人员和业务运营人员查看的数据报表等基本来源于此。即便是目前,企业的业务系统依然是大部分公司数据平台的主要数据来源,业务系统的数据通常是格式化和高
9、质量的。(2) Web系统随着互联网的发展,很多系统都变成了Web系统,即互联网或者局域网范围内通过浏览器就可以访问,而不是必须安装客户端软件才能访问的系统(这种就是传统的业务系统)。Web系统也会有用于存储各种格式化数据的后台数据库,但除此之外,还有各种用户行为日志,比如用户通过何种途径访问了本网站(搜索引擎、直接输入Web网址、其他系统跳转等),在网站内都有何种行为(访问了哪些网页、点击了哪些按钮、停留了多长时间)。通过COokie以及各种前端埋点技术,用户的这些行为都可以被记录下来,并保存到相应的日志文件内。Web系统的日志文件通常是非格式化的文本文件。Web系统和业务系统不是互相对立的
10、,比如现在的ERP系统通常也支持Web和浏览器访问。(3)手机APP在当今的移动互联网时代,作为移动互联网的基础设施,手机APP已经渗透到所有人的吃穿住行,毫不夸张地说,手机俨然称得上是一个身体的“新器官”;另一方面,通过手机的内置传感器可以知道你是谁(指纹识别、虹膜识别、人脸识别),你在哪里(GPS、WiFi和移动网络)和你在干什么(吃穿住行App),当然移动APP也会记录你在该APP上的各种行为,比如你打开了几次App、点击了哪些页面和使用了哪些功能。(4)外部系统很多企业除了自己内部的数据,还会通过爬虫工具与系统来爬取竞争对手的数据和其他各种公开的数据,此外企业有时也会购买外部的数据,以
11、作为内部数据的有益补充。(5)人工整理尽管通过各种内部和外部系统可以获取到各种数据,但有些数据是无法直接由系统处理的,必须通过人工输入和整理才能得到,典型的例子是年代较久的各类凭证、记录等,通过OCR识别软件可以自动识别从而简化和加快这类工作。以上从IT系统的类型介绍了数据产生的源头,从数据的本身特征,数据还可以分为以下儿类。(1)结构化数据结构化数据的格式非常规范,典型的例子是数据库中的数据,这些数据有几个字段,每个字段的类型(数字、日期还是文本)和长度等都是非常明确的,这类数据通常比较容易管理维护,查询、分析和展示也最为容易和方便。(2)半结构化数据半结构化数据的格式较为规范,比如网站的日
12、志文件。这类数据如果是固定格式的或者固定分隔符分隔的,解析会比较容易;如果字段数不固定、包含嵌套的数据、数据以XML/JSON等格式存储等,解析处理可能会相对比较麻烦和繁琐。(3)非结构化数据非结构化数据主要指非文本型的、没有标准格式的、无法直接处理的数据,典型代表为图片、语音、视频等,随着以深度学习为代表的图像处理技术和语音处理技术的进步,这类数据也越来越能得到处理,价值也越来越大(比如最近FaCeboOk公布了他们基于深度学习技术的研究成果,目前己经可以初步识别图片中的内容并就图片内容标注标签)。通常进行数据存储时,数据平台仅存储这些图片、语音和视频的文件地址,实际文件则存放在文件系统上。
13、2 .数据埋点后台数据库和日志文件一般只能够满足常规的统计分析,对于具体的产品和项目来说,一般还要根据项目的目标和分析需求进行针对性地“数据埋点”工作。所谓埋点,就是在额外的正常功能逻辑上添加针对性的统计逻辑,即期望的事件是否发生,发生后应该记录哪些信息,比如用户在当前页面是否用鼠标滚动页面、有关的页面区域是否曝光了、当前用户操作的时间是多少、停留时长多少,这些都需要前端工程师进行针对性地埋点才能满足有关的分析需求。数据埋点工作一般由产品经理和分析师预先确定分析需求,然后由数据开发团队对接前端开发和后端开发来完成具体的埋点工作。随着数据驱动产品理念和数据化运营等理念的日益深入,数据埋点已经深入
14、产品的各个方面,变成产品开发中不可或缺的一环。数据埋点的技术也在飞速发展,也出现了一批专业的数据分析服务提供商(如国外的MiXPanle和国内的神策分析等),尽管这些公司提供专门的SDK可以通用化和简化数据埋点工作,但是很多时候在具体的产品和项目实践中,还是必须进行专门的前端埋点和后端埋点才可以满足数据分析与使用需求。1.1.2 数据采集和传输业务系统、Web系统、手机APP等产生的数据文件、日志文件和埋点日志等分散于各个系统与服务器上,必须通过数据采集传输工具和系统的帮助,才能汇总到一个集中的区域进行关联和分析。在大数据时代,数据量的大当然重要,但更重要的是数据的关联,不同来源数据的结合往往
15、能产生1+12甚至1+110的效果。另一个非常关键的点是数据的时效性,随着时间的流失,数据的价值会大打折扣,只有在最恰当的时间捕捉到用户的需求,才会是商机,否则只能是错失时机。试想一下,如果中午用户在搜索“西餐厅”,只有在这一刻对用户推送西餐厅推荐才是有效的,数分钟、数十分钟、数小时后的推送效果和价值将逐步递减。而实现这些必须借助于专业的数据采集传输工具和系统的帮助。过去传统的数据采集和传输工具一般都是离线的,随着移动互联网的发展以及各种个性化推荐系统的兴起,实时的数据采集和传输工具越来越得到重视,可以亳不夸张地说,数据采集传输工具和系统已是大数据时代的关键基础设施。数据产生的来源有很多,但是
16、其物理存在表现形式主要为文本文件和数据库两种。理论上来说,数据采集和传输无非就是把一个地方的数据从源头复制到目的地,文本文件可直接复制,数据库也可以通过创建数据库连接直接拖数据,但是数据采集传输的挑战在于:数据可能分布在不同的数据中心,数据库也可能是分库分表的,而数据采集也不能对生产系统库有任何性能上的影响,最好也不需要产品开发、DBA或系统管理员的过多介入,有时候还必须能够做到亳秒级的实时采集,而这些都必须借助专业的数据采集传输工具和系统才能完成,比如专.业的数据采集传输工具不会通过建立数据库连接来采集数据,而会通过解析数据库日志来进行。在无须数据库DBA、系统管理员和产品开发介入的情况下(
17、只需要开通权限即可)高效地完成数据采集和同步的任务。1.1.3 数据存储处理数据采集同步后的数据是原始的和杂乱的,必须经过专门的清洗、关联、规范化和精心的组织建模,而且要通过数据质量检测后才能进行后续的数据分析或用于提供数据服务,而这就是数据平台构建的第三个关键关节数据存储处理。大数据项目和数据平台构建的实践表明,数据存储处理通常占用整个项目至少1/3以上的时间,这一环节的设计是否合理、最终的数据是否稳定可靠、建模是否灵活可扩展直接决定后续数据应用的成败,也决定了整个数据平台项目的成败。数据存储处理也是数据领域最为激动人心和百花齐放的领域,各种开源技术框架和创新层出不穷,但是万变不离其宗,根据
18、下游数据使用方的时效性,我们可以把数据存储处理工具和技术分为离线处理、近线处理和实时处理,处理后的数据也相应地存储于离线数据仓库、近线数据存储区和实时数据存储区。离线处理一般按天进行数据处理,每天凌晨等数据采集和同步的数据到位后,相关的数据处理任务会被按照预先设计的ETL(抽取、转换、加载,一般用来泛指数据清洗、关联、规范化等数据处理过程)逻辑以及ETL任务之间的拓扑关系依次调用,最终的数据会被写入离线数据仓库中。离线数据仓库中的数据通常是按照某种建模思想(最常用的是维度建模思想)精心组织的,这样既可以使下游用户非常直观和方便地使用,又可以使数据处理过程很方便地扩展和修改。从各个源头系统采集同
19、步过来的离线数据,通常放在一个StagingArea(暂存区,也叫登台区),进行便于后续的离线ETL处理。离线数据的存储处理技术发展已经比较成熟,也有很多成熟的ETL工具、商业/开源数据仓库和解决方案。这些商业或者开源的数据仓库工具和解决方案在数据量不是很大和解决结构化数据方面还是比较成功的,但是随着GoOgle关于分布式计算三篇论文的发表内容主体分别是分布式文件系统GoogIeFileSystem,分布式计算框架M叩RedUCe,分布式数据库Bigtable)和基于GoogIe三篇论文开源实现的HadooP生态系统(分别对应GoOgle三篇论文HDFS,M叩RedUCe,HBase)兴起,大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 离线 实时 数据 开发 实战
链接地址:https://www.desk33.com/p-752255.html