当前位置:首页 期刊杂志

基于开源框架的大数据智能报表平台的设计与关键技术

时间:2024-05-04

张文兵

(神华和利时信息技术有限公司 北京市 100001)

为实现煤炭、电力、化工等各大产业板块报表及各层级单位报表的多级应用,落实上级的统一数据报送要求,满足数据采集报送、分类统计、共享协同、数据展示、分析预测等数据资源管理系统建设的业务需求,以及加强各单位之间的数据融合,实现集团全口径统计数据管理,并且满足不同单位可以实现自定义报表功能的实际需要,完成全过程、全口径业务统计分析,整合生产历史数据,提高数据整合和经营统计分析能力、加强数据校验水平。智能报表平台通过大数据、容器化、微服务、多租户和分布式服务等技术的应用为集团高层决策提供了可靠的数据支撑。

1 总体架构

智能报表平台按照集团指标标准体系和管控平台要求实现指标统一分类、统一定义,确保指标分类科学、定义准确、来源清晰、接入规范、质量可控、数据可用。面向集团报表的整体需求,平台分三个组成部分:统计平台、采集平台、报表平台。提供了数据从采集、填报、校验、计算、汇总统计、报表、搜索、共享发布及服务的一体化解决方案。

平台采用大数据平台的数据支撑和标准支撑为基础。统计平台作为整个平台的支撑,提供了统一认证、多租户、授权、监控、报表引擎等服务。采集平台主要在数据填报、数据采集、数据校验、报送流程管理等功能方面进行技术实现与扩展。报表平台主要在集群部署、参数可视化配置、报表打印、报表阈值管理等工作内容进行建设实施。

采集平台通过从PC 端、移动端批量或者定时采集的方式采集并校验从而完成数据上报。通过采集平台配置Oracle 等关系型数据库、Web Service 接口等形式的数据源作为数据接入层,并通过TCP 协议将加密数据传输至采集平台,通过全文检索引擎完成数据的索引和格式化存储。报表平台负责对数据解析、制定计算规则、设置报表参数、阈值等完成报表的初始化配置与展现。平台具有高兼容性、高吞吐、高并发、可视化分析、大数据分析等特点。

2 关键技术

2.1 技术选型

报表平台设计遵循可用性高、可扩展性强、响应迅速的要求。选择基于开源的大数据及其相关组件作为选型标准,要求系统7×24 小时持续可用,可在每日特定时间段内对系统进行维护。要求数据存取服务准确,不能丢失数据。扩展性方面要求系统功能扩展或用户量增加时应不影响现有系统功能和结构,能够方便后续其他系统模块的扩展,能够当系统数据量和访问量增大而导致系统配置不能满足要求时,可以通过仅增加服务器等硬件进行解决。在系统响应方面,要求支持数10 万客户同时在线填报和执行数据校验规则时,页面响应时间在3 秒以内。

数据采集包括批量采集技术ETL-Data Services,它通过ETL技术将数据从数据资源层采集至报表平台;非结构化数据采集技术Flume,提供一个模块分明,易于开发的高可用,高可靠,分布式的海量日志采集、聚合和传输系统;Java 采集接口,通过接口采用统一数据交换格式由第三方系统采集数据;BW-OpenHub 数据推送接口,从数仓采集数据到报表平台。

存储方面平台采用分布式存储策略,存储技术采用关系型数据库MySQL、分布式数据库MongoDB 和分布式全文搜索引擎ElasticSearch、内存数据库Redis 以及离线缓存服务IndexedDB。

数据分析处理方面平台使用包括脚本语言、分布式消息队列KafKa、分布式计算引擎Spark、算法应用Python、机器学习MLlib、深度学习TensorFlow 等开源技术中先进的分布式计算引擎和丰富的数据模型及算法。

针对高可用、高性能、扩展性强的业务特点,平台选择基于容器化的应用部署方式。Docker 作为一种新兴的虚拟化方式,比传统虚拟化方式有更多优势:

