CN112596997A - 一种基于Flink实时计算的自动化流控制方法 - Google Patents
一种基于Flink实时计算的自动化流控制方法 Download PDFInfo
- Publication number
- CN112596997A CN112596997A CN202011594886.9A CN202011594886A CN112596997A CN 112596997 A CN112596997 A CN 112596997A CN 202011594886 A CN202011594886 A CN 202011594886A CN 112596997 A CN112596997 A CN 112596997A
- Authority
- CN
- China
- Prior art keywords
- data
- data stream
- flink
- flow control
- analysis
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Flink实时计算的自动化流控制方法,包括以下步骤:S1、对业务系统的日志数据进行实时采集;S2、利用Kafka队列对采集的日志数据进行传输,其中不同的业务日志数据作为一个单独的topic数据流;S3、使用Flink的各种算子组合对数据流进行实时解析和对数据流解析进行实时控制;S4、将解析出的数据流进行存储。本发明提供一种基于Flink实时计算的自动化流控制方法,利用Flink的并行性和内存效率,以便能够在分布式基础设施上有效地处理大容量数据流,根据不同的需求将解析的数据输出到相应的存储空间,灵活地适配各种日志格式,从而减少同类解析代码的开发,将不同的数据解析进行集中式的管理,有效地提高了现在Flink框架集群的吞吐量。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于Flink实时计算的自动化流控制方法。
背景技术
由于Flink框架的优势,现在有很多关于Flink应用的相关研究。Flink的概念、生态系统和相关技术等理论基础并对Hadoop和Flink在处理大批量数据上的耗时和准确率进行了对比分析,针对不同的流式处理平台,分析总结了Flink所面临的一些挑战,为Flink的进一步研究提供了参考。基于Flink的计算框架,设计了对大规模轨迹数据进行实时运动模式检测的算法,弥补了对于当前大规模轨迹数据只能做范围查询、近邻查询的简单处理的不足,很好地应用了Flink实时计算的优势。
随着业务越来越复杂,需要采集和存储的数据越来越多,由于存在着不同的业务系统,日志的存储格式多种多样,如何灵活快速根据不同的需求将解析的数据输出到相应的存储空间的问题迫在眉睫。
发明内容
本发明提出一种基于Flink实时计算的自动化流控制方法,利用Flink的并行性和内存效率,以便能够在分布式基础设施上有效地处理大容量数据流,根据不同的需求将解析的数据输出到相应的存储空间,灵活地适配各种日志格式,从而减少同类解析代码的开发,将不同的数据解析进行集中式的管理,有效地提高了现在Flink框架集群的吞吐量。
为实现上述目的,本发明采用以下技术方案:
一种基于Flink实时计算的自动化流控制方法,包括以下步骤:
S1、对业务系统的日志数据进行实时采集;
S2、利用Kafka队列对采集的日志数据进行传输,其中不同的业务日志数据作为一个单独的topic数据流;
S3、使用Flink的各种算子组合对数据流进行实时解析和对数据流解析进行实时控制;
S4、将解析出的数据流进行存储。
优选地,步骤S1中采用Filebeat采集工具,所述Filebeat采集工具包括Apache模块、System模块及MySQL模块。
优选地,步骤S2中Kafka队列还包括一用于进行流控制的空流。
优选地,步骤S3中数据流解析的步骤包括:
A1、将每个要处理的数据流的名称通过哈希图谱进行存储,假设<主键,数值>=<stream1,datastream1>,同时将需要对数据流处理的算子存储到链表中;
A2、按照对datastream1的流处理算子得到流处理结果dataset1;
A3、更新哈希图谱中stream1的数值为dataset1;
A4、遍历下一个需要处理的算子,直接读取主键=stream1的数值,对stream1的数值执行相应的解析逻辑得到数据集dataset2;
A5、更新stream1的数值为dataset2;
A6、依次迭代对数据流处理的各个算子,直到完成所有的解析逻辑,最后结果依然保存在stream1中。
优选地,步骤S3中数据流控制的步骤包括:
B1、假设需要解析的数据流为dataA,在需要解析的数据流中增加一个空的数据流temp,该数据流开始时不存储任何数据,同时增加一个内部类的变量用来存储解析的解析算子γ;
B2、在实时的代码解析逻辑中,增加一个对temp数据流的解析;
B3、在需要更新解析逻辑时,通过注入的方式将最新的解析逻辑注入到temp数据流中;
B4、通过解析temp数据流中的数据,获取针对当前数据流的解析逻辑,并更新为解析算子γ的值;
B5、再次解析数据流dataA的时候,就会使用最新的解析逻辑来处理数据,从而实现解析逻辑的实时控制。
优选地,所述解析算子γ的配置成员包括系统配置类、数据源类、业务逻辑算子类、配置输出类及监控配置类。
优选地,步骤S4中的存储渠道包括hdfs、hive、clickhouse及opentsdb。
采用上述技术方案后,本发明与背景技术相比,具有如下优点:
1、本发明提供一种基于Flink实时计算的自动化流控制方法,利用Flink的并行性和内存效率,以便能够在分布式基础设施上有效地处理大容量数据流,根据不同的需求将解析的数据输出到相应的存储空间,灵活地适配各种日志格式,从而减少同类解析代码的开发,将不同的数据解析进行集中式的管理,有效地提高了现在Flink框架集群的吞吐量。
2、本发明提供一种基于Flink实时计算的自动化流控制方法,数据流解析过程中每次算子执行的时候都是对同一个stream1进行处理,只需要遍历定义好的算子即可,这样很多算子在不同的数据流解析中可以共用,不仅可以减少代码的开发量,还可以把开发的重点放在业务逻辑处理中,解析日志的程序开发变得更加简单。在算子中还可以添加复制的算子,将一个数据流复制成多个数据流,再针对不同的数据流配置不同的日志解析算子,实现分流的效果。
附图说明
图1为本发明控制方法框图;
图2为本发明业务数据流处理流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明中需要说明的是,术语“上”“下”“左”“右”“竖直”“水平”“内”“外”等均为基于附图所示的方位或位置关系,仅仅是为了便于描述本发明和简化描述,而不是指示或暗示本发明的装置或元件必须具有特定的方位,因此不能理解为对本发明的限制。
实施例
配合图1和图2所示,本发明公开了一种基于Flink实时计算的自动化流控制方法,包括以下步骤:
S1、对业务系统的日志数据进行实时采集;
S2、利用Kafka队列对采集的日志数据进行传输,其中不同的业务日志数据作为一个单独的topic数据流;
S3、使用Flink的各种算子组合对数据流进行实时解析和对数据流解析进行实时控制,该过程需要获取多种数据的配置,如系统配置、数据源配置、数据解析逻辑配置、数据存储配置、监控配置等;
S4、将解析出的数据流进行存储,同一份日志的数据需要存储到不同存储介质中,便于对各种业务的指标进行监控,存储渠道包括hdfs、hive、clickhouse及opentsdb。
步骤S1中采用Filebeat采集工具,Filebeat采集工具包括Apache模块、System模块及MySQL模块。
Filebeat采集工具在程序中断的情况时,Filebeat能够读取并转发日志行,如果出现中断,还会在一切恢复正常后,从中断前停止的位置继续开始。
Filebeat采集工具可以针对常见格式的日志大大简化收集、解析和可视化过程。基于Filebeat的优势,在构建数据的采集平台时采用该服务进行日志的实时采集。在部署采集程序时,将不同的业务发送到不同的topic数据流中;通过Filebeat的配置文件实现数据采集的机器、日志文件、采集的路径、数据的输出端的配置。
步骤S2中Kafka队列还包括一用于进行流控制的空流。
步骤S3中数据流解析的步骤包括:
A1、将每个要处理的数据流的名称通过hashmap(哈希图谱)进行存储,假设<key,value>=<stream1,datastream1>(<主键,数值>=<stream1,datastream1>),同时将需要对数据流处理的算子存储到list(链表)中;
A2、按照对datastream1的流处理算子得到流处理结果dataset1;
A3、更新哈希图谱中stream1的数值为dataset1;
A4、遍历下一个需要处理的算子,直接读取主键=stream1的数值,对stream1的数值执行相应的解析逻辑得到数据集dataset2;
A5、更新stream1的数值为dataset2;
A6、依次迭代对数据流处理的各个算子,直到完成所有的解析逻辑,最后结果依然保存在stream1中。
步骤S3中数据流控制的步骤包括:
B1、假设需要解析的数据流为dataA,在需要解析的数据流中增加一个空的数据流temp,该数据流开始时不存储任何数据,同时增加一个内部类的变量用来存储解析的解析算子γ,解析算子γ是可以实现数据流选择和各种解析业务逻辑的配置,里面通过设置一个参数source,实现对不同数据流的解析逻辑控制;
B2、在实时的代码解析逻辑中,增加一个对temp数据流的解析;
B3、在需要更新解析逻辑时,通过注入的方式将最新的解析逻辑注入到temp数据流中;
B4、通过解析temp数据流中的数据,获取针对当前数据流的解析逻辑,并更新为解析算子γ的值;
B5、再次解析数据流dataA的时候,就会使用最新的解析逻辑来处理数据,从而实现解析逻辑的实时控制。
关于temp流中的解析算子γ,其通过java生成相应的文件,注入到temp数据流中。在整个架构中有一个控制类,该类通过读取XML文件,解析一个配置类配置成员包括系统配置类、数据源类、业务逻辑算子类、配置输出类及监控配置类,其中算子类在实现的时候会继承一个基类,这样不同类型的算子都可以组成一个基类算子的list列表。
数据流处理主要分为数据的采集和解析,业务数据流主要是从各个业务系统实时采集对应的数据,而逻辑数据流是在需要解析某个业务数据时,传入业务流对应的解析逻辑;在数据解析环节首先获取解析逻辑的解析算子,从而实现对业务数据流解析的控制。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (7)
1.一种基于Flink实时计算的自动化流控制方法,其特征在于,包括以下步骤:
S1、对业务系统的日志数据进行实时采集;
S2、利用Kafka队列对采集的日志数据进行传输,其中不同的业务日志数据作为一个单独的topic数据流;
S3、使用Flink的各种算子组合对数据流进行实时解析和对数据流解析进行实时控制;
S4、将解析出的数据流进行存储。
2.如权利要求1所述的一种基于Flink实时计算的自动化流控制方法,其特征在于:步骤S1中采用Filebeat采集工具,所述Filebeat采集工具包括Apache模块、System模块及MySQL模块。
3.如权利要求1所述的一种基于Flink实时计算的自动化流控制方法,其特征在于:步骤S2中Kafka队列还包括一用于进行流控制的空流。
4.如权利要求1所述的一种基于Flink实时计算的自动化流控制方法,其特征在于,步骤S3中数据流解析的步骤包括:
A1、将每个要处理的数据流的名称通过哈希图谱进行存储,假设<主键,数值>=<stream1,datastream1>,同时将需要对数据流处理的算子存储到链表中;
A2、按照对datastream1的流处理算子得到流处理结果dataset1;
A3、更新哈希图谱中stream1的数值为dataset1;
A4、遍历下一个需要处理的算子,直接读取主键=stream1的数值,对stream1的数值执行相应的解析逻辑得到数据集dataset2;
A5、更新stream1的数值为dataset2;
A6、依次迭代对数据流处理的各个算子,直到完成所有的解析逻辑,最后结果依然保存在stream1中。
5.如权利要求1所述的一种基于Flink实时计算的自动化流控制方法,其特征在于,步骤S3中数据流控制的步骤包括:
B1、假设需要解析的数据流为dataA,在需要解析的数据流中增加一个空的数据流temp,该数据流开始时不存储任何数据,同时增加一个内部类的变量用来存储解析的解析算子γ;
B2、在实时的代码解析逻辑中,增加一个对temp数据流的解析;
B3、在需要更新解析逻辑时,通过注入的方式将最新的解析逻辑注入到temp数据流中;
B4、通过解析temp数据流中的数据,获取针对当前数据流的解析逻辑,并更新为解析算子γ的值;
B5、再次解析数据流dataA的时候,就会使用最新的解析逻辑来处理数据,从而实现解析逻辑的实时控制。
6.如权利要求4所述的一种基于Flink实时计算的自动化流控制方法,其特征在于:所述解析算子γ的配置成员包括系统配置类、数据源类、业务逻辑算子类、配置输出类及监控配置类。
7.如权利要求1所述的一种基于Flink实时计算的自动化流控制方法,其特征在于:步骤S4中的存储渠道包括hdfs、hive、clickhouse及opentsdb。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011594886.9A CN112596997A (zh) | 2020-12-29 | 2020-12-29 | 一种基于Flink实时计算的自动化流控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011594886.9A CN112596997A (zh) | 2020-12-29 | 2020-12-29 | 一种基于Flink实时计算的自动化流控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112596997A true CN112596997A (zh) | 2021-04-02 |
Family
ID=75203568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011594886.9A Pending CN112596997A (zh) | 2020-12-29 | 2020-12-29 | 一种基于Flink实时计算的自动化流控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112596997A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113112333A (zh) * | 2021-04-27 | 2021-07-13 | 湖南云畅网络科技有限公司 | 一种数据流处理方法及系统 |
CN113660231A (zh) * | 2021-08-06 | 2021-11-16 | 上海浦东发展银行股份有限公司 | 一种报文解析方法、装置、设备和存储介质 |
CN116629805A (zh) * | 2023-06-07 | 2023-08-22 | 浪潮智慧科技有限公司 | 一种分布式流批一体化的水利指标服务方法、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180060324A1 (en) * | 2016-08-26 | 2018-03-01 | International Business Machines Corporation | Parallel scoring of an ensemble model |
CN109408347A (zh) * | 2018-09-28 | 2019-03-01 | 北京九章云极科技有限公司 | 一种指标实时分析系统及指标实时计算方法 |
CN110245158A (zh) * | 2019-06-10 | 2019-09-17 | 上海理想信息产业(集团)有限公司 | 一种基于Flink流计算技术的多源异构数据实时处理系统及方法 |
CN110471944A (zh) * | 2018-05-11 | 2019-11-19 | 北京京东尚科信息技术有限公司 | 指标统计方法、系统、设备及存储介质 |
CN111026400A (zh) * | 2019-11-20 | 2020-04-17 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 业务数据流的解析方法及其装置 |
CN111241078A (zh) * | 2020-01-07 | 2020-06-05 | 网易(杭州)网络有限公司 | 数据分析系统、数据分析的方法及装置 |
-
2020
- 2020-12-29 CN CN202011594886.9A patent/CN112596997A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180060324A1 (en) * | 2016-08-26 | 2018-03-01 | International Business Machines Corporation | Parallel scoring of an ensemble model |
CN110471944A (zh) * | 2018-05-11 | 2019-11-19 | 北京京东尚科信息技术有限公司 | 指标统计方法、系统、设备及存储介质 |
CN109408347A (zh) * | 2018-09-28 | 2019-03-01 | 北京九章云极科技有限公司 | 一种指标实时分析系统及指标实时计算方法 |
CN110245158A (zh) * | 2019-06-10 | 2019-09-17 | 上海理想信息产业(集团)有限公司 | 一种基于Flink流计算技术的多源异构数据实时处理系统及方法 |
CN111026400A (zh) * | 2019-11-20 | 2020-04-17 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 业务数据流的解析方法及其装置 |
CN111241078A (zh) * | 2020-01-07 | 2020-06-05 | 网易(杭州)网络有限公司 | 数据分析系统、数据分析的方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113112333A (zh) * | 2021-04-27 | 2021-07-13 | 湖南云畅网络科技有限公司 | 一种数据流处理方法及系统 |
CN113660231A (zh) * | 2021-08-06 | 2021-11-16 | 上海浦东发展银行股份有限公司 | 一种报文解析方法、装置、设备和存储介质 |
CN116629805A (zh) * | 2023-06-07 | 2023-08-22 | 浪潮智慧科技有限公司 | 一种分布式流批一体化的水利指标服务方法、设备及介质 |
CN116629805B (zh) * | 2023-06-07 | 2023-12-01 | 浪潮智慧科技有限公司 | 一种分布式流批一体化的水利指标服务方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112596997A (zh) | 一种基于Flink实时计算的自动化流控制方法 | |
CN109684352B (zh) | 数据分析系统、方法、存储介质及电子设备 | |
Mehmood et al. | Implementing big data lake for heterogeneous data sources | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
US10733209B2 (en) | Smart tuple dynamic grouping of tuples | |
CN108595664B (zh) | 一种hadoop环境下的农业数据监控方法 | |
CN105095048A (zh) | 一种基于业务规则的监控系统告警关联处理方法 | |
CN110618988B (zh) | 基于大数据平台的数据处理方法及装置 | |
CN111046022A (zh) | 一种基于大数据技术的数据库审计方法 | |
CN108829505A (zh) | 一种分布式调度系统及方法 | |
CN111324781A (zh) | 一种数据分析方法、装置及设备 | |
US10558670B2 (en) | Smart tuple condition-based operation performance | |
CN104820700B (zh) | 变电站非结构化数据的处理方法 | |
CN106354772A (zh) | 具有数据清洗的海量数据系统 | |
CN112084190A (zh) | 一种基于大数据的采集数据实时存储与管理系统和方法 | |
CN115271407A (zh) | 基于人工智能的工业互联网数据处理方法及系统 | |
CN110232130B (zh) | 元数据管理谱系生成方法、装置、计算机设备和存储介质 | |
US10296620B2 (en) | Smart tuple stream alteration | |
US10657135B2 (en) | Smart tuple resource estimation | |
CN114328601A (zh) | 数据降采样和数据查询方法、系统及存储介质 | |
CN113553295A (zh) | 一种支持多种文件格式的数据预处理系统 | |
CN112905571A (zh) | 一种列车轨道交通传感器数据管理方法及装置 | |
CN107577809A (zh) | 离线小文件处理方法及装置 | |
CN111190896A (zh) | 数据处理方法、装置、存储介质和计算机设备 | |
CN117009371A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210402 |
|
RJ01 | Rejection of invention patent application after publication |