导读 火花思维作为在线教育领域的佼佼者,深知数据对于决策和运营的重要性。为进一步释放数据资源的价值,公司从 0 到 1 构建了一站式数据开发治理平台,实现了数据集成、数据开发、数据分析、数据服务等全流程整合,为公司的长远发展奠定了坚实的数据基础。
主要内容包括以下几个部分:1. 背景
2. 产品简介
3. 关键技术与创新点
4. 实施与运营
5. 成效与收获
6. 总结与展望
01
背景 火花思维是一家专注于青少年思维训练及综合素质提升的互联网教育企业,产品包含逻辑思维、中文素养、火花编程等。累计学员已超 70 万,遍布全球 100 多个国家和地区。其主要采用直播、真人互动 AI 的方式进行授课,通过将老师的启发引导和动画、游戏、趣味教具等多种方式立体结合,将能力、思维、训练三者互相连接、层层递进,在互动实践中培养孩子的观察思考、逻辑思维以及自主解决问题等核心基础能力。
- 数 据开放自助程度明显不足,严重制约了数据价值的充分释放;
- 系 统性故障频发,对数据资产的可靠性构成了严重挑战;
- ET L 效率低下已成为制约数据处理能力的关键因素。为了解决这些问题,我们需要一个更加高效、智能的数据开发治理平台,以提升数据价值的挖掘能力、保障数据资产的可靠性、优化数据处理效率,并降低技术成本。
产品简介
1. 功能介绍
- 离线开发模块 :此模块致力于为数据生产者提供高效的数据处理工具。它支持定时及依赖触发的离线任务,任务类型丰富,涵盖 HiveSQL、DorisSQL、Python、Mysql 与 Hive 间的数据交互,以及 Hive 至 ES/MQ、Hive 至 Doris 的数据同步。此外,我们提供了一键 API 生成功能,使得数据消费者能够便捷地通过接口获取所需数据,极大地提升了数据获取的效率。
- 实时开发模块 :基于 Spark 和 Flink 两大引擎,我们构建了准实时/实时任务开发平台。目前,该平台已成功支撑运营分析、指标监控、日志采集、CDC 同步等多元化场景的需求,为用户提供实时数据处理和分析的能力。
- 运维中心模块 :在运维方面,我们提供多维度的看板分析,从任务成功率、及时率、成本等多个角度全面展示数据处理的状况。同时,我们还支持上下游查询、重跑当前及下游、数据回溯、批量下线、任务监控等基础功能,确保数据处理流程的顺畅与高效。
- 自助提数模块 :该功能基于 Hive、Spark 和 Presto 三种引擎,为数据分析师提供了强大的 SQL 交互能力,使他们能够轻松地提取和下载所需数据。此外,我们还特别针对增长业务,提供了用户三方标签的提取和下载功能,满足用户在增长业务场景下的数据需求。
- 数据地图模块 :数据地图作为平台的重要组成部分,为用户提供了详尽的数据资产信息。用户可以通过该模块查看数据目录、明细信息、血缘关系、调度信息、更新记录以及生产逻辑等关键信息,从而更好地理解和利用数据资源。
- 控制台模块 :控制台作为项目管理员和系统管理员的操作后台,具备强大的管理功能。管理员可以通过该模块管理项目成员、数据源、库表权限、队列分配以及敏感信息查询记录等,确保数据的安全性和合规性。
2. 架构设计
- 交互层 :采用了主流的 Vue 框架和 Monaco 插件,为用户提供了简洁直观的数据探查和任务发布界面。用户可以通过简单的操作,轻松地进行标准化 ETL 流程的定义和执行。此外,用户交互层还提供了丰富的可视化功能,使用户能够直观地监控和管理任务的执行情况。交互层还支持多语言界面,方便全球用户使用。
- 服务层 :这些服务包括 SQL 开发套件、集成调试、依赖推荐、元数据管理等。此外,服务层也为各自项目提供了全方位的权限管理和资源管理功能。服务层还提供 API 接口,方便与其他系统进行集成。该层整体采用微服务架构,服务之间的界限和功能清晰,不同模块不同服务,各自按照需求场景选择适合的技术栈和扩展应用,同时,独立部署和运行,这有助于提高开发部署效率以及系统容错性。
- 引擎层 :通过对接各种生态组件,并封装存储计算能力,使得上层应用无需关心过多的技术栈和升级优化。例如,HiveSql 调试在引擎层既支持 Hive On Tez,也支持 SparkSql,并兼容各自的参数优化。这使得用户可以灵活地选择适合自己业务需求的引擎进行数据处理。引擎层还提供了丰富的插件和横向扩展机制,能够根据用户的需求进行定制化开发。引擎层还支持多租户模式,方便多个项目共享数据工厂资源。
- 组件层 :数据工厂的底层组件包括调度引擎所依赖的 Airflow、Python 引擎依赖的腾讯云 SCF 产品 API 等。这些底层组件为数据工厂提供了稳定可靠的运行基础。底层组件还采用了高可用架构,支持容错处理和数据备份,确保数据工厂的稳定运行。底层组件还支持分布式架构,方便水平扩展和性能提升。
3. 使用场景
- T/H+x 链路: T/H+x 是行业通用的离线计算,主要用于离线数仓、数据报表、应用统计等场景。具体实现方式是通过数据集成组件定时将 Mysql、日志等数据源的数据同步到数仓 ODS 层,其中 80% 的数据会被加工成主题宽表,然后被其他数据生产者利用,按需构建 ADS 应用数据,并最终以数据库表、消息队列或者 API 方式提供数据服务。
- 分钟级链路: 分钟级应用主要针对 OLAP 多维分析场景,通过 FlinkCDC 等方式将数据源数据同步到 OLAP 引擎,然后逐层定时拉宽聚合,最终以 API 方式对外提供数据。早期的 OLAP 引擎主要是 Kudu 和 ClickHouse,现在以 Doris 为主。
- 实时链路: 实时计算链路主要包括以 Spark Streaming 为核心计算栈的定制化数据服务和以 Flink 和 IceBerg 为核心的实时湖仓。其中,Spark Streaming 主要用于历史遗留的 ToC 数据场景,如学员学情报告、CRM 运营数据、用户标签建设等。而 IceBerg 则主要用于解决实时日志流水链路,Flink 则既可以用于构建实时数据报表,也可以用于运营监控统计。
- AI 链路: AI 计算链路主要用于训练和推理模型,包括数据预处理、模型训练、模型评估和模型部署等环节。
关键技术与创新点
1. 离线 ETL
2. 调度系统
3. 实时计算
4. 监控预警
实施与运营
1. 演进历程
- 2021 年 11 月, Athena 数据工厂迈出了坚实的第一步, v1.0 版本的上线标志着它正式踏入数据开发领域。这个版本以离线开发、调度配置、任务运维三大核心功能为基础,为用户提供了稳定可靠的数据开发平台。
- 仅仅三个月后, 2022 年 2 月,我们成功完成了数据仓库的 HiveSQL 和 mysql<->hive 相关任务的全量迁移,这标志着 Athena 数据工厂在支撑火花思维基础数据处理能力上迈出了重要的一步。
- 同年 4 月,我们又实现了 Hadoop 集群从依赖社区自建到商业化 EMR 的顺利迁移,这一变革极大地提升了基础组件的稳定性和性能。
- 2022 年 7 月, Athena 数据工厂再次迎来重大更新,新增了 Doris 引擎和 SparkSQL 引擎,为用户提供了更多样化的数据处理引擎的选择。此外,上线一键 API 生成功能,方便数据生产者通过 API 通道分享数据。
- 同年 10 月,我们整合了原《大数据实时开发平台》至 Athena 数据工厂,构建了独立的实时开发模块,以满足用户对于实时数据处理的需求。
- 进入 2023 年, Athena 数据工厂的迭代速度更是加快。 3 月实现表级别血缘关系解析以及整合公司 GitLab 实现版本管理,并基于此上线依赖推荐、跨周期依赖、数据回溯、 BI 建模血缘跟踪等辅助开发能力。
- 6 月,成功实现了离线开发和自主提数的 SQL 引擎对商业化 ServerLess 的适配,进一步提升了数据处理效率。
- 8 月推出了字段级血缘关系以及数据监控功能,为用户提供了更加精细化的数据管理和质量保证。同时,基于 HiveMeta 实现表资产生命周期治理能力。
- 2023 年 11 月,基于腾讯云云函数产品,我们推出了 Python 开发模块,为 BA 、算法、研发等角色提供了解决 SQL 无法实现或较难实现场景的全新功能。
- 到了 2024 年 1 月,我们再次进行了一次重大的技术革新,适配 Hdfs 迁移至 COS ,实现了用户无感的存算分离,为各项目空间提供了更加灵活和高效的数据存储和计算服务。
2. 日常运营
成效与收获
1. 释放自助能力
2. 提升可靠性
-
事前检查:在任务上线之前,Athena 数据工厂会进行强逻辑的检查,以确保数据任务的稳定、正确产出。这些检查规则包括脚本语法、调度配置、资源权限等多方面的检查,可以避免数据上线后出现错误和异常,从根本上降低值班人员起夜率。
-
事中预警:在数据生产和消费过程中,平台会进行实时监控,并提供丰富的预警机制。当数据出现异常或达到预警阈值时,平台会及时发出预警信号,通知相关人员进行处理。这样就可以及时发现和解决数据异常,避免数据丢失和错误,保证数据的可靠性和稳定性。
-
事后复盘:故障发生后, QA 同学利用 GPT 依据 5why 分析法构建了复盘机器人,带领故障干洗人对 SLA 问题进行深度引导分析,找到根本解决方法,并预防类似问题的再次发生。
3. 优化 ETL 效率
- DAG 优化:首先,通过分析 Airflow 节点资源利用率,结合各类型任务 Client 执行所需的 CPU 和内存资源,合理分配整体 Pool 和 Worker Pool 的阈值,实现执行节点任务吞吐最大化。其次,由于各类型 DAG 运行周期交叉,最典型的就是天调度 DAG 与零散 DAG 的交叉,会发生调度资源、算力资源甚至 IO 资源竞抢,通过分析统计各 DAG 任务重要性和影响度,以及任务特征,合理分配各 DAG 的 Pool 大小,实现整体资源利用最大化。最后,根据单 DAG 上依赖模型和各任务自身特点,动态调整各 SLA 等级的任务权重,让重依赖、重保障的任务尽早运行,从而实现更高效的任务执行。
- 慢任务优化:治理团队投入最大的精力就是识别优化慢 SQL ,而慢 SQL 最常见的场景就是两种:( 1 )数据扫描量大,要么忘记加分区限制要么读取分区太多;( 2 )通常是嵌套 With as 较多临时查询的任务,导致解析计划中某一个或几个 Reduce 卡住,但写 SQL 的人员优先满足计算口径,而忽略数据倾斜或笛卡尔问题。由于目前底层 SQL 算力引擎已弹性,故在基线保障和成本控制的背景下,优先解决慢任务是效果最佳的治理手段,也是持续保障任务平均执行效率和性能的最佳实践。
- 组件优化:无论是 SQL 任务或是集成任务,都会依赖其他组件,而很多时候,随着数据量或读写压力的增加,组件出现性能瓶颈,而在任务角度观察是整体运行变慢或夯死,这时候就可以通过多维分析任务运行数据,观测拐点的任务特征,结合干系组件的性能监控波动,识别并对症下药。例如: JournalNode 、 RDBS 以及磁盘故障等。
4. 降低成本
总结与展望
1. 经验教训
在 Athena 数据工厂构建过程中,我们积累了许多宝贵的经验教训。以下是一些关键的点:- 注重目标用户体验:我们深刻认识到用户体验是平台成功的关键因素。在平台建设前期,团队投入了大量的时间与精力,组织数次产品 MVP 功能调研问卷,对目标用户群体进行了深入的调研,明确了他们的需求和期望。这不仅帮助我们确定了平台需要实现的核心功能,还让我们能够避免在设计过程中添加不必要的功能和复杂性,确保平台始终保持简洁、直观和易于使用的特性。此外,为了进一步优化用户体验,产品上线首年每月进行 Top3 用户测试和反馈收集,倾听用户的声音,并根据他们的反馈对平台进行了持续改进。
- 选择合适的技术栈:选择合适的技术栈对于平台的成功同样至关重要。在选择技术栈时,我们充分考虑了平台规模、性能需求、可扩展性以及维护成本等因素。我们进行了深入的技术调研和评估,与业内专家进行了充分的沟通和交流,最终选择了既符合平台需求又具有前瞻性的技术组合。
- 构建可扩展的架构:在构建平台的过程中,我们还特别注重架构的可扩展性。我们深知,随着业务的发展和数据的增长,平台的架构必须能够轻松应对未来的挑战。因此,我们采用了分布式系统、微服务架构等技术手段,确保平台能够灵活地扩展和适应新的需求。这种可扩展的架构不仅提高了平台的性能和稳定性,还为我们后续的维护和升级带来了极大的便利。
- 学习和不断改进:产品构建是一个不断学习和改进的过程。在产品的开发、测试、上线和运营等各个阶段,我们都保持高度的敏感性和警觉性,不断反思和评估平台的性能、用户需求反馈。虽然我们暂未建立成熟的 “ 数据飞轮 ” ,但积极收集和分析数据,通过数据驱动的方式发现平台存在的问题和不足,并制定相应的改进措施。这种持续改进的态度不仅帮助我们不断优化平台的功能和用户体验,还让我们能够紧跟行业发展的步伐,保持平台的竞争力和创新性。
2. 未来迭代
-
对于用户自助开发过程中的代码调试和报错任务,提供基于 AI 的分析协助能力。利用大语言模型,我们能够快速准确地理解用户的问题,并提供有针对性的解决方案。这种智能化的分析协助能力不仅可以提高用户的工作效率,还可以减少用户的焦虑和压力,提升他们的使用体验。
-
优化可观测能力,解决大任务等对稳定性和性能带来的系统性负面影响。持续评估和优化计算资源的性能,确保它们在处理大量数据时高效运行。定期进行基准测试和性能评估,以确定计算资源的瓶颈和潜在优化机会。利用性能监控工具和指标来实时监测计算资源的使用情况,并及时采取措施解决性能问题。同时,优化计算资源的配置,例如调整 CPU 、内存、存储等参数,以提高资源利用率和性能。
-
将核心功能和底层引擎容器化,这样可以实现资源的动态分配和管理,提高系统的灵活性和可扩展性。同时,可以更轻松地部署和管理应用程序,提高资源利用率和效率,降低成本,并确保系统的稳定性和可靠性。同时,要开始在架构层次思考低成本支持跨平台和云原生应用,这可以提高系统的灵活性和可扩展性,同时降低开发和维护成本。
如果这个文章对你有帮助,不要忘记 「在看」 「点赞」 「收藏」 三连啊喂!

我在B站读大学,大数据专业
我们在学习Flink的时候,到底在学习什么? 193篇文章暴揍Flink,这个合集你需要关注一下 Flink生产环境TOP难题与优化,阿里巴巴藏经阁YYDS Flink CDC我吃定了耶稣也留不住他!| Flink CDC线上问题小盘点 我们在学习Spark的时候,到底在学习什么? 在所有Spark模块中,我愿称SparkSQL为最强! 硬刚Hive | 4万字基础调优面试小总结 数据治理方法论和实践小百科全书
标签体系下的用户画像建设小指南
4万字长文 | ClickHouse基础&实践&调优全视角解析
【面试&个人成长】社招和校招的经验之谈 大数据方向另一个十年开启 |《硬刚系列》第一版完结 我写过的关于成长/面试/职场进阶的文章 当我们在学习Hive的时候在学习什么?「硬刚Hive续集」