(1)Docker 实现了更快地应用交付和部署,可以解决传统方式下应用部署的步骤繁琐问题,

(2)使用Kubernetes 的容器管理功能,实现了更轻松地应用迁移和扩展,能在系统扩展上发挥独特优势,借助kubernetes 强大的容器管理和编排功能,可以实现在占用较少服务器资源的情况下,更方便地进行应用的迁移与扩展,解决了随着用户量不断增加而导致的传统方式下服务器资源调度效率低下的问题。同时提高了应用迭代更新的效率,容器启动也能秒级响应,大量节约了开发、部署的时间。

(3)Docker 实现了更简单地应用管理,应用修改以增量方式分发和更新,实现了高效地自动化应用管理。

2.2 关键技术

2.2.1 数据采集

平台数据采集层使用采集工具和基于Node.js、Java 自主开发的数据采集模块完成数据采集工作。平台数据采集层支持数据自动采集,减少了人工填报的工作量,并可实现同一张报表或脚本支持多个不同的数据源,如关系型数据库、文本数据源、多维数据库、NoSQL 数据库、分布式文件存储系统、时序数据库等。采集工具包括批量采集技术ETL-Data Services 以及开源的非结构化数据采集工具Flume。ETL-Data Services 通过ETL 技术,将数据从第三方平台的数据资源层加载到报表平台,Flume 提供一个高可用、高可靠、分布式的海量数据采集、聚合和传输系统,Flume 将需要同步数据的第三方平台信息通过配置文件配置到工具采集端,通过对报表数据的解析、转换将数据格式转换成报表平台的数据规范,从而完成数据的采集工作。

Java 接口数据采集的模式是根据第三方平台的数据规范和要求,通过统一数据交换格式,定制开发专属数据采集程序从而完成从第三方系统的数据采集需求。此外平台从数据仓库BW 采集数据时,可以通过BW 提供的OpenHub 接口技术,把数据推送到报表平台。

通过以上采集手段丰富了平台采集模块的功能,使采集模块可从不同的数据源中抽取、传输、转换和加载数据到统计分析库中,完成ETL 过程,实现从各种数据源到报表平台的格式化存储过程。

2.2.2 数据存储

平台采用分布式存储策略,存储技术包括关系型数据库MySQL、分布式数据库MongoDB 和全文检索引擎ElasticSearch、内存数据库Redis 以及离线缓存IndexedDB。

基于传统报表系统存在数据存取效率低的现状,平台存储采用分布式部署架构,选择开源分布式文件存储数据库MongoDB做存储集群为Web 应用提供可扩展的高性能数据存储解决方案。MongoDB 支持格式化以及非格式化的数据结构,功能丰富,可以存储比较复杂的数据类型,同时还支持数据建立索引以增强数据查询的性能。MongoDB 集群在保证扩展能力的同时实现了数据读写均衡、高吞吐量,有效的提高了数据存取的效率,同时运用分片技术,智能拆分数据,分片执行任务,实现数据关联查询的高性能。数据存储服务提供负载均衡能力,保证短任务的快速响应、实现报表数据的快速读写。

分布式全文检索引擎ElasticSearch 实现了报表数据的高速检索、聚合以及高性能关联汇总查询,利用查询缓存技术提高查询体验。针对报表的多任务处理,采用智能队列技术,合并相似任务,提高磁盘读写数据的利用率。报表平台利用ElasticSearch 高扩展、高实时性的搜索与数据分析引擎完成了多报表的索引和关联查询,解决了传统关系型数据库多表关联查询效率低的问题,大大提升了报表数据的分析能力。

2.2.3 容器化

