《离线和实时大数据开发实战》(二)大数据平台架构 & 技术概览2

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 《离线和实时大数据开发实战》(二)大数据平台架构 & 技术概览2

二、实时数据平台的架构、技术和设计


离线数据平台产出数据的周期一般是天,也就是说,今天看到的是昨天的数据,对于大部分的分析和“看”数据的场景来说,这种 T+1 的离线数据可以满足业务分析的需求,但是随着业务运营日渐精细化,对数据的时效性要求越来越高,越来越多的业务场景需要马上看到业务效果,尤其是在业务促销活动等(典型的如双 11 大促、 618 大促等)场景下。


更重要的是,随着人工智能浪潮的兴起,实时的数据已经不是最好,而是必须。数据也不仅仅在分析和“看”,而是和算法一起成为生产业务系统的一部分。


2.1 实时数据平台的整体架构


实时数据平台的支撑技术主要包含四个方面:实时数据采集(如 Flume ),消息中间(如 Kafka )、流计算框架(如 Strom 、Spark、 Flink、 Beam 等),以及实时数据存储(如列族存储的 HBase)。 目前主流的实时数据平台也都是基于这四个方面相关的技术搭建的。



实时数据平台首先要保证数据来源的实时性。数据来源通常可以分为两类:数据库和日志文件。对于前者,业界的最佳实践并不是直接访问数据库抽取数据,而是会直接采集数据库变更日志。


对于 MySQL 来说就是 binlog ,它是 MySQL 的数据库变更日志,包括数据变化前和变化的状态。


数据采集工具(如 Flume )采集的 binlog 事件,其产生速度和频率通常取决于源头系统。它和下游的实时数据处理工具(比如 Storm、Spark、Flink 等流计算框架和平台)处理数据的速度通常是不匹配的。另外,实时数据处理通常还会有从某历史时间点重启以及个实时任务都要使用同一源头数据的需求,因此通常还会引人消息中间件来作为缓冲,从而达到实时数据采集和处理的适配。


实时数据存储根据下游数据使用的不同方式通常放在不同的数据存储内,对于数据在服务(即数据使用方传入某个业务 ID ,然后获取到所有此 ID 的相关字段),通常放在 HBase ;对于实时数据大屏,通常放在某种关系数据库(如 MySQL )内,有时为了提高能并减轻对底层数据库的压力,还会使用缓存数据库(如 Redis )等。


2.2 流计算技术


流计算的开始流行和被大家所接受始于 2011 年左右诞生的 Storm ,Stοrm 作为“实时的Hadoop ”迅速被大家所知并接受。


那么,什么是流计算呢?它和离线批量处理又有哪些区别呢?不同于离线批处理(如 Hadoop Map Reduce ),流计算有着下面典型的特征:


无边界:流计算的数据源头是源源不断的,就像河水一样不停地流过来,相应地,流计算任务也需要始终运行。


触发:不同于 Hadoop 离线任务是定时调度触发,流计算任务的每次计算是由源头数据触发的 。触发是流计算一个非常重要的概念,在某些业务场景下,触发消息的逻辑比较复杂,对流计算挑战很大。


延迟:很显然,流计算必须能够高效地、迅速地处理数据。 不同于离线 Hadoop 任务至少以分钟甚至小时计的处理延迟,流计算的延迟通常在秒甚至毫秒级,分钟级别的延迟只在有些特殊情况下才被接受。


历史数据:Hadoop 离线任务如果发现历史某天的数据有问题,通常很容易修复问题而且重运行任务,但是对于流计算任务来说基本不可能或者代价非常大,因为首先实时流消息通常不会保存很久(一般几天), 而且保存历史的完全现场基本不可能,所以实时流计算一般只能从问题发现的时刻修复数据,历史数据是无法通过流式方式来补的。


从根源上讲,流计算的实现机制目前有两种处理方式:一种是模仿离线的批处理方式,也就是采用微批处理(即 mini batch)。微批处理带来了吞吐量的提升,但是相应的数据延迟也会增大,基本在秒级和分钟级,典型的技术是 Spark Streaming 。另一种是原生的消息数据,即处理单位是单条数据,早期原生的流计算技术延迟低(一般在几十毫秒),但是数据吞吐量有限,典型的是原生的 Storm 框架,但是随着 Flink 等技术的产生和发展, 吞吐量也不再是问题。


2.3 主要流计算开源框架



三、数据管理


对于一个公司和组织来说,仅有数据的技术是不够的,还必须对数据进行管理。数据管理的范畴很广,但是具体主要包含数据探查、数据集成、数据质量、元数据管理和数据屏蔽等数据管理技术 。

3.1 数据探查


数据探查,顾名思义,就是对数据的内容本身和关联关系等进行分析,包括但不限于需要的数据是否有、都有哪些字段、字段含义是否规范明确以及字段的分布和质量如何等。数据探查常用的分析技术手段包括主外键、字段类型、字段长度、 null 值占比、枚举值分布、最小值、最大值、平均值等。


数据探查分为战略性的和战术性的。


战略性的数据探查是指在使用数据之前首先对数据源进行轻量级的数据分析,确定其是否可用,数据稳定性如何,以决定是否可以纳入数据平台使用。战略性的数据探查是构建数据平台前首先要进行的任务,不合格的数据源头必须尽快剔除,如果到了后期才发现数据源头不合格,将会对数据平台的构建造成重大影响。


