大数据分析工程师入门-支撑体系

第一时间获取好内容

作者丨凯凯连

编辑丨Zandy

导语

前面4篇文章,我们分别介绍了数据收集、ETL工程、数据仓库基础、元数据中心等4个重要组件,这些也是数据分析基础架构中比较核心的部分,今天这篇文章我们来介绍下剩余的几个组件,主要围绕他们的作用、与其他组件的关系及常用技术来展开讲解。

接下来要讲解的这些组件都是支撑型的组件,各个公司会根据自己的具体业务进行选择使用,每个公司的方案会各不相同,因此本文讲解的内容不一定具备普遍适用性,但是也可以给大家当做一个参考,相信对你理解数据分析整体结构还是有一定帮助的。

所以,本文的目标是通过对这些组件的讲解,让大家对数据分析的基础架构有更深入的理解。话不多说,让我们直接进入正文吧。

×××

以下为正文

1

数据转存组件

这个组件和ETL中的抽取(Extract)阶段有一定的重合度,它们在功能上也确实非常的接近。那么为什么会有这么一个组件存在呢?这是因为,有些数据的抽取非常复杂,涉及的数据源种类多,且受很多因素影响,容易出错和失败,需要将其设计成一个独立的组件,具备容错、重试、去重等功能,确保输出到下一阶段的数据的正确性。

在我们公司,这个组件的主要功能是负责将数据收集集群存储的数据文件,定时进行切割,并上传至HDFS的不同目录下。同时这个组件还具备失败重传、文件完整性校验、上传完成后通知下游系统、自动补传缺失文件、定时清理已上传文件等功能。

有些公司可能并没有这个组件,这个与你的数据源的存储形式和数据获取方式以及业务对数据的使用要求有很大关系。因此,你只需要了解,当ETL中的E阶段比较复杂时,可以考虑独立成一个组件进行处理即可。

2

分析引擎

分析引擎是数据分析的关键组件,负责将数据分析师的分析操作转化为分析结果,因而针对不同的分析操作和要求,有对应的引擎去执行。常用的分析引擎,从实时性的角度可以分为离线分析引擎和实时分析引擎,从是否存储数据的角度可以分为纯粹的分析引擎和兼具存储与分析功能的分析引擎。

常用的离线分析引擎有SparkCore、Hive+Tez、SparkSQL、Presto、Impala等,其中后四种都是基于类SQL语法的分析引擎,SparkCore通常是需要自己写代码调用Spark提供的算子完成分析,虽然操作有点复杂,但是灵活性非常高,适合复杂的分析需求。

常用的实时分析引擎有SparkStreaming、StructedStreaming、Flink、Storm等,他们的设计思想略有差异,所以适用场景也不相同,可以根据公司实际业务需求进行选择使用。

还有一类比较特殊,不能简单将它们称作分析引擎,但是它们具备一定的数据分析能力,例如,ElasticSearch、时序数据库、Kylin等,前两种属于非关系型数据库,Kylin是基于预构建数据Cube的方式提供强大快速的分析能力的。

3

作业管理与调度

随着公司业务的发展,对数据分析的需求也会不断增多,因此通常会积累大量的分析作业,那么这个时候作业管理与调度组件便是不可或缺的。它的主要作用是管理分析作业的生命周期、记录变更历史、设置执行引擎、管理数据输出,并具备调控调度的能力。

由于现在执行引擎的性能都非常的高效,在数据量不大的情况下,也可以不使用调度,不用将结果预先计算出来,而是查看数据时,再执行计算获取分析结果,有不少公司也确实是采用这种方式。但是对于复杂分析或者数据量大的场景,最好还是有相应的组件,管控整个过程,提前做好预计算,方便快速获取数据结果,这样数据使用方的体验会更好。

04

数据监控

数据是一切分析工作的基础,其质量的高低、是否可靠稳定都会影响到数据分析工作的结论,并且对于一些常规性的指标还要监控其趋势走向,及早发现问题。因而,数据监控的主要作用是保证数据的可靠性、可用性、高质量,同时也要对异常情况作出预警。通常分为数据质量监控和数据结果监控。

数据质量监控,其主要目标是保证较高的数据质量,确保数据是稳定可靠的,为后续的分析任务提供坚实的数据基础。主要包含脏数据监控与处理、非法字段与非法值监控、数据内容自检等。

数据结果监控,其主要目标是对已有指标进行趋势监控,预警数据缺失或者数据明显异常波动的情况。其通常是对已经事先定义好的分析结果数据做监控,这个数据反映了某种核心指标的真实情况,如果数据异常则立即报警,由数据分析人员来进一步分析数据异常的原因,及时发现可能存在的业务问题。例如应用的crash率监控、播放源解析失败率监控、应用新增日活等核心指标监控等。

总结

本文简单介绍了,数据分析架构中的其他几个比较重要的组件。希望可以帮助大家加深对数据分析基础架构的理解。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190920A0P4AO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券