背景
在这个项目之前,也做过一个准实时的项目,大约延时10分钟左右,但是对业务单位的数据有要求,需要提供数据变化表,采用批量方式抽取,通过仓库调度系统控制任务顺序和数据流向。存在的问题:需要业务方做配合,提供数据变化表(删除,修改,新增);数据准实时,有10分钟延时;任务有异常的时候,从错误时间补数据需要耗费大量时间且找到数据偏移不容易。所以开始寻求一种通用的实时数据服务平台,目标是开发成本较低,延时少,稳定性高。
需求
根据需求目标有多种数据来源,数据库,文件,HTTP,SYSLOG,数据量较大,目标支持20000/s的数据抓取和请求,提供在线服务请求和数据查询。
设计
根据需求我们做出来如下图的设计方案,
从下往上是数据的流向,底部是实时数据采集和数据数据捕获层,中间是实时数据接收层,上面是数据处理和计算层,顶部是数据服务层。
1. 数据采集层,捕获层
因为数据来源较多,有通过syslog发的,tcp发的,http发的,还有主动捕获数据的,数据库包括mysql, sqlserver,还有log文件方式;将来还需要补充oracle数据库和客户端插件方式。mysql数据库数据变化采用的是binlog解析方式,利用了中间件,sqlserver数据库采用了cdc捕获方式,其余的是在flume基础上做二次开发或自研。
2. 数据接收层
flume和kafka做数据接收和消息队列,实践证明这个框架还是很成熟稳定,每秒20000次的测试轻松搞定。flume方面需要做一定的二次开发,进kafka根据不同的topic进行设置。
3. 数据处理和计算层
需要统计计算的数据从storm框架计算,得到结果集插入数据库或直接提供在线统计服务;需要提供明细数据服务的根据不同的需求发往hbase或者elasticsearch。
4. 数据服务层
插入数据库的数据提供给前台报表展现,在线服务可以提供给前台展现或第三方调用;hbase的数据服务提供key-value的明细数据查询,elasticsearch的数据服务提供多种组合条件的查询。
分享到:
相关推荐
本文将详细介绍如何基于Python这一强大的编程语言,设计并实现一个功能全面、操作简便的可视化数据分析平台。 首先,Python作为一种高级编程语言,其应用功能的强大性使得它可以在多个领域中发挥作用,如大型信息...
电力系统实时数据服务平台的研究,旨在为电力系统提供一个高效的数据管理解决方案,确保电力系统各个环节的实时数据得到有效收集、处理和应用。 首先,电力系统实时数据的重要性不言而喻。在电力系统中,各类设备的...
本文旨在设计和实现一个基于分布式的农业气象大数据平台,以满足湖北省农业气象服务的需求。该平台将实现数据的收集、存储和应用,提供气象信息化服务,促进气象信息的共享和应用。 平台的设计考虑了以下几个方面:...
Labview数据实时采集和存储.vi是个人在实际项目中成功的应用,可实现数据的实时采集和存储,同时利用XY图实现波形图表中可设定缓存历史数据长度功能,供大家参考借鉴。
本项目是一个基于JavaEE的智能实时疫情监管服务平台的设计与实现,主要面向计算机相关专业的学生进行毕业设计,同时也可作为Java学习者的实战练习项目。项目包含了完整的源代码、数据库脚本以及详细的开发说明,并...
系统目标:协同服务平台的主要目标是提供一个集成的协同服务平台,实现多方之间的实时通信、协作和信息共享。 用户角色:协同服务平台的用户角色包括会议组织者、会议参与者、管理员等。 业务流程:协同服务平台的...
数据字典是一种用于描述数据的结构和组织方式的文档,是数据设计和开发的重要组成部分。在设计数据字典时,需要考虑到数据的存储、处理和维护等方面,以确保数据的正确性、完整性和一致性。 在本文档中,我们将详细...
社会发展日新月异,用计算机...这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。
总的来说,这个项目展示了MATLAB如何结合GUI和串口通信技术,实现一个实时数据接收和可视化的工具。这不仅要求对MATLAB编程有深入理解,还需要熟悉串口通信协议和数据处理技术。对于想要开发类似应用或者进行串口...
金融风控数据平台是金融科技...以上是关于“金融风控数据平台-基于SpringBoot+SpringCloud设计实现”项目的详细知识点介绍。这样的系统设计确保了金融风控数据处理的高效、稳定和安全,适应了现代金融业务的复杂需求。
ArcServer 平台的实现原理是基于 ASP 技术,能够提供动态数据连接和实时更新功能。 ArcServer 平台的实现需要考虑到平台的架构、数据存储和管理、用户界面设计等几个方面。 基于 WebGIS 的旅游信息系统设计与实现...
“面向服务架构(SOA)的跨平台数据交换与搜索”系统(简称IDB,internet database 互联网数据库)在模仿大脑记忆的基础上设计出了智能的“准一维数据结构”,并利用“准一维数据结构” 从根本上解决了异构数据源问题...
【Qt串口接收数据实时曲线】是一个基于Qt框架的应用程序,用于实现串行通信的数据收发及实时数据显示。Qt是一个跨平台的C++图形用户界面库,提供了丰富的API和工具,便于开发各种桌面和移动应用。这个应用的核心功能...
总结起来,这个项目展示了如何使用C#语言和串口通信技术,构建一个能够实时接收、显示和存储下位机数据的上位机应用。它涵盖了数据通信、用户界面设计、数据库操作等多个IT领域的核心技术,是理解并实践工业级数据...
1. **选择数据源**:首先,你需要一个提供实时股票数据的API或服务。常见的有雅虎财经、Google财经、Bloomberg、Reuters等。你需要注册并获取API密钥或订阅服务。 2. **API接口设计**:使用Delphi的网络组件,如...
《XX市智慧城市数据管理平台详细设计》文档涵盖了构建智慧城市数据管理平台的核心技术和关键要素,旨在实现城市信息化、智能化的高效管理。以下是对该文档主要内容的详细解析: 一、智慧城市概述 智慧城市是运用...
本平台使用 JavaScript 实现数据可视化,能够实时上传数据,帮助出行者对比选择最佳的出行方式和路线。 本平台的设计与实现旨在解决旅游行业面临的挑战,提高旅游业的发展水平。该平台能够实时上传数据,帮助出行者...
总结来说,面向大数据服务的物联网软件平台设计涵盖了数据采集、存储、处理、分析、服务管理和安全等多个层面,旨在构建一个高效、灵活、安全的环境,使企业能够充分利用物联网产生的大数据,实现业务智能化和优化。...
数据交换共享中心设计方案是一种整合协同平台,旨在提供一种安全、可靠、高效的数据交换机制,实现多来源渠道的数据融合处理、实时数据和历史数据的组织、数据服务的提供、权限管理和安全性保障等功能。该平台能够...