战术性的数据探查则指用技术手段对数据进行详尽的分析,发现尽可能多的数据质量问题并反馈给业务人员或者通知源头系统进行改进。


3.2 数据集成


数据仓库的数据集成也叫 ETL (抽取: extract 、转换: transform 、加载: load ),是数据平台构建的核心,也是数据平台构建过程中花费时间最多、花费精力最多的阶段 。


ETL 泛指将数据从数据源头抽取、经过清洗、转换、关联等转换,并最终按照预先设计的数据模型将数据加载到数据仓库的过程。


对数据平台使用者和业务人员来说,他们通常并不知道也不关心所使用的数据(如订单) 源头有几个,都在哪些数据库里、字段定义是否一致(如订单系统 1 代表下单成功,0 代表下单失败,而系统2用 sucess 代表下单成功、用 fail 代表下单失败)、相关的数据表有哪些(如订单顾客的画像信息、商品的类目),数据使用者希望最终看到的是一个汇规的、规范,包含所有相关订单信息的宽表,这个宽表包含了所有能够使用的订单信息,而这些所有后台的抽取、清洗、转换和关联以及最终的汇总、关联等复杂过程都由 ETL 来完成,这也是数据仓库能够给数据使用者带来的重要价值之一。


3.3 数据质量


数据质量主要从以下四个方面来衡量:


完整性:完整性是指数据信息是否存在缺失的状况,数据缺失的情况可能是整个数据记录缺失,也可能是数据中某个字段信息的记录缺失。不完整的数据所能借鉴的价值就会大大降低,也是数据质量最为基础的一项评估标准。


一致性::一致性是指数据是否遵循了统 的规范,数据集合是否保持了统一的格式。数据质量的一致性主要体现在数据记录的规范和数据是否符合逻辑,比如IP 地址一定是由4个 0 ~ 255 的数字加上“.”组成的。


准确性:准确性是指数据记录的信息是否存在异常或错误,是否符合业务预期。


及时性:及时性是指数据的产出时间是否及时 准时,符合预期。


3.4 数据屏蔽


数据仓库存储了企业的所有数据,其中有些数据是非常敏感的,比如用户的信用卡信息、身份证信息等 。这些信息如果泄露,将会给企业或者公司带来灾难性的后果;但是这些信息如果完全排除,又会对开发测试和分析统计等带来影响。


数据屏蔽( data masking )就是关于对数据如何进行不可逆的处理,使得处理后的数据既能被开发测试和分析统计使用,又不会泄露任何信息的过程。常用的办法如:加密、替换、删除/加扰 等。


四、小结


今天主要介绍了数据平台的内容范畴,我们分别从离线和实时两方面学习数据平台的架构、主要概念和技术。

离线数据平台是目前数据平台的主战场,相关的概念技术(如数据仓库、维度建模、逻辑分层、 Hadoop 和 Hive 等)都比较成熟并已广泛应用于各个公司。


实时数据平台随着数据时效性和人工智能的兴起,越来越得到重视并被放在战略地位,实时数据平台的有关技术也在不停地发展和完善,如 Storm 、Flink 和 Beam 等,我们需要对这些反面保持一定的关注并积极拥抱这些技术。


生命不是要超越别人,而是要超越自己。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
13天前
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
36 2
|
1月前
|
设计模式 前端开发 测试技术
Flutter 项目架构技术指南
探讨Flutter项目代码组织架构的关键方面和建议。了解设计原则SOLID、Clean Architecture,以及架构模式MVC、MVP、MVVM,如何有机结合使用,打造优秀的应用架构。
Flutter 项目架构技术指南
|
1月前
|
算法 数据挖掘 调度
隐语实训营-第3讲:详解隐私计算框架的架构和技术要点
主要介绍隐语的隐私计算架构,并对每个模块进行拆解、分析,以期望不同使用者找到适合自己的模块,快速入手。
48 4
|
1月前
|
Kubernetes 开发者 Docker
基于容器技术的微服务架构
基于容器技术的微服务架构
33 0
|
1月前
|
分布式计算 算法 调度
课3-详解隐私计算框架的架构和技术要点
隐语架构涵盖产品、算法、计算、资源和硬件五层,旨在实现互联互通和跨域管控。产品层包括SecretPad等,简化用户和集成商体验。算法层涉及PSI/PIR、SCQL和联邦学习,提供隐私保护的数据分析和学习。计算层如RayFed、SPU、HEU等,支持分布式计算和密态处理。资源层的KUSCIA用于跨机构任务编排,硬件层涉及FPGA等加速器。互联互通支持黑盒和白盒模式,确保不同平台协作。跨域管控则强调数据流转控制,保护数据权益。
|
27天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
32 0
|
1月前
|
机器学习/深度学习 算法 安全
隐私计算训练营第三讲-详解隐私计算的架构和技术要点
SecretFlow 是一个隐私保护的统一框架,用于数据分析和机器学习,支持MPC、HE、TEE等隐私计算技术。它提供设备抽象、计算图表示和基于图的ML/DL能力,适应数据水平、垂直和混合分割场景。产品层包括SecretPad(快速体验核心能力)和SecretNote(开发工具)。算法层涉及PSI、PIR、数据分析和联邦学习(水平、垂直、混合)。此外,SecretFlow还有YACL密码库和Kusica任务调度框架,Kusica提供轻量化部署、跨域通信和统一API接口。
49 0
|
27天前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
15 0
|
27天前
|
存储 监控 安全
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
62 1