企业网站改自适应,站长工具端口查询,做百度推广需要网站吗,哪个建站系统适合外贸商城网站建设简介#xff1a; 实时化是大数据未来最重要的方向之一。
作者#xff5c;爱奇艺大数据团队
数据作为互联网时代的基础生产资料#xff0c;在各大公司企业拥有举足轻重的地位。数据的价值在互联网公司的体现#xff0c;大致而言可以分成三类#xff1a;
发掘数据中的信息…简介 实时化是大数据未来最重要的方向之一。
作者爱奇艺大数据团队
数据作为互联网时代的基础生产资料在各大公司企业拥有举足轻重的地位。数据的价值在互联网公司的体现大致而言可以分成三类
发掘数据中的信息来指导决策如产品运营、用户增长相关的 BI 报表依托数据优化用户体验和变现效率如信息分发场景下的个性化推荐、效果广告等基于数据统计的业务监控如监控大盘、安全风控等
在这些体现大数据价值的业务场景上存在一个普遍的规律即数据产生的价值随着时间的推移而衰减。因此随着公司业务的发展传统的 T1 式隔日的离线大数据模式越来越无法满足新兴业务的发展需求。开展实时化的大数据业务是企业深入挖掘数据价值的一条必经之路。
爱奇艺大数据团队自 2014 年开始引入Kafka、Storm、Spark Streaming 等实时化技术2017 年引入 Apache Flink 实时计算框架逐步建设了一套打通数据采集、加工、分发、分析、应用等完整数据流程的实时大数据体系。这套实时大数据体系支持了峰值超过 3000 万 QPS 的实时数据处理支持了如春晚直播、青春有你、尖叫之夜等大型活动的实时计算需求。本文将介绍爱奇艺实时大数据体系的主要架构、平台功能以及发展过程中的一些思考。
一、传统实时 ETL 模式的问题
在实时技术发展初期大团队为各业务提供的是单纯的日志数据的实时解析服务。通过 Flink ETL 程序将用户端上报日志、后台服务器日志、数据库 binlog 日志解析成 key-value 组装的 json 形态的结构化数据发送到 Kafka 中供各业务使用。其中ETL 逻辑可以由外部配置平台注入方便在解析逻辑修改时可以动态加载减少 Flink 任务的重启频率。这个实时 ETL 的体系如下图所述 随着实时大数据业务的发展它的弊端不断出现
实时数据大量重复生产各业务烟囱式开发数据难以复用数据治理水平低下数据生产者不知道数据在被谁消费稳定性差不能抵御 Flink 和 Kafka 故障
为了解决这些问题爱奇艺大数据团队开始建设实时大数据体系推出管理 Kafka 的流数据服务平台、基于 Flink 的实时数据生产平台、基于 Kafka 的实时数仓等组件打通实时数据流程。 二、实时数仓与传统数仓的区别
在传统的 BI 体系中基于离线大数据构建数据仓库的过程大部分是 T1 的隔日离线计算。即每天凌晨开始从原始日志数据构建数仓将多层级的离线计算任务通过工作流系统进行串联。数仓构建任务失败后可以有由工作流系统触发任务重跑。一般来说离线数仓构建任务的失败重跑只影响数据生产出来的时间不影响数据的完整性、正确性。
在设计离线数仓模型和对应的计算任务时一般会从以下几个角度去兼顾平衡
数据膨胀的成本约束Hive 存储计算资源的成本约束YARN 队列开发的人力成本约束用户体验包含数据的时效性以及数仓表使用的便捷性
在实时数仓中这几个约束条件发生了巨大的变化 基于这些变化构建实时数仓的时候切记不能照搬离线数仓的分层模型和构建逻辑需要结合实时大数据业务的需求按照实时业务的特点进行构建。实时数仓的构建核心有以下几个特点
1、重视数仓的水平拆分。在离线数仓中数据的载体是 Hive 表借助 Hive 的分区字段和谓词下推机制我们可以在各个层级构建一些稍大的表而将关键的维度字段设置成分区使用户在查大表的时候达到查小表的效果。在实时数仓中数据的载体是 Kafka 队列如果向用户提供一个大流需要用户在消费数据实时过滤出其中的一小部分数据进行使用那么对 Kafka 的带宽资源和 Flink 的计算资源都是极大的浪费。因此我们需要尽量将常用的维度进行水平拆分构建例如“移动端用户行为”“PC 端用户行为”可以拆分到两个流供用户使用。
2、重视维度退化。在离线数仓中一个维度放在事实表里还是放在维度表里是一件可权衡的事情。一些不太常用的维度可以保留在维度表里让用户查询使用时再进行 Join。而在实时数仓里用户在使用数据时如果需要进行“实时流 Join 维度表”的操作涉及实时计算中比较复杂的流与外部表 Join 的操作对应的 Flink 代码开发和优化难度都较高。因此在建设实时数仓时应该尽量帮助数据下游方减少这些代价提前将会用到的维度退化到数仓的事实流中将实时流变成一个宽流避免下游业务方在使用数据时自行去处理流 Join 外部表的这类复杂场景。
3、重视层级缩短。在实时数仓的构建过程中数据在多层级 Kafka 中传递数据处理的链路越长数据的延迟越大、稳定性越差。因此在实时数仓中要尽可能引导用户使用短链路生产的实时数据。我们建议实时数仓下游使用的数据在数仓构建中经过的 Kafka 层级最好控制在4层以内例如在 ODS 层、DWD 层之后最多再加工一次就可以交付用户使用。在很多实时报表的场景上我们可以选择将 DWD 层的实时数据灌入 OLAP 体系如 Druid、Clickhouse将用户的数据清洗过滤聚合需求转移到 OLAP 层减少实时数据在数仓层的加工处理。
三、流数据服务平台
实时数仓的载体是 Kafka 服务然而Kafka 作为一个分布式消息队列它原生的组织和管理方式仍然是一个资源型服务向用户交付的是 Kafka 集群。这种管理组织方式对于开展实时大数据业务而言有一些显著的缺点例如难以注册和管理数据的输入和输出无法构建数据血缘链路和高可用体系等等。
为了更好地支持实时数仓等业务的开展爱奇艺大数据团队建设了流数据服务平台以一种面向数据的角度重新组织和管理 Kafka 服务。 流数据服务平台自下而上分为三层
1、运维管理层负责 Kafka、Pulsar、RocketMQ 等消息队列集群的资源和运维管理包括资产登记、容量管理、集群监控、自动化运维、工单审批体系等。
2、流数据管理层负责登记和管理所有流数据的元信息面向用户提供数据地图检索寻找数据、数据质量监控生产延迟、消费积压等等、数据血缘追踪、一键HA切换集群等功能。
3、客户端 SDK 层封装原生 Kafka Client向用户提供 Flink、Spark、Java 等场景下的 Kafka SDK将读写操作全部封装在 SDK 中对用户屏蔽 Kafka 集群版本和地址信息由 SDK 通过心跳向配置中心获取数据地址。同时 SDK 还具备生产消费任务的自动登记注册、Kafka 切换时触发任务重启等功能。
依托流数据服务平台我们大幅提升了 Kafka 的运维管理和服务提供能力
基于 SDK 的访问控制模式极大提高了实时大数据的治理水平。用户看到和访问的都是流数据无需再关心 Kafka 集群和地址等信息。在 Kafka 集群发生故障灾难时运维人员可以简单的在后台切换数据流对应的 Kafka 集群生产消费两侧的流任务同时重启即可将故障的 Kafka 从链路中摘除替换成备用的 Kafka 集群。流数据服务平台能根据 SDK 上报的信息分析并绘制数据血缘用于数据链路排障、数据热度分析、数仓模型优化。依托流数据的元数据中心提供数据地图的产品供用户方便的查询检索数据及其 Schema 相关信息提高流数据的复用性。附图Kafka 故障时通过 SDK 使读写两侧流量请快速切换到备集群
四、实时数据生产分发平台
Kafka 服务的高度治理化是实时数仓工作的基础下一步要建设的是构建实时数仓的工具平台通过平台降低用户开发管理实时数据处理任务的成本。
爱奇艺大数据团队建设了实时数据生产分发平台 Talos。Talos 平台兼具实时数据处理和数据集成分发功能支持用户通过自定义数据处理逻辑将实时数据加工处理后分发到下游数据流或其他异构存储中。 Talos 平台上用户可以通过简单拖拽生成 DAG 图的方式构建自己的数据处理逻辑也可以通过 SQL 算子来表达处理逻辑。对于实时计算的新手用户使用 DAG 图可以直观看到数据的处理逻辑和含义。在调试任务时Talos 平台支持查看数据在 DAG 图中每一步的变化值非常有利于排查复杂数据处理逻辑中的问题解决了传统 Flink SQL 任务调试不便的痛点。 附图通过拖拽算子形成 DAG 图的方式构建数据处理逻辑
在爱奇艺的实时数仓体系中实时数据的接入、处理、分发任务都通过 Talos 平台构建和维护数仓建设者只需要关心数仓模型的定义和设计无需撰写 Flink 代码也不用关心 Flink 实时计算任务的提交管理和运维监控等工作极大的简化了数仓的开发和维护成本。
五、实时分析平台
在实时大数据的下游业务场景中实时报表和实时分析是最普遍的一种需求场景。传统的 Kafka-Flink SQL/Spark SQL-MySQL 的实时报表模式只适用于一些指标固定的实时报表欠缺灵活性。
爱奇艺大数据团队基于 DruidSpark/Flink 建设了一套实时分析平台Realtime Analytics Platform简称 RAP, 打通了实时数仓到实时分析的链路大幅简化了实时报表的生产和使用成本。
在 RAP 平台中我们将实时数仓中生成的 Kafka 流通过 Druid 的 Kafka Index Service (简称 KIS) 直接导入 Druid。用户通过平台提供的 Web 向导配置自动建立 OLAP模型、查询统计条件即可生产对应的实时报表。同时平台也提供了如 Ad-hoc 分析、实时指标报警、实时数据发布、Grafana 图表输出等功能方便用户快速接入使用。
更多关于 RAP 平台的介绍可以阅读《爱奇艺大数据实时分析平台的建设与实践》。 六、爱奇艺实时大数据的主要应用
依托以上这些平台建设实时大数据技术在爱奇艺各个业务线都实现了落地。主要有三种典型的应用场景即实时监控、实时数据分析、在线学习训练等。
在实时监控场景中用户可以依托实时大盘进行指标观察或者将关键指标配置成实时监控报警也可以将实时日志流灌入 Elasticsearch 等系统中进行实时日志查询等。 在实时数据分析场景中比较典型的是实时运营。通过实时大数据体系为运营部门提供更实时的运营效果数据从而可以及时调整内容运营策略进行流量资源再分配助力用户增长。 除了 BI 报表和分析类场景外实时数据在效果广告、信息流推荐等场景上也有大量落地帮助推荐、广告等团队实现近线/在线机器学习、模型快速迭代、AB 测试结果的实时观察统计等。 七、未来展望
随着公司业务的发展实时大数据的需求场景逐渐多样化爱奇艺实时大数据体系会朝着以下几个方向继续迭代
流批一体在存储和计算两个方向上探索流批一体的应用场景逐渐替代传统 MapReduce/Spark 离线任务的数仓构建围绕 Flink 引擎构建流批一体的数仓体系。湖仓一体打通实时流灌入数据湖Iceberg的数据通路依托实时更新的数据湖体系支持更多更丰富的 OLAP 业务场景ETL-ELT引导实时数仓的架构变迁将实时数据构建环节中的部分计算转移到实时数仓下游的 OLAP 体系和数据湖中依托 OLAP 引擎的强大性能来满足用户的过滤/聚合等需求将实时数仓的链路做短提升实时数据的质量和稳定性、降低延迟。BIAI打通实时数据生产-实时特征生产-在线模型训练-线上推理的链路方便用户一站式的实现从数据准备到AI算法模型训练的相关工作。毫无疑问实时化一定是大数据未来最重要的方向之一。爱奇艺大数据团队会沿着上述这些方向继续探索和发展通过技术创新去支持和孵化更多落地的业务场景继续推动爱奇艺的数据和产品向着实时化的方向发展。
原文链接
本文为阿里云原创内容未经允许不得转载。