贝壳技术分享:实时计算平台与数仓建设

版权申诉
0 下载量 157 浏览量 更新于2024-07-04 收藏 2.23MB PDF 举报
"贝壳实时计算平台建设实践,涵盖了从2018年到2021年的技术演进,包括Hermes实时计算平台、SQL的迭代、实时数仓的构建以及Pandora事件处理平台的建设。平台支持多种语言如Java、Scala和Python,提供任务生命周期管理、监控报警功能,并采用Flink、Spark等技术栈。" 在贝壳的实时计算平台建设过程中,经历了从SparkStreaming到Flink的转型。2018年3月,Hermes实时计算平台基于SparkStreaming搭建,主要提供任务托管和生命周期管理。随着技术的发展,平台在2018年10月引入了SQL1.0,基于SparkStructuredStreaming进行优化。2019年5月,平台开始转向Flink,支持Flink任务,同年8月推出了基于Flink1.8的SQL2.0。2019年11月,实时数仓开始建设,基于SQL2.0实现。 Hermes实时计算平台的架构包括了计算和存储层,引擎层,以及开发管理层。它支持Flink和SparkStreaming等多种计算引擎,依托于YARN进行任务调度。平台还集成了各种数据存储,如Redis、ClickHouse、RMDB、HDFS、HBase和Hive。任务管理、模板管理、连接管理和监控报警等功能确保了平台的稳定性和高效性。此外,平台提供了多种任务类型,包括自定义任务、模板任务和场景任务,以及专有队列和公共队列来实现资源隔离。 在任务生命周期管理方面,Hermes平台支持任务从新建到停止的全过程,包括启动任务、启动中、运行中、已停止等状态。当任务出现异常或失败时,系统可以自动重试或由用户手动重启。同时,平台具有完善的监控报警机制,如自定义Listener、自定义Report、javaagent,以及通过SDK实现的代码级监控。监控报警还包括元信息、Hermes任务id、metric信息,以及对Kafka消息、心跳和延迟的报警。 实时数仓建设方面,平台具备连接管理、表管理和元数据管理的能力,实现了ODS(Operational Data Store)、DWD(Deduplicated Warehouse Data)、DWS(Data Warehouse Stage)和OLAP(Online Analytical Processing)的数据分层。此外,还支持标准SQL语法,图形化开发环境,以及维表关联,通过图形化展示和链路分析,为用户提供了便捷的实时数据流查看和数据血缘追踪。 Pandora事件处理平台则专注于规则和复杂事件处理(CEP),在2020年12月推出,为贝壳的实时业务决策提供了强大的支持。 贝壳的实时计算平台建设是一个不断演进和优化的过程,旨在提供高效、稳定且功能丰富的实时大数据处理能力,服务于推荐、风控、BI等多个业务场景。