CN115481097A - 实现海量流量下实时数据报表的方法、装置和计算机设备 - Google Patents

实现海量流量下实时数据报表的方法、装置和计算机设备 Download PDF

Info

Publication number
CN115481097A
CN115481097A CN202211048974.8A CN202211048974A CN115481097A CN 115481097 A CN115481097 A CN 115481097A CN 202211048974 A CN202211048974 A CN 202211048974A CN 115481097 A CN115481097 A CN 115481097A
Authority
CN
China
Prior art keywords
data
real
time
calculation result
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211048974.8A
Other languages
English (en)
Inventor
赵贝贝
李冉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202211048974.8A priority Critical patent/CN115481097A/zh
Publication of CN115481097A publication Critical patent/CN115481097A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种实现海量流量下实时数据报表的方法、装置和计算机设备,其中,该实现海量流量下实时数据报表的方法包括:获取业务数据,将业务数据存储至分布式键值集群,并从分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对动态数据分片进行实时计算,得到实时计算结果,进一步地,获取Hadoop集群中的历史数据,对历史数据进行离线计算,得到离线计算结果,从而根据实时计算结果和离线计算结果,确定实时数据报表,通过本申请,解决了无法处理海量数据并生成实时数据报表的问题,实现了在海量流量下生成实时数据报表的有益效果。

Description