平台采用微服务架构来承载高并发的需求。基于分布式微服务协同架构的计算引擎、汇总引擎、审核引擎、搜索引擎等支持海量数据运算,支持容错能力,每个数据节点都有备份,有节点失效仍能保证系统运行。集群中的微服务节点都是对等的,多机可同时服务。大量的高并发高耗时任务可在微服务架构下协同进行,并能够智能合并任务,完成多级并发操作。

平台基于微服务的架构设计,让系统整体变得复杂,提升了测试和运维部署的成本,针对微服务场景下进程多、迭代快的实际需求,平台采用基于开源的Kubernetes 和Docker 实现了微服务的容器化。容器化技术有效的减轻了微服务模块的测试、部署以及运维的负担。同时Docker 解决了各微服务运行时的隔离问题,并且通过打包应用本身及其所有依赖,实现了良好的可移植性以及各环境部署的一致性,打通了开发测试发布的整个流程。基于轻量级、易扩展的Docker 服务,各微服务模块很容易实现持续集成、持续部署以及计算性能的线性扩展。各模块如汇总引擎微服务的容器化,通过构建Dockerfile 描述文件把微服务制作成镜像,并上传到镜像私有仓库。通过基于Kubernetes 的容器编排管理框架,实现各个微服务的快速部署和迭代,并且可以实现各微服务之间的组合编排形成应用。同时Kubernetes 简化了部署复杂度并且实现了低成本的应用秒级回滚,也提供了应用的可伸缩、高可用、高容错特性。

2.2.4 多租户

报表平台中数据源来自于各第三方系统,数据敏感度高,用户之间权限隔离度要求高,平台内各系统数据要求相互隔离存储,避免造成数据权限混乱从而导致的数据资源滥用,因此数据安全在报表平台中显得尤为重要。

报表平台提供安全访问控制功能,包括:身份识别、访问授权、功能访问鉴权和数据访问鉴权。访问授权分为功能授权和数据授权,功能授权决定用户能访问的功能,即用户能看见的功能菜单、按钮等;数据授权决定用户访问某功能时能读取的数据范围。平台支持数据访问鉴权,在后台程序处理用户提交请求时,系统必须根据当前用户拥有的权限决定此用户是否具有访问此功能的权限,防止用户更改请求URL 跨功能访问。平台还提供数据分级管理功能,建立数据分级访问制度,确定用户对业务数据特别是敏感的业务数据的访问范围,访问时效等。

报表平台采用多租户架构,有独立的租户管理模块,通过系统管理员分配租户,租户可自行定制自身的业务。平台支持租户间资源隔离及共享,包括CPU、内存、存储、网络、数据库集群等。租户间数据隔离,采用类“数据库实例”概念隔离,隔离级别最高,安全性最好,保障了数据安全性,且故障恢复互不影响。租户间的数据共享由平台的数据共享模块统一管理,通过数据共享提高了数据利用率。平台采用独立数据架构,底层通过Node.js 实现不同租户绑定不同的数据库,保证安全性的同时提高数据隔离和数据扩展级别,简化了数据模型的扩展设计,满足了不同租户的独特需求,针对故障情况,恢复数据也更简单。多租户表单定制具有良好的跨平台性、易用性以及即配即用特点。租户通过数据定制选择和配置数据存储模式,精准地配置所需要呈现在界面上的业务属性元素、页面的样式及应用操作,满足了不同租户的业务需求。

3 结语

智能报表平台已在集团多个业务系统中成功应用,为全集团各级单位提供报表服务,平台各功能都实现了既定目标。基于开源框架实现的智能报表平台满足了全集团多层级、多业务的应用需求,实现了集团各级数据的采集、存储、处理、分析、展现全过程以及指标数据的标准化、模型化管理,实现了各种对上、对外报送任务的自动化解决,数据就源输入以及一次填报多处应用的功能。平台整体提升了集团数据资源统一管理和利用水平,同时共享业务能力和基础技术能力,提高了数据质量并增强了集中管控,整体降低了集团总部及各层级单位重复建设的资金成本、时间成本和试错成本。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!