CN115168472A - 基于Flink的实时报表生成方法与*** - Google Patents
基于Flink的实时报表生成方法与*** Download PDFInfo
- Publication number
- CN115168472A CN115168472A CN202210873540.5A CN202210873540A CN115168472A CN 115168472 A CN115168472 A CN 115168472A CN 202210873540 A CN202210873540 A CN 202210873540A CN 115168472 A CN115168472 A CN 115168472A
- Authority
- CN
- China
- Prior art keywords
- real
- time
- data
- flink
- time report
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请属于大数据实时计算技术领域,涉及一种基于Flink的实时报表生成方法,包括:当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构;通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,产生实时清单数据;发送实时清单数据至Druid数据库;当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;推送实时报表至前端平台。本申请还提供一种基于Flink的实时报表生成***、计算机设备及其存储介质。
Description
技术领域
本申请涉及大数据实时计算技术领域,尤其涉及一种基于Flink的实时报表生成方法、***、计算机设备及其存储介质。
背景技术
传统报表项目通过报表工具+数据仓库+ETL(数据仓库技术)结合,存在数据产生时间较长,如果从生产***直接读取数据,又会对生产数据库造成巨大压力,产生性能瓶颈,直接影响业务。随着客户越来越关注源数据的实时性,实时报表的时效性越发重要起来。
发明内容
本申请实施例的目的在于提出一种基于Flink的实时报表生成方法、***、计算机设备及其存储介质,以解决对于实时报表产生时间较长的技术问题。
为了解决上述技术问题,本申请实施例提供一种基于Flink的实时报表生成方法,采用了如下所述的技术方案:所述方法包括下述步骤:
当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;
将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;
通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;
发送实时清单数据至Druid数据库;
当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;
推送实时报表至前端平台。
进一步的,所述通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据的步骤之后,所述方法还包括:
将实时清单数据通过Flume数据管道传输至hive数据仓库进行存储备份;
当Flink作业时发生故障时,通过hive工具查询hive数据仓库中备份的实时清单数据与Kafka业务***产生的实时清单数据中的不同,并获取目标清单数据;
回补目标清单数据至Druid数据库中。
进一步的,所述将实时清单数据传输至Flume***中进行备份的步骤包括:
接收实时清单数据,并将接收的实时清单数据以Flume传输一个或多个铺道引导;
存储Flume传输后的实时清单数据值hive数据仓库。
进一步的,所述通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据的步骤包括:
通过ETL将Kafka业务***接收的实时数据流抽取至临时中间层,并对临时中间层中的实时数据进行清洗、转换、集成后,产生标准格式的实时清单数据;
传输实时清单数据至Kafka业务***中。
进一步的,所述推送实时报表至前端平台的步骤包括:
设置实时报表的指标列、时间列以及维度列;
将实时报表以指标列或时间列或维度列的逻辑集合推送至前端平台。
进一步的,所述推送实时报表至前端平台的步骤之后,所述方法还包括:
当前端平台的预设标识产生托或拉或拽等动态动作时,获取实时报表的指标列或时间列或维度列。
进一步的,所述推送实时报表至前端平台的步骤之后,所述方法还包括:
当前端平台根据实时报表产生的实时内容不符合数据查询操作对应的目标内容时,通过hive工具获取hive数据仓库存储的预存清单数据,对比预存清单数据以及Druid数据库中获取的实时清单数据,定位Druid数据库中的目标故障位置;
提取Druid数据库中目标故障位置处的目标故障数据,以及hive数据仓库中目标故障位置对应位置处的目标清单数据;
将目标清单数据替换为目标故障数据,并回补至Druid数据库中目标故障位置处;
当前端平台根据实时报表产生的实时内容符合数据查询操作对应的目标内容时,更新hive数据仓库中存储的预存清单数据。
为了解决上述技术问题,本申请实施例还提供一种基于Flink的实时报表生成***,所述***包括:
传输模块,用于当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;
处理模块,用于将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;
发送模块,用于发送实时清单数据至Druid数据库;
提取模块,用于当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;
推送模块,用于推送实时报表至前端平台。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述的基于Flink的实时报表生成方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的基于Flink的实时报表生成方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:通过当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;发送实时清单数据至Druid数据库;当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;推送实时报表至前端平台。实现了的时报表全链路生成,提升数据的容错性,从数据全域的角度考虑,加快实时报表产生速度,提升实时报表的数据时效性,增加数据的准确性。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2是基于Flink的实时报表生成方法的一个实施例的流程图;
图3是基于Flink的实时报表生成***的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于Flink的实时报表生成方法一般由服务器执行,相应地,基于Flink的实时报表生成***一般设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的基于Flink的实时报表生成方法的一个实施例的流程图。所述基于Flink的实时报表生成方法,包括以下步骤:
步骤S201,当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***。
需要说明的是,Flink(开源流处理框架)的核心主要由Java和Scala编写的分布式流数据引擎。Flink以分布式数据并行和流水线方式执行任意流数据程序。其中,流数据处理***中的数据和计算都存储在本地,例如内存或本地磁盘。
在本实施例中,Flink的状态基于本地主要体现为:每个算子子任务维护着这个算子子任务对应状态的存储,算子子任务之间的状态不能相互访问,例如:当算子的并行实例数或算子的子任务数发生了变化,应用需要关停或新启动目标算子子任务,将原来在算子子任务上的状态数据更新到目标算子子任务上。
对于Flink的状态理解为算子的子任务在其当前实例上的一个变量,该变量记录了流过当前算子的历史记录产生的结果。具体地,当新数据记录流入时,我们需要结合当前结果(即Flink状态)来进行计算。实际上,Flink的状态由算子的子任务来创建和管理,一个算子子任务接收输入流,获取对应的状态,根据新的计算结果更新状态,例如:对一个时间窗口内流入的整数字段进行求和,当算子子任务接收到新元素时,获取已经存储在状态中的数值,即历史记录的求和结果,然后将当前数值输入加到Flink状态上,并将Flink状态数据更新。
在本实施例中,Flink对实时数据流的处理分为接收数据、处理数据以及输出处理结果,接收数据具体为接收一个或者多个数据源,数据源为Hdfs、Kafka等;处理数据具体为执行若干用户需要的转换算子;输出处理结果具体为将转换后的结果输出至Kafka业务***中。
步骤S202,将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;
Kafka(高吞吐量的分布式发布订阅消息***)作为一个存储***,主要将所有发布消息到消息队列和消费分离,即将发布的消息先存储起来的存储***。写入到Kafka的实时数据流将写到磁盘并复制到Druid(数据查询***)中,以保证容错性,并允许等待消息应答,直到消息完全写入。在本实施例中,Kafka的磁盘结构主要由Druid(数据查询***)来控制读取实时数据流的位置,不同于现有技术中通过客户端来控制读取实时数据流的位置。Kafka为提交日志存储、复制和传播特殊用途的分布式文件***,其中,Kafka的流处理持续获取输入Flink的实时数据流,通过业务逻辑进行数据ETL处理加工,然后写入输出Druid(数据查询***)。
步骤S203,通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;
在本实施例中使用ETL(数据仓库技术)进行数据处理,构建聚合计算或连接流到一起的复杂应用程序,有助于处理无序的数据,代码更改的再处理,执行Flink状态计算。业务逻辑由积木式组件和基本呼叫处理模块的组合对每项业务特征的过程进行描述。
需要说明的是,由ETL将实时数据流抽取到临时中间层后进行清洗、转换、集成,最后加载到Kafka业务***中,完成联机分析处理、数据挖掘。数据ETL处理为将实时数据流转换为一个标准的格式。
在将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据之后,还将实时清单数据通过Flume(日志收集***)数据管道传输至hive(数据仓库工具)数据仓库进行存储备份。
在Flume内部设置一个或者多个智能体,每一个智能体设置独立的守护进程从接收端或者从其他的智能体中获取的数据并将数据传输给下一个节点的网关节点或者智能体。接收的数据以Flume的事件格式传递给一个或多个引导通道,其中,Flume提供多种数据接收的方式:数据序列化、远程过程调用框架等。在本实施例中Flume传输至下一个节点hive数据仓库。
在本实施例中,hive数据仓库用于存储、查询和分析存储在Hadoop(分布式***基础架构)中的大规模数据。hive数据仓库工具将结构化的数据文件映射为一张数据库表,并提供SQL(数据库语言)查询功能,将SQL语句转变成MapReduce(编程模型)任务来执行,通过SQL查询功能查询分析需要的内容。
具体地,在本实施例中,当Flink作业时发生故障时,通过hive工具查询hive数据仓库中备份的实时清单数据与Kafka业务***产生的实时清单数据中的不同,提取不同的实时清单数据并设置为目标清单数据,回补目标清单数据至Druid数据库中。其中,通过hive数据仓库工具将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,进而,当出现故障时,hive数据仓库工具从hive数据仓库中快速查询需要的内容,及时回补需要的内容数据至Druid数据库,即需要的内容为故障点数据。
步骤S204,发送实时清单数据至Druid数据库;
Druid数据库主要是对于大量的基于时序的数据进行聚合查询,当实时清单数据实时摄入Druid数据库,进入到Druid后立即可查,同时实时清单数据不变,保证实时清单数据的完整性。通常Druid数据库基于时序的清单数据进行架构建立,当清单数据发生后进入Druid,外部***就可以对该清单数据进行查询。
步骤S205,当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;
从Druid数据库中提取Druid引擎,在时效性上表现优异,可实现秒级别的用户结果返回。将处理完的实时清单数据接入Druid引擎中,供下游用户进行报表查询,降低了用户使用Druid引擎门槛,增加报表查询的效率。在本实施例中,数据查询操作的类型包括用户在显示屏出进行的托或拉或拽等动态动作产生的动态动作。
步骤S206,推送实时报表至前端平台。
具体地,Druid数据库不仅作为分布式数据分析平台,还为时序数据库,其中,Druid数据库中的数据结构由时间列、维度列以及指标列构成,其中,时间列:标识每行数据的时间值;维度列:标识数据行的各个类别信息;指标列:用于聚合和计算的列。当Druid引擎生成实时报表时,设置实时报表的指标列、时间列以及维度列,将实时报表以指标列或时间列或维度列的逻辑集合推送至前端平台。
当前端平台的预设标识产生托或拉或拽等动态动作时,指标列或时间列或维度列发生改变,即改变后重新组合成的报表为实时报表,则获取实时报表的指标列或时间列或维度列。其中,前端平台的预设标识产生托或拉或拽等动态动作即可获取实时报表,当然,通过自定义配置指标列或时间列或维度列亦可获得实时报表。
当前端平台根据实时报表产生的实时内容不符合数据查询操作对应的目标内容时,通过hive工具获取hive数据仓库存储的预存清单数据,对比预存清单数据以及Druid数据库中获取的实时清单数据,定位Druid数据库中的目标故障位置;提取Druid数据库中目标故障位置处的目标故障数据,以及hive数据仓库中目标故障位置对应位置处的目标清单数据;将目标清单数据替换为目标故障数据,并回补至Druid数据库中目标故障位置处。当前端平台根据实时报表产生的实时内容符合数据查询操作对应的目标内容时,更新hive数据仓库中存储的预存清单数据。
本实施例通过当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;发送实时清单数据至Druid数据库;当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;推送实时报表至前端平台。实现了的时报表全链路生成,提升数据的容错性,从数据全域的角度考虑,加快实时报表产生速度,提升实时报表的数据时效性,增加数据的准确性。
需要强调的是,为进一步保证上述实时报表的私密和安全性,上述实时报表还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(RandomAccess Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种基于Flink的实时报表生成***的一个实施例,该***实施例与图2所示的方法实施例相对应。
如图3所示,本实施例所述的基于Flink的实时报表生成***300包括:传输模块301、处理模块302、发送模块303、提取模块304、推送模块305。其中:
传输模块301,用于当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;
处理模块302,用于将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;
发送模块303,用于发送实时清单数据至Druid数据库;
提取模块304,用于当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;
推送模块305,用于推送实时报表至前端平台。
本实施例通过当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;发送实时清单数据至Druid数据库;当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;推送实时报表至前端平台。实现了的时报表全链路生成,提升数据的容错性,从数据全域的角度考虑,加快实时报表产生速度,提升实时报表的数据时效性,增加数据的准确性。
在本实施例的一些可选的实现方式中,所述***300还包括:
备份模块,用于将实时清单数据通过Flume数据管道传输至hive数据仓库进行存储备份;
查询模块,用于当Flink作业时发生故障时,通过hive工具查询hive数据仓库中备份的实时清单数据与Kafka业务***产生的实时清单数据中的不同,并获取目标清单数据;
回补模块,用于回补目标清单数据至Druid数据库中。
在本实施例的一些可选的实现方式中,所述备份模块包括:
接受单元,用于接收实时清单数据,并将接收的实时清单数据以Flume传输一个或多个铺道引导;
存储单元,用于存储Flume传输后的实时清单数据值hive数据仓库。
在本实施例的一些可选的实现方式中,所述处理模块302包括:
处理单元,用于通过ETL将Kafka业务***接收的实时数据流抽取至临时中间层,并对临时中间层中的实时数据进行清洗、转换、集成后,产生标准格式的实时清单数据;
传输单元,用于传输实时清单数据至Kafka业务***中。
在本实施例的一些可选的实现方式中,所述推送模块305包括:
设置单元,用于设置实时报表的指标列、时间列以及维度列;
推送单元,用于将实时报表以指标列或时间列或维度列的逻辑集合推送至前端平台。
在本实施例的一些可选的实现方式中,所述***300还包括:
操作模块,用于当前端平台的预设标识产生托或拉或拽等动态动作时,获取实时报表的指标列或时间列或维度列。
在本实施例的一些可选的实现方式中,所述***300还包括:
故障定位模块,用于当前端平台根据实时报表产生的实时内容不符合数据查询操作对应的目标内容时,通过hive工具获取hive数据仓库存储的预存清单数据,对比预存清单数据以及Druid数据库中获取的实时清单数据,定位Druid数据库中的目标故障位置;
数据覆盖模块,用于提取Druid数据库中目标故障位置处的目标故障数据,以及hive数据仓库中目标故障位置对应位置处的目标清单数据,将目标清单数据替换为目标故障数据,并回补至Druid数据库中目标故障位置处;
更新模块,用于当前端平台根据实时报表产生的实时内容符合数据查询操作对应的目标内容时,更新hive数据仓库中存储的预存清单数据。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过***总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图4中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作***和各类应用软件,例如基于Flink的实时报表生成方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述基于Flink的实时报表生成方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
在本实施例中通过当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;发送实时清单数据至Druid数据库;当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;推送实时报表至前端平台。实现了的时报表全链路生成,提升数据的容错性,从数据全域的角度考虑,加快实时报表产生速度,提升实时报表的数据时效性,增加数据的准确性。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于Flink的实时报表生成方法的步骤。
在本实施例通过当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;发送实时清单数据至Druid数据库;当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;推送实时报表至前端平台。实现了的时报表全链路生成,提升数据的容错性,从数据全域的角度考虑,加快实时报表产生速度,提升实时报表的数据时效性,增加数据的准确性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种基于Flink的实时报表生成方法,其特征在于,所述方法包括下述步骤:
当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;
将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中;
通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;
发送实时清单数据至Druid数据库;
当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;
推送实时报表至前端平台。
2.根据权利要求1所述的基于Flink的实时报表生成方法,其特征在于,所述通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据的步骤之后,所述方法还包括:
将实时清单数据通过Flume数据管道传输至hive数据仓库进行存储备份;
当Flink作业时发生故障时,通过hive工具查询hive数据仓库中备份的实时清单数据与Kafka业务***产生的实时清单数据中的不同,并获取目标清单数据;
回补目标清单数据至Druid数据库中。
3.根据权利要求2所述的基于Flink的实时报表生成方法,其特征在于,所述将实时清单数据通过Flume数据管道传输至hive数据仓库进行存储备份的步骤包括:
接收实时清单数据,并将接收的实时清单数据以Flume传输一个或多个铺道引导;
存储Flume传输后的实时清单数据值hive数据仓库。
4.根据权利要求3所述的基于Flink的实时报表生成方法,其特征在于,所述通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据的步骤包括:
通过ETL将Kafka业务***接收的实时数据流抽取至临时中间层,并对临时中间层中的实时数据进行清洗、转换、集成后,产生标准格式的实时清单数据;
传输实时清单数据至Kafka业务***中。
5.根据权利要求1所述的基于Flink的实时报表生成方法,其特征在于,所述推送实时报表至前端平台的步骤包括:
设置实时报表的指标列、时间列以及维度列;
将实时报表以指标列或时间列或维度列的逻辑集合推送至前端平台。
6.根据权利要求5所述的基于Flink的实时报表生成方法,其特征在于,所述推送实时报表至前端平台的步骤之后,所述方法还包括:
当前端平台的预设标识产生托或拉或拽等动态动作时,获取实时报表的指标列或时间列或维度列。
7.根据权利要求2所述的基于Flink的实时报表生成方法,其特征在于,所述推送实时报表至前端平台的步骤之后,所述方法还包括:
当前端平台根据实时报表产生的实时内容不符合数据查询操作对应的目标内容时,通过hive工具获取hive数据仓库存储的预存清单数据,对比预存清单数据以及Druid数据库中获取的实时清单数据,定位Druid数据库中的目标故障位置;
提取Druid数据库中目标故障位置处的目标故障数据,以及hive数据仓库中目标故障位置对应位置处的目标清单数据;
将目标清单数据替换为目标故障数据,并回补至Druid数据库中目标故障位置处;
当前端平台根据实时报表产生的实时内容符合数据查询操作对应的目标内容时,更新hive数据仓库中存储的预存清单数据。
8.一种基于Flink的实时报表生成***,其特征在于,所述***包括:
传输模块,用于当Flink作业产生的实时数据流时,传输实时数据流至Kafka业务***;
处理模块,用于将Kafka业务***接收的实时数据流写入Kafka业务***的磁盘结构中,通过ETL提取磁盘结构中的实时数据流到临时中间层进行转换处理,并产生实时清单数据;
发送模块,用于发送实时清单数据至Druid数据库;
提取模块,用于当检测到数据查询操作时,识别数据查询操作的类型,根据确定的数据查询操作的类型产生对应的操作指令,根据操作指令提取Druid数据库中的Druid引擎生成实时报表;
推送模块,用于推送实时报表至前端平台。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的基于Flink的实时报表生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的基于Flink的实时报表生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210873540.5A CN115168472A (zh) | 2022-07-22 | 2022-07-22 | 基于Flink的实时报表生成方法与*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210873540.5A CN115168472A (zh) | 2022-07-22 | 2022-07-22 | 基于Flink的实时报表生成方法与*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168472A true CN115168472A (zh) | 2022-10-11 |
Family
ID=83496615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210873540.5A Pending CN115168472A (zh) | 2022-07-22 | 2022-07-22 | 基于Flink的实时报表生成方法与*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168472A (zh) |
-
2022
- 2022-07-22 CN CN202210873540.5A patent/CN115168472A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112507027B (zh) | 基于Kafka的增量数据同步方法、装置、设备及介质 | |
CN107577805B (zh) | 一种面向日志大数据分析的业务服务*** | |
CN113254445B (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN110321544B (zh) | 用于生成信息的方法和装置 | |
CN113282611B (zh) | 一种流数据同步的方法、装置、计算机设备及存储介质 | |
CN113254767A (zh) | 大数据搜索方法、装置、计算机设备及存储介质 | |
CN112948486A (zh) | 批量数据同步方法、***及电子设备 | |
CN113535677A (zh) | 数据分析查询管理方法、装置、计算机设备及存储介质 | |
CN105320711B (zh) | 巨量数据存取方法以及使用该方法的*** | |
CN113010542B (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN111797297B (zh) | 页面数据处理方法、装置、计算机设备及存储介质 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN117251228A (zh) | 功能管理方法、装置、计算机设备及存储介质 | |
CN112860662A (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN113836235B (zh) | 基于数据中台的数据处理方法及其相关设备 | |
CN115730603A (zh) | 基于人工智能的信息提取方法、装置、设备及存储介质 | |
CN115168472A (zh) | 基于Flink的实时报表生成方法与*** | |
CN114626352A (zh) | 报表自动化生成方法、装置、计算机设备及存储介质 | |
CN110727654B (zh) | 分布式***的数据提取方法、装置、服务器和存储介质 | |
CN116702751A (zh) | 基于人工智能的公式处理方法、装置、设备及存储介质 | |
Ikhlaq et al. | A comparative study of big data computational approaches | |
CN114969482A (zh) | 在线配置接口自动完成请求的方法、及其相关设备 | |
CN117743291A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN115168471A (zh) | 数据报表生成方法、装置、计算机设备及存储介质 | |
CN117390119A (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 |