实现海量流量下实时数据报表的方法、装置和计算机设备
技术领域
本申请涉及数据统计领域,特别是涉及实现海量流量下实时数据报表的方法、装置和计算机设备。
背景技术
在各个产品平台中,业务系统数量逐渐增加且类型复杂化,而基于平台经营决策的需求,需要对用户使用各个业务系统所产生的业务数据进行统计与存储,并实时计算分析业务数据,以支持业务经营和快速决策。因此,通常对业务数据运行大量计算,生成各种数据报表,从而高效指导业务的运营策略。
目前的数据分析方法,各个业务系统单独生成对应的业务数据报表,具体地,根据不同的业务类型,将数据以队列的形式进行暂存,基于各队列对应的主题信息,计算处理业务数据并进行存储。通过该方法处理后的业务数据分散单一,且生成数据报表工具的架构体系简单,导致无法承载海量数据的计算需求以及实时生成业务数据报表。
针对相关技术中存在无法处理海量数据并生成实时数据报表的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种实现海量流量下实时数据报表的方法、装置和计算机设备,以解决相关技术中无法处理海量数据并生成实时数据报表的问题。
第一个方面,在本实施例中提供了一种实现海量流量下实时数据报表的方法,所述方法包括:
获取业务数据,将所述业务数据存储至分布式键值集群;
从所述分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对所述动态数据分片进行实时计算,得到实时计算结果;
获取Hadoop集群中的历史数据,对所述历史数据进行离线计算,得到离线计算结果;
根据所述实时计算结果和所述离线计算结果,确定实时数据报表。
在其中的一些实施例中,所述获取业务数据包括:
通过数据库Binlog采集中间件,秒级采集业务系统数据库日志,得到所述业务数据。
在其中的一些实施例中,所述将所述业务数据存储至分布式键值集群包括:
通过数据库中间件MyCat,将所述业务数据存储至消息队列集群;
在所述消息队列集群中,对所述业务数据进行预处理;
所述预处理包括通过流量控制系统消费所述业务数据,以及将所述业务数据进行数据校验过滤和数据幂等性维持;
将处理后的所述业务数据存储至所述分布式键值集群。
在其中的一些实施例中,所述根据动态调度任务和预设的静态数据,对所述动态数据分片进行实时计算,得到实时计算结果包括:
对所述动态数据分片和所述预设的静态数据进行SQL计算,得到数据中间状态;
对所述数据中间状态和所述动态调度任务进行计算,得到所述实时计算结果。
在其中的一些实施例中,所述获取Hadoop集群中的历史数据,对所述历史数据进行离线计算包括:
获取所述Hadoop集群中的所述历史数据,其中所述历史数据包括全量数据;
对所述全量数据进行离线计算,得到历史计算结果。
在其中的一些实施例中,所述获取Hadoop集群中的历史数据,对所述历史数据进行离线计算包括:
获取所述Hadoop集群中的所述历史数据,其中所述历史数据包括增量数据;
对所述增量数据进行离线计算,得到增量计算结果。
在其中的一些实施例中,所述根据所述实时计算结果和所述离线计算结果,确定实时数据报表包括:
通过数据库中间件读取所述实时计算结果和所述离线计算结果,生成对应的所述实时数据报表。
第二个方面,在本实施例中提供了一种实现海量流量下实时数据报表的装置,所述装置包括:
获取模块,获取业务数据,将所述业务数据存储至分布式键值集群;
动态模块,从所述分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对所述动态数据分片进行实时计算,得到实时计算结果;
离线模块,获取Hadoop集群中的历史数据,对所述历史数据进行离线计算,得到离线计算结果;
生成模块,根据所述实时计算结果和所述离线计算结果,确定实时数据报表。
第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的实现海量流量下实时数据报表的方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的实现海量流量下实时数据报表的方法。
与相关技术相比,在本实施例中提供的实现海量流量下实时数据报表的方法、装置和计算机设备,通过获取业务数据,将业务数据存储至分布式键值集群,并从分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对动态数据分片进行实时计算,得到实时计算结果,进一步地,获取Hadoop集群中的历史数据,对历史数据进行离线计算,得到离线计算结果,从而根据实时计算结果和离线计算结果,确定实时数据报表,解决了无法处理海量数据并生成实时数据报表的问题,实现了在海量流量下生成实时数据报表的有益效果。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一实施例提供的实现海量流量下实时数据报表的方法的终端设备的硬件结构框图;
图2是本申请一实施例提供的实现海量流量下实时数据报表的方法的流程图;
图3是本申请一实施例提供的实现海量流量下实时数据报表的方法的优选流程图;
图4是本申请一实施例提供的实现海量流量下实时数据报表的装置的结构框图。
图中:10、获取模块;20、动态模块;30、离线模块;40、生成模块。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的实现海量流量下实时数据报表的方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的实现海量流量下实时数据报表的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种实现海量流量下实时数据报表的方法,图2是本实施例的实现海量流量下实时数据报表的方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,获取业务数据,将业务数据存储至分布式键值集群。
具体地,键值数据库(Key-Value Database,简称为KV数据库)是一种以键值对存储数据的非关系数据库,其中键值对包括关键字key和数据value,在KV数据库中,根据每个关键字获取一个对应数据的具体内容,例如,对于键值对(Key1:Value1),则可以通过关键字“Key1”快速查找到对应的数据内容“Value1”。
需要知道的是,分布式KV集群包括远程字典服务集群(Remote DictionaryServer Cluster,简称为Redis集群)、Tair集群和Memcached集群等。
进一步地,通过分布式KV集群对业务数据进行分布式缓存,其中分布式KV集群通过主从数据库实现读写分离,并且将KV数据库部署在多个服务器节点上,使得每个节点负责总数据集的一个子集,在各个节点中对业务数据进行缓存。
步骤S220,从分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对动态数据分片进行实时计算,得到实时计算结果。
具体地,在分布式KV集群中,通过数据分片管理器获取动态数据分片,此处以Redis集群为例,基于哈希分区规则,采用虚拟槽分区,根据哈希函数将业务数据映射到一个固定范围内的整数集合,而槽是集群内数据管理和迁移的基本单位,且本质上是节点的抽象化,从而将整个业务数据集按照分区规则映射到多个节点,每个节点负责维护一部分槽及其所映射的键值数据,进一步地,由每个节点组对应一个动态数据分片。
步骤S230,获取Hadoop集群中的历史数据,对历史数据进行离线计算,得到离线计算结果。
具体地,将历史数据存储至Hadoop集群,其中历史数据包括全量数据和增量数据。
需要知道的是,在Hadoop集群中,通过Hadoop分布式文件系统(HadoopDistributed File System,简称为HDFS)将限定时间范围内的历史数据切割成块分布到集群环境中,采用主从架构对历史数据进行离线存储。
进一步地,对全量数据进行离线计算,得到历史计算结果,以及对增量数据进行离线计算,得到增量计算结果,并基于内存,对历史计算结果和增量计算结果进行增删改查,得到离线计算结果。
步骤S240,根据实时计算结果和离线计算结果,确定实时数据报表。
目前的数据分析方法,各个业务系统单独生成对应的业务数据报表,具体地,根据不同的业务类型,将数据以队列的形式进行暂存,基于各队列对应的主题信息,计算处理业务数据并进行存储。通过该方法处理后的业务数据分散单一,且生成数据报表工具的架构体系简单,导致无法承载海量数据的计算需求以及实时生成业务数据报表。而本实施例对现有技术中的数据存储模式进行优化,将所有业务数据分为动态数据和历史数据,通过MySQL实时存储动态数据以及Hadoop集群离线存储历史数据,以实现对海量业务数据的分布式存储,进一步地,将动态数据缓存至分布式KV集群并进行SQL实时计算,以及对Hadoop集群中的历史数据进行离线计算,通过两条计算链路缓解系统架构的计算压力,由此可见,基于分布式存储,在能够对存储的集群进行扩容的同时,通过分布式计算对海量数据进行高效处理,从而解决了无法处理海量数据并生成实时数据报表的问题,实现了在海量流量下生成实时数据报表的有益效果。
在其中的一些实施例中,获取业务数据包括如下步骤:
通过数据库Binlog采集中间件,秒级采集业务系统数据库日志,得到业务数据。
具体地,数据库Binlog采集中间件包括Canal、Maxwell以及mysql_streamer等,此处以Canal为例,在采集过程中,Canal通过伪装成数据库的从库,读取主库发出的MySQL二进制日志并进行解析,将解析得到的数据发送至存储目的地,以提供增量数据订阅和消费。
需要知道的是,MySQL二进制日志主要用于记录修改数据或者可能引起数据变更的MySQL语句,以及对MySQL数据库执行更改的所有操作进行记录,其中包括语句发生时间、执行时长和操作数据等操作信息。
通过本实施例,通过数据库Binlog采集中间件,秒级采集业务系统数据库日志,从而对变更的业务数据进行数据同步,以此实时更新业务数据。
在其中的一些实施例中,将业务数据存储至分布式键值集群包括如下步骤:
步骤S211,通过数据库中间件MyCat,将业务数据存储至消息队列集群;
步骤S212,在消息队列集群中,对业务数据进行预处理;
步骤S213,预处理包括通过流量控制系统消费业务数据,以及将业务数据进行数据校验过滤和数据幂等性维持;
步骤S214,将处理后的业务数据存储至分布式键值集群。
具体地,通过数据库中间件MyCat对业务数据进行分库分表,将不同的库放在不同的数据库服务器以及在每个库中放多张表,并将分库分表后的业务数据存储至消息队列集群,同时配合数据库的主从模式实现读写分离。
需要知道的是,消息队列集群包括RocketMQ集群、RabbitMQ集群和Kafka集群等,此处以Kafka集群为例,Kafka是一个基于发布-订阅的分布式消息系统,通过将业务数据缓存在消息队列中,缓解数据流量压力。
进一步地,在消息队列集群中,对业务数据进行预处理,首先通过流量控制系统消费业务数据,调节集群中各个节点的数据流量,且通过数据校验过滤对业务数据进行筛选,以及通过悲观锁、乐观锁或唯一索引等方法实现数据幂等性,其中数据幂等性指的是数据的多次调用操作不会对其一致性进行破坏,并将预处理后的业务数据存储至分布式键值集群。
通过本实施例,通过数据库中间件MyCat,对业务数据进行分库分表,并存储至消息队列集群,进而通过数据校验过滤和数据幂等性维持方法,预处理业务数据,从而实现业务数据的分库分表存储,以及对业务数据流量进行控制。
在其中的一些实施例中,根据动态调度任务和预设的静态数据,对动态数据分片进行实时计算,得到实时计算结果包括如下步骤:
步骤S221,对动态数据分片和预设的静态数据进行SQL计算,得到数据中间状态;
步骤S222,对数据中间状态和动态调度任务进行计算,得到实时计算结果。
具体地,根据业务数据的类型和对应数据报表的具体需求,编写对应的SQL语句,对动态数据分片和预设的静态数据进行查询与统计,得到数据中间状态。
需要知道的是,根据一定维度将存放在单一节点的业务数据分布至多个节点中,以得到动态数据分片,而预设的静态数据包括业务系统中较为稳定的数据信息,例如品牌、分类和学历等。
进一步地,在任务调度管理器中,根据业务系统对应的动态调度任务,通过聚合运算和组合统计等方法对数据中间状态进行查询与统计,得到实时计算结果,其中动态调度任务包括任务耗时以及统计指标等,而统计指标具体包括内存使用率、运行任务数和内存容量等。
通过本实施例,根据动态调度任务和预设的静态数据,编写对应的SQL语句,对动态数据分片进行查询与统计,以此实现对业务数据的实时计算。
在其中的一些实施例中,获取Hadoop集群中的历史数据,对历史数据进行离线计算包括如下步骤:
获取Hadoop集群中的历史数据,其中历史数据包括全量数据;
对全量数据进行离线计算,得到历史计算结果。
具体地,在Hadoop集群中,提取历史数据中部分全量数据,其中全量数据指的是在一定周期内需要迁移的数据库系统中全部数据,基于Hive和Spark对全量数据进行离线计算,得到历史计算结果。
需要知道的是,Hive是基于Hadoop集群的数据仓库工具,而Spark是基于内存的分布式计算框架,支持SQL查询与分析,通过Hive将全量数据对应的数据库映射为数据表,Spark则从Hive中提取结构化数据,对全量数据进行分布式计算,从而通过Spark离线计算,对全量数据进行统计分析。
通过本实施例,提取历史数据中部分全量数据,并进行基于Hive和Spark的离线计算,得到历史计算结果,实现对历史全量数据的统计分析。
在其中的一些实施例中,获取Hadoop集群中的历史数据,对历史数据进行离线计算包括如下步骤:
获取Hadoop集群中的历史数据,其中历史数据包括增量数据;
对增量数据进行离线计算,得到增量计算结果。
具体地,在Hadoop集群中,提取历史数据中的增量数据,并基于Hive和Spark对增量数据进行离线计算,得到增量计算结果。
需要知道的是,将历史数据存储至Hadoop集群之后,分析并提取出变更过的增量数据,其中,增量数据指的是在数据库系统的迁移过程中新产生的数据。
通过本实施例,提取历史数据中的增量数据,并对增量数据进行Spark离线计算,得到增量计算结果,通过全量计算转增量计算,只需离线计算部分全量数据,以此提高离线计算的性能,实现对离线计算链路的优化。
在其中的一些实施例中,根据实时计算结果和离线计算结果,确定实时数据报表包括如下步骤:
通过数据库中间件读取实时计算结果和离线计算结果,生成对应的实时数据报表。
具体地,实时计算结果和离线计算结果存储在MySQL主从数据库中,数据查询平台通过数据中间件读取MySQL主从数据库中的实时计算数据和离线计算数据,并汇总生成对应的数据报表。
需要知道的是,数据库中间件用于在海量数据流量下,解决数据的存储与处理问题,同时增加数据访问功能,具体包括Atlas、MySQL Router以及MyCat等数据库中间件。
进一步地,在用户对业务系统进行操作后,数据查询平台则对数据报表进行实时更新,并且通过选择数据查询的时间范围,可以对历史的业务数据进行查询。
通过本实施例,在数据查询平台中,通过数据中间件读取MySQL主从数据库中的实时计算数据和离线计算数据,生成对应的数据报表,并且根据用户的业务系统操作,能够实时更新数据报表,以此实时高效指导业务经营和快速决策。
下面通过优选实施例对本实施例进行描述和说明。
图3是本实施例的实现海量流量下实时数据报表的方法的优选流程图,如图3所示,该实现海量流量下实时数据报表的方法包括如下步骤:
步骤S310,通过数据库Binlog采集中间件,秒级采集业务系统数据库日志,得到业务数据。
步骤S320,通过数据库中间件MyCat,将业务数据存储至消息队列集群,在消息队列集群中,对业务数据进行预处理,并将处理后的业务数据存储至分布式键值集群。
步骤S330,从分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对动态数据分片进行实时计算,得到实时计算结果。
步骤S340,获取Hadoop集群中的历史数据,其中历史数据包括全量数据,对全量数据进行离线计算,得到历史计算结果。
步骤S350,获取Hadoop集群中的历史数据,其中历史数据包括增量数据,对增量数据进行离线计算,得到增量计算结果。
步骤S360,通过数据库中间件读取实时计算结果和离线计算结果,生成对应的实时数据报表。
通过本实施例,通过数据库Binlog采集中间件获取业务数据,对业务数据进行预处理,并将处理后的业务数据存储至分布式键值集群,从分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对动态数据分片进行实时计算,得到实时计算结果,进一步地,对全量数据进行离线计算,得到历史计算结果,以及对增量数据进行离线计算,得到增量计算结果,从而通过数据库中间件读取实时计算结果和离线计算结果,生成对应的实时数据报表,实现了业务数据的分库分表存储以及控制业务数据流量,并基于分布式存储,对业务数据进行实时计算和离线计算,解决了无法处理海量数据并生成实时数据报表的问题,能够以实时数据报表指导业务的运营策略。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中还提供了一种实现海量流量下实时数据报表的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是本实施例的实现海量流量下实时数据报表的装置的结构框图,如图4所示,该装置包括:获取模块10、动态模块20、离线模块30和生成模块40;
获取模块10,获取业务数据,将业务数据存储至分布式键值集群;
动态模块20,从分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对动态数据分片进行实时计算,得到实时计算结果;
离线模块30,获取Hadoop集群中的历史数据,对历史数据进行离线计算,得到离线计算结果;
生成模块40,根据实时计算结果和离线计算结果,确定实时数据报表。
通过本实施例提供的装置,获取业务数据,将业务数据存储至分布式键值集群,并从分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对动态数据分片进行实时计算,得到实时计算结果,进一步地,获取Hadoop集群中的历史数据,对历史数据进行离线计算,得到离线计算结果,从而根据实时计算结果和离线计算结果,确定实时数据报表,解决了无法处理海量数据并生成实时数据报表的问题,实现了在海量流量下生成实时数据报表的有益效果。
在其中的一些实施例中,在图4的基础上,该装置还包括采集模块,用于通过数据库Binlog采集中间件,秒级采集业务系统数据库日志,得到业务数据。
在其中的一些实施例中,在图4的基础上,该装置还包括预处理模块,用于通过数据库中间件MyCat,将业务数据存储至消息队列集群;在消息队列集群中,对业务数据进行预处理;预处理包括通过流量控制系统消费业务数据,以及将业务数据进行数据校验过滤和数据幂等性维持;将处理后的业务数据存储至分布式键值集群。
在其中的一些实施例中,在图4的基础上,该装置还包括实时计算模块,用于对动态数据分片和预设的静态数据进行SQL计算,得到数据中间状态;对数据中间状态和动态调度任务进行计算,得到实时计算结果。
在其中的一些实施例中,在图4的基础上,该装置还包括历史计算模块,用于获取Hadoop集群中的历史数据,其中历史数据包括全量数据;对全量数据进行离线计算,得到历史计算结果。
在其中的一些实施例中,在图4的基础上,该装置还包括增量计算模块,用于获取Hadoop集群中的历史数据,其中历史数据包括增量数据;对增量数据进行离线计算,得到增量计算结果。
在其中的一些实施例中,在图4的基础上,该装置还包括读取模块,用于通过数据库中间件读取实时计算结果和离线计算结果,生成对应的实时数据报表。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述计算机设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的实现海量流量下实时数据报表的方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种实现海量流量下实时数据报表的方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种实现海量流量下实时数据报表的方法,其特征在于,所述方法包括:
获取业务数据,将所述业务数据存储至分布式键值集群;
从所述分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对所述动态数据分片进行实时计算,得到实时计算结果;
获取Hadoop集群中的历史数据,对所述历史数据进行离线计算,得到离线计算结果;
根据所述实时计算结果和所述离线计算结果,确定实时数据报表。
2.根据权利要求1所述的实现海量流量下实时数据报表的方法,其特征在于,所述获取业务数据包括:
通过数据库Binlog采集中间件,秒级采集业务系统数据库日志,得到所述业务数据。
3.根据权利要求1所述的实现海量流量下实时数据报表的方法,其特征在于,所述将所述业务数据存储至分布式键值集群包括:
通过数据库中间件MyCat,将所述业务数据存储至消息队列集群;
在所述消息队列集群中,对所述业务数据进行预处理;
所述预处理包括通过流量控制系统消费所述业务数据,以及将所述业务数据进行数据校验过滤和数据幂等性维持;
将处理后的所述业务数据存储至所述分布式键值集群。
4.根据权利要求1所述的实现海量流量下实时数据报表的方法,其特征在于,所述根据动态调度任务和预设的静态数据,对所述动态数据分片进行实时计算,得到实时计算结果包括:
对所述动态数据分片和所述预设的静态数据进行SQL计算,得到数据中间状态;
对所述数据中间状态和所述动态调度任务进行计算,得到所述实时计算结果。
5.根据权利要求1所述的实现海量流量下实时数据报表的方法,其特征在于,所述获取Hadoop集群中的历史数据,对所述历史数据进行离线计算包括:
获取所述Hadoop集群中的所述历史数据,其中所述历史数据包括全量数据;
对所述全量数据进行离线计算,得到历史计算结果。
6.根据权利要求1所述的实现海量流量下实时数据报表的方法,其特征在于,所述获取Hadoop集群中的历史数据,对所述历史数据进行离线计算包括:
获取所述Hadoop集群中的所述历史数据,其中所述历史数据包括增量数据;
对所述增量数据进行离线计算,得到增量计算结果。
7.根据权利要求1所述的实现海量流量下实时数据报表的方法,其特征在于,所述根据所述实时计算结果和所述离线计算结果,确定实时数据报表包括:
通过数据库中间件读取所述实时计算结果和所述离线计算结果,生成对应的所述实时数据报表。
8.一种实现海量流量下实时数据报表的装置,其特征在于,所述装置包括:
获取模块,获取业务数据,将所述业务数据存储至分布式键值集群;
动态模块,从所述分布式键值集群中获取动态数据分片,根据动态调度任务和预设的静态数据,对所述动态数据分片进行实时计算,得到实时计算结果;
离线模块,获取Hadoop集群中的历史数据,对所述历史数据进行离线计算,得到离线计算结果;
生成模块,根据所述实时计算结果和所述离线计算结果,确定实时数据报表。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的实现海量流量下实时数据报表方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的实现海量流量下实时数据报表方法的步骤。
CN202211048974.8A 2022-08-30 2022-08-30 实现海量流量下实时数据报表的方法、装置和计算机设备 Pending CN115481097A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211048974.8A CN115481097A (zh) 2022-08-30 2022-08-30 实现海量流量下实时数据报表的方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211048974.8A CN115481097A (zh) 2022-08-30 2022-08-30 实现海量流量下实时数据报表的方法、装置和计算机设备

