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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 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 等,我们需要对这些反面保持一定的关注并积极拥抱这些技术。


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

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
18天前
|
存储 分布式计算 数据可视化
大数据常用技术与工具
【10月更文挑战第16天】
67 4
|
27天前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
81 1
|
1天前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
【赵渝强老师】基于大数据组件的平台架构
|
1天前
|
SQL 存储 算法
比 SQL 快出数量级的大数据计算技术
SQL 是大数据计算中最常用的工具,但在实际应用中,SQL 经常跑得很慢,浪费大量硬件资源。例如,某银行的反洗钱计算在 11 节点的 Vertica 集群上跑了 1.5 小时,而用 SPL 重写后,单机只需 26 秒。类似地,电商漏斗运算和时空碰撞任务在使用 SPL 后,性能也大幅提升。这是因为 SQL 无法写出低复杂度的算法,而 SPL 提供了更强大的数据类型和基础运算,能够实现高效计算。
|
4天前
|
存储 大数据 定位技术
大数据 数据索引技术
【10月更文挑战第26天】
13 3
|
4天前
|
存储 大数据 OLAP
大数据数据分区技术
【10月更文挑战第26天】
20 2
|
8天前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
43 4
|
7天前
|
消息中间件 分布式计算 大数据
数据为王:大数据处理与分析技术在企业决策中的力量
【10月更文挑战第29天】在信息爆炸的时代,大数据处理与分析技术为企业提供了前所未有的洞察力和决策支持。本文探讨了大数据技术在企业决策中的重要性和实际应用,包括数据的力量、实时分析、数据驱动的决策以及数据安全与隐私保护。通过这些技术,企业能够从海量数据中提取有价值的信息,预测市场趋势,优化业务流程,从而在竞争中占据优势。
33 1
|
9天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
45 2
下一篇
无影云桌面