Publications (1)

Publication Number Publication Date
CN115481097A true CN115481097A (zh) 2022-12-16

Family

ID=84423238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211048974.8A Pending CN115481097A (zh) 2022-08-30 2022-08-30 实现海量流量下实时数据报表的方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN115481097A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483830A (zh) * 2023-03-29 2023-07-25 深圳市未来智能网联交通系统产业创新中心 一种分布式智能网联汽车数据处理系统架构

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483830A (zh) * 2023-03-29 2023-07-25 深圳市未来智能网联交通系统产业创新中心 一种分布式智能网联汽车数据处理系统架构
CN116483830B (zh) * 2023-03-29 2024-04-26 深圳市未来智能网联交通系统产业创新中心 一种分布式智能网联汽车数据处理系统架构

Similar Documents

Publication Publication Date Title
Vulimiri et al. Global analytics in the face of bandwidth and regulatory constraints
Verma et al. Breaking the MapReduce stage barrier
CN109947668B (zh) 存储数据的方法和装置
CN108681569B (zh) 一种数据自动分析系统及其方法
CN109933631A (zh) 基于Infiniband网络的分布式并行数据库系统及数据处理方法
WO2014145092A2 (en) Hierarchical, parallel models for extracting in real time high-value information from data streams and system and method for creation of same
Tsalouchidou et al. Scalable dynamic graph summarization
CN107729138B (zh) 一种高性能分布式矢量空间数据的分析方法和装置
CN112800095A (zh) 一种数据处理方法、装置、设备及存储介质
CN103701635A (zh) 一种在线配置Hadoop参数的方法和装置
Heintz et al. Optimizing timeliness and cost in geo-distributed streaming analytics
Elagib et al. Big data analysis solutions using MapReduce framework
CN111522786A (zh) 日志处理系统及方法
Jiang et al. SKCompress: compressing sparse and nonuniform gradient in distributed machine learning
CN115481097A (zh) 实现海量流量下实时数据报表的方法、装置和计算机设备
CN113434312A (zh) 数据血缘关系处理方法及装置
CN108509453B (zh) 一种信息处理方法及装置
CN103345527B (zh) 数据智能统计系统
CN117056303B (zh) 适用于军事行动大数据的数据存储方法及装置
CN112182031B (zh) 数据查询方法及装置、存储介质、电子装置
CN109947736B (zh) 实时计算的方法和系统
Selvi et al. Popularity (hit rate) based replica creation for enhancing the availability in cloud storage
CN112631754A (zh) 数据处理方法、装置、存储介质及电子装置
CN116089414B (zh) 基于海量数据场景的时序数据库写入性能优化方法及装置
CN115905168B (zh) 基于数据库的自适应压缩方法和装置、设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination