CN112883011A - 实时数据处理方法和装置 - Google Patents
实时数据处理方法和装置 Download PDFInfo
- Publication number
- CN112883011A CN112883011A CN202110164799.8A CN202110164799A CN112883011A CN 112883011 A CN112883011 A CN 112883011A CN 202110164799 A CN202110164799 A CN 202110164799A CN 112883011 A CN112883011 A CN 112883011A
- Authority
- CN
- China
- Prior art keywords
- real
- time data
- data
- mirror image
- database
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0269—Targeted advertisements based on user profile or attribute
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种实时数据处理方法及装置,所述方法包括:采集实时数据源产生的实时数据;将所述实时数据传送至消息引擎;获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据;将所述目标数据存储至数据库;以及从所述数据库读取所述目标数据,并将所述目标数据传送至实时数据服务。本发明可实现实时数据接收、实时数据处理、实时数据存储、实时数据服务的整体架构。
Description
技术领域
本发明涉及实时服务技术领域,具体涉及一种用于实现实时服务的实时数据处理方法和装置。
背景技术
实时服务是建立在定制营销、体验营销、用户关系管理等前沿营销理论基础上的一种新的服务理念,是指服务功能对用户动态需要的快速反应,随时满足顾客在消费过程中新产生的需要。实时服务可以满足用户的满意程度,有利于培养用户的忠诚度和增强产品的竞争力,将对提高产品的服务质量产生深远的影响。因此,有必要提供一种可以实现实时数据服务的架构。
发明内容
本发明的目的是提供一种数据处理方法和装置,可实现实时数据接收、实时数据处理、实时数据存储、实时数据服务的整体架构。
本发明实施例提供了以下方案:
第一方面,本发明实施例提供一种实时数据处理方法,所述方法包括:
采集实时数据源产生的实时数据;
将所述实时数据传送至消息引擎;
获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据;将所述目标数据存储至数据库;以及
从所述数据库读取所述目标数据,并将所述目标数据传送至实时数据服务。
可选的,所述采集实时数据源产生的实时数据,包括:通过数据接收接口采集实时数据源产生的实时数据;所述获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据,包括:通过实时数据处理工具获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据;
所述数据处理方法,还包括:
对所述数据接收接口、消息引擎、实时数据处理工具及数据库进行镜像,得到数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像;
添加关系数据库镜像;以及
设置与所述数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像及关系数据库镜像对应的镜像配置文件。
可选的,所述对所述数据接收接口、消息引擎、实时数据处理工具及数据库进行镜像,得到数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像,包括:
对所述消息引擎部署一个Kafka、部署一个镜像,每个镜像对应多个主题;
对所述实时处理工具部署多个Flink、部署多个镜像;以及
对与所述Flink连接的所述数据库部署一个ClickHouse、部署一个镜像。。
可选的,所述实时数据满足标准数据格式,所述标准数据格式包括数据类型及数据内容。
可选的,所述将所述实时数据传送至消息引擎,包括:
将满足同一标准数据格式的所述实时数据传入至所述消息引擎的同一个主题。
可选的,所述获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据包括:
删除不符合预设条件的实时数据;
将嵌套格式的实时数据转换为一维格式;
对一维格式的实时数据进行清洗处理;以及
对清洗后的实时数据进行整合,得到所述目标数据。
可选的,将所述目标数据存储至数据库,包括:
创建符合预设条件的数据库表;
将所述目标数据实时传入并存储至所述数据库表;以及
对所述数据库表中所述目标数据进行聚合过滤。
第二方面,本发明实施例提供一种实时数据处理装置,所述装置包括:
采集模块,用于采集实时数据源产生的实时数据;
所述采集模块,还用于将所述实时数据传送至消息引擎;
处理模块,用于获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据;
存储模块,用于将所述目标数据存储至数据库;以及
调用模块,用于从所述数据库读取所述目标数据,并将所述目标数据传送至实时数据服务。
第三方面,本发明实施例提供一种实时数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序上述的实时数据处理方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时以实现上述的实时数据处理方法的步骤。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明实施例提供的实时数据处理方法可实现实时数据接收、实时数据处理、实时数据存储、支撑实时数据服务的整体架构,可以满足数据高实时性应用场景,且可满足轻量化、私有化部署数据采集、存储、使用的需求。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实时数据处理方法的流程图。
图2是图1所示的实时数据处理方法中数据接收接口的安全认证方法的流程图。
图3是本发明实施例提供的一种标准数据格式的示意图。
图4是图1所示的实时数据处理方法中数据调用接口的安全认证方法的流程图。
图5是本发明实施例提供的一种Kafka的镜像配置文件的示意图。
图6是本发明实施例提供的一种实时数据处理装置的结构示意图。
图7是本发明另一实施例提供的一种实时数据处理装置的结构示意图。
图8是图7所示的实时数据处理装置的镜像过程的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明实施例保护的范围。
请参阅图1,图1为本发明实施例提供的一种实时数据处理方法的流程图。所述实时数据处理方法适用于智慧园区、智慧城市、智慧教育、智慧银行、智慧交通、智慧办公等行业。所述实时数据处理方法用于服务器或者云服务器,以支持其实时数据的采集、处理、存储及使用。所述实时数据处理方法包括以下步骤:
步骤11,采集实时数据源产生的实时数据。
在本实施例中,通过数据接收接口采集实时数据源产生的实时数据,数据接收接口为满足HTTPS协议(Hyper Text Transfer Protocol over Secure Socket Layer,安全超文本传送协议)的API(Application Programming Interface,应用程序编程接口)接口。数据接收接口采用反向API接口,即网络钩子(webhook)。Webhook为一个API概念,是微服务API的使用范式之一,即前端不主动发送请求,完全由后端推送,当终端或者系统埋点产生数据时,主动将数据分发推送到数据接收接口。
在本实施例中,API接口安全策略采用AES(Advanced Encryption Standard,高级加密标准)对称加密进行安全认证。
请一并参阅图2,在本实施例中,实时数据源为客户端,数据接收接口为服务端。所述认证方法包括以下步骤:
步骤a,服务端颁发密钥,客户端使用密钥对原始报文采用AES加密。
步骤b,客户端向服务端发送HTTP请求,并将加密报文发送至服务端。
步骤c,服务端接收所述加密报文以响应HTTP请求,并对加密报文进行AES解密,得到解密数据,如果解密失败,则抛弃解密数据,同时返回至步骤a,如果解密成功,则进入步骤d。
步骤d,对解密数据进行校验,具体地,计算客户端发送HTTP请求与服务端响应HTTP请求之间的时间差值,并判断时间差值是否大于预设阈值,例如,600秒,如果时间差值大于阈值,则判断校验失败,客户端发送HTTP请求为过期请求,抛弃对应的解密数据,并返回至步骤a,如果时间差值小于阈值,则判断校验成功,客户端发送HTTP请求为正常请求,保存对应的解密数据。在步骤S11中,所述实时数据源包括,但不限于,终端通过IoT(TheInternet ofThings,物联网)平台传送的实时数据流以及软件中埋点的实时数据流。其中,IoT平台采用可靠传送、低延时的MQTT协议(Message Queue Telemetry Transport,遥测传送协议),实现客户端和服务端之间的数据通讯。
所述实时数据满足标准数据格式,所述标准数据格式包括数据类型及数据内容。数据类型包括,但不限于,json格式或者xml格式。请参阅图3,所示为一个具体标准数据格式,数据内容包括,但不限于,数据来源系统信息、报告者、版本号、数据发送地点、数据发生时间戳、数据事件类型以及数据详细信息,其中所述数据事件类型可以根据业务内容进行自定义,所述数据详细信息包括多对标签和标签值。在一个实施例中,当数据类型采用json格式时,则传送报文的请求头为conent-type:application/json。
在本实施例中,通过对所述实时数据定义通用的标准数据格式,使得所述据接收接口实现通用型,单个数据接收接口可以复用采集不同实时数据源的实时数据流。
步骤12,将所述实时数据传送至消息引擎。
在本实施例中,所述数据接收接口将所述实时数据传送至消息引擎。所述消息引擎为Kafka,Kafka用于实现超大量级数据的实时传送。在本实施例中,Kafka用于实现数据接收接口与实时数据处理工具的实时数据的实时传送。
Kafka具有高可用性、可持久化存储数据、高吞吐量、低延迟、可扩展的特征,其中,高可用性,是指Kafka支持集群模式,可实现多份相同的备份,共同提供冗余机制,从而保持系统高可用性;可持久化存储数据,是指预设时间内,例如,7天内,传送至Kafka中的数据存储在硬盘,不会被删除;高吞吐量,是指Kafka每秒能够处理的消息数即数据条数量大;低延迟,是指客户端发起的请求与服务端处理请求并发送响应给客户端之间的时间间隔较短;可扩展,是指Kafka可自由的增加集群到集群中,扩充集群的处理能力。
在本实施例中,Kafka具有安全认证机制,具体地,所述安全认证机制包括:往Kafka传入数据和读取的客户端的用户名和密码,需要注册到Kafka的配置文件中,Kafka授予用户配置相应的读取/写入数据的权限。
Kafka包括多个主题(Topic),每个Topic表示一类消息,即消息送达位置,生产者往Kafka传入数据,每个生产者都需要指定消息发送到的Topic,同一个Topic可以被多个消费者订阅。Kafka的架构包括生产者发送消息给Kafka及消费者从Kafka读取消息。Kafka的模型包括消息队列模型和发布/订阅模型。
在本实施例中,数据接收接口为Kafka的消息生产者,实时数据满足标准数据格式,因此,可以往一个指定的Topic中持续不断的传送实时数据,即将满足同一标准数据格式的所述实时数据传入至所述消息引擎的同一个主题。在本实施例中,满足同一标准数据格式的所述实时数据具有相同的数据类型及相同的数据内容,或者,具有相同的数据类型及部分相同的数据内容。
对于Kafka而言,采用少数量的Topic进行大数据量的数据传送,比采用多数量的Topic进行小数据量的数据传送,数据传送效果更好,在本实施例中,采用通用型的数据接收接口可使得Kafka设置的Topic数量尽可能少,将具有同一标准格式的数据传入同一个Topic即可,因此,可以优化Kafka的使用效果。
步骤13,获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据。
在本实施例中,通过实时数据处理工具获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据。实时数据处理工具为Flink,Flink为框架和分布式处理引擎,用于对有界和无界数据流进行有状态计算。Flink引擎具有高性能、高可靠性和高扩展性,可用于实时数据处理。
在本实施例中,Flink接收的数据源为Kafka中指定Topic的实时数据。Flink中的数据包括有界数据流和无界数据流。有界数据流是指输入的数据有始有终,例如,数据为一分钟或者一天的交易数据,处理有界数据流的方式为批处理。无界数据流是指输入的数据有始无终,数据一旦开始产生就会持续不断的产生新的数据,即数据没有时间边界,无界数据流需要持续不断地处理。Kafka中的Topic数据一般就是无界数据流。
在本实施例中,Flink作为消费者模式,消费消息引擎Kafka的实时数据,并对实时数据的处理,得到目标数据。
具体地,Flink作为消费者,读取Kafka中的实时数据,Kafka采用保留每一个客户端的位移(offset),保证每一个客户端不会读取重复的消息,每次都是从记录的位移开始往后读取新的消息。当Flink订阅Kafka中指定的Topic时,只要订阅的Topic中存在Flink未读取处理过的数据,Flink就会实时处理所述数据。
在本实施例中,所述通过Flink获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据包括:
步骤131,删除不符合预设条件的实时数据,例如,所述实时数据为{},即空json,则需删除,所述预设条件可根据数据业务定义。
步骤132,将嵌套格式的实时数据转换一维格式。例如,如果实时数据中存在嵌套格式的实时数据{k1:v1,{k2:v2,k3:v3}},则将{k1:v1,{k2:v2,k3:v3}}转换成一维格式数据{k1:v1,k2:v2,k3:v3}。
步骤133,对一维格式的实时数据进行清洗处理,例如,实时数据存在字段的名字和存储工具中的保留字段有冲突,则需要重命名,例如,实时数据存在字段的名字为from,然而,一般关系数据库中from是保留字段,则实时数据中from字段需要重命名,例如,加上前缀,重新命名为_from。
步骤134,对清洗后的实时数据进行整合,得到所述目标数据。具体地,Flink将一个Kafka的多个Topic中实时数据进行整合或者将一个Kafka的一个Topic中多个不同实时数据源的实时数据进行整合。在一个实施例中,多个不同实时数据源的实时数据包括异常日志、正常日志、报警日志及园区中人员实时轨迹数据,异常日志、正常日志、报警日志及园区中人员实时轨迹数据推送至同一个数据接收接口,数据接收接口将上述数据发送到Kafka中的同一个Topic中,Flink将上述数据进行整合,得到所述目标数据。
步骤14,将所述目标数据存储至数据库。
在本实施例中,所述数据库为ClickHouse,ClickHouse为一种用于数据分析(OLAP)领域的开源列式数据库,支持分布式部署、查询速度快、压缩算法选择自由及高压缩效果好,适用于支持实时性要求高的数据服务场景。所述将所述目标数据存储至数据库,包括:
步骤141,创建符合预设条件的数据库表。在本实施例中,预设条件为目标数据的存储要求。
步骤142,将目标数据实时传入并存储至数据库表。具体地,将Flink连接至ClickHouse,目标数据通过flink传入并存储至数据库表,
步骤143,对数据库表内的目标数据进行聚合过滤操作。
步骤15,通过数据调用接口从所述数据库读取所述目标数据,并将所述目标数据传送至实时数据服务。
具体地,数据调用接口为满足HTTPS协议的API接口。与实时数据相同,所述目标数据满足标准数据格式。当数据类型采用json时,则传送报文的请求头就是conent-type:application/json。在本实施例中,API接口安全策略采用AES(Advanced EncryptionStandard,高级加密标准)对称加密实现安全认证。具体认证方法与数据接收接口大致相同,不同之处仅在于,数据库为服务端,数据调用接口为客户端,因此,在此不再赘述。
本发明实施例提供的实时数据处理方法通过步骤11至步骤15可以实现实时数据的采集、处理、存储及使用的整体架构,在另一实施例中,可采用Docker Compose技术实现上述整体架构的镜像,其中,Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker使得开发者可以打包应用以及依赖包到一个轻量化、可移植的容器中,然后,发布到Linux机器上,可以实现虚拟化,Docker Compose是用于定义和运行多容器Docker应用程序的工具,通过Compose开发者可以使用YML文件来配置应用程序需要的所有服务。在Compose中进行部署,针对轻量化的部署需求,开发者不做集群式的部署,而是针对单一服务器作部署,从而借助Compose定义和运行多个容器,并且利用Dockerfile生成镜像,而在Dockerfile中可以提前针对诸如Flink和ClickHouse的位置关系、连接关系进行部署。在本实施例中,所述实时数据处理方法还包括:
步骤16,对所述数据接收接口、所述消息引擎、所述实时数据处理工具及所述数据库进行镜像处理,得到数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像。
在本实施例中,消息引擎镜像、实时处理工具镜像、数据库镜像分别为Kafka镜像、Flink镜像、ClickHouse镜像。
步骤17,添加关系数据库镜像,在本实施例中,关系数据库镜像包括PostgreSQL镜像及mysql镜像。
步骤18,设置与所述数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像及关系数据库镜像对应的镜像配置文件。在本实施例中,镜像配置文件包括Dockerfile,在本实施例中,镜像配置文件为YML文件,例如,docker-compose.yml,用于设置镜像参数,所述镜像参数包括Kafka、Flink、以及ClickHouse的位置关系、连接关系。
进行镜像操作时,将所述数据接收接口、Kafka镜像、Flink镜像、ClickHouse镜像以及关系数据库镜像存入一个公有云仓库中,镜像配置文件docker-compose.yml存入一个公有云环境中,提供安装有Docker环境和docker-compose的本地机器,将上述各个组件的镜像Docker image和镜像配置文件docker-compose.yml存储到本地机器上,并创建镜像配置文件docker-compose.yml中主机指定路径的文件或者文件夹,设置对应的配置参数,就可以通过docker-compose up启动并运行整个应用程序,也就是运行上述步骤S11至步骤S15。
在本实施例中,Kafka也可以通过构建一个Docker image实现,请参阅图,在一个具体实施例中,Kafka对应的镜像配置文件包括image、ports、environment、depends_on、vlolumns、networks及aliases。其中,image表示指定容器运行的镜像,ports表示Docker镜像的容器和主机使用端口号9092,environment是添加环境变量,例如,Kafka的topic名称为zhyq-ab-data:3:1,depends_on表示Kafka的依赖组件,zookeeper负责资源调度管理,vlolumns表示Docker镜像中文件夹和文件与服务器上文件夹和文件对应关系,networks表示配置容器连接的网络,aliases表示同一网络上的其他容器可以使用服务名称或此别名来连接到对应容器的服务。
在一个实施例中,所述对所述数据接收接口、消息引擎、实时数据处理工具及数据库进行镜像,得到数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像,包括:
对所述消息引擎部署一个Kafka、部署一个镜像,每个镜像对应多个主题;
对所述实时处理工具部署多个Flink、部署多个镜像;以及
对与所述Flink连接的所述数据库部署一个ClickHouse、部署一个镜像。
本发明实施例提供的实时数据处理方法为了满足轻量化、私有化部署数据采集、存储、使用的需求,消息引擎部署的数量不宜过多,部署一个Kafka镜像,则可以保证消息通道的干净和畅通,而部署多个Flink镜像,则可以实现数据的高速快捷处理。
Docker作为一种Linux容器技术,可以在多个镜像中分别部署Linux的多个版本,在一个实施例中,在Flink镜像里部署Centos7.6,在ClickHouse中部署ubuntu18.04,借助这样灵活的操作可以更有效地实现数据快捷便利的处理和实现系统的轻量化。在一个具体的应用场景中,使用所述实时数据处理方法实现园区中电子围栏异物/入侵实时检测及报警,包括以下步骤:
步骤11a,采用摄像头对电子围栏进行监控,在本实施例中,多个摄像头布设于电子围栏的多个区域,使用AI算法对摄像头拍摄的视频进行分析,得到检测数据,摄像头作为实时数据源将检测数据推送到数据接收接口。
步骤12a,数据接收接口将检测数据传入到Kafka的指定Topic中。
步骤13a,Flink读取Topic中检测数据,并对检测数据进行处理,得到目标数据。
步骤14a,Flink将目标数据存入ClickHouse。
步骤15a,数据调用接口读取ClickHouse中的目标数据,在检测数据上述步骤11a至步骤15a的传输过程中,通过自动拉取或者主动推送实现,例如,数据接收接口可主动将检测数据推送至Kafka,Kafka也可以从数据接收接口拉取检测数据,在本应用场景下,实时服务为需要接入的态势感知大屏,如果目标数据中存在异常结果的目标数据,则将异常结果传送给大屏,显示异常结果并报警,同时,大屏可实时更新AI算法检测出的异常结果。因此,通过上述实时数据处理方法,大屏可与大量报警数据和检测数据实现实时互动的场景。
基于与方法同样的发明构思,本发明实施例还提供了一种实时数据处理装置100,如图6所示为该装置100实施例的结构示意图,所述装置100包括:
采集模块101,用于采集实时数据源产生的实时数据。
所述采集模块101,还用于将所述实时数据传送至消息引擎。
处理模块102,用于获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据。所述处理模块102,还用于将所述目标数据存储至数据库。
调用模块103,用于从所述数据库读取所述目标数据,并将所述目标数据传送至实时数据服务。请参阅图7,在本实施例中,采集模块101为数据接收接口,与实时数据源相连,消息引擎为Kafka,处理模块102为实时数据处理工具flink,数据库为ClickHouse,调用模块104为数据调用接口,与实时数据服务相连。
在另一实施例中,请一并参阅图8,所述数据处理装置还包括:
镜像模块104,用于对所述数据接收接口、消息引擎、实时数据处理工具及数据库进行镜像,得到数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像;添加关系数据库镜像;以及设置与所述数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像及关系数据库镜像对应的镜像配置文件。在本实施例中,镜像模块105采用Docker Compose技术进行镜像。
Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,开发者可以使用YML文件来配置应用程序需要的所有服务。在Compose中进行部署,例如:针对消息引擎部署一个Kafka、部署一个镜像,每个镜像对应多个主题Topic;针对实时处理工具部署多个Flink、部署多个镜像;针对与Flink连接的数据库部署一个ClickHouse、部署一个镜像。
需要说明的是:1、针对轻量化的部署需求,开发者不做集群式的部署,而是针对单一服务器作部署。从而借助Compose定义和运行多个容器,并且利用Dockerfile生成镜像。而在Dockerfile中可以提前针对诸如Flink和ClickHouse的位置关系连接关系进行部署。2、Docker作为一种Linux容器技术,可以在多个镜像中分别部署Linux的多个版本,如在Flink镜像里部署Centos7.6、在ClickHouse中部署ubuntu18.04,借助这样灵活的操作可以更有效地实现数据快捷便利的处理和实现系统的轻量化。
原则上,为了满足轻量化、私有化部署数据采集、存储、使用的需求,消息引擎部署的数量不宜过多,以保证消息通道的干净和畅通,如部署一个Kafka镜像;而可以考虑部署多个Flink镜像,以实现数据的高速快捷处理。
基于与前述实施例中同样的发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述实时数据处理方法的步骤。
本发明实施例中提供的技术方案,至少具有如下技术效果或优点:
本发明实施例提供的实时数据处理方法可实现实时数据接收、实时数据处理、实时数据存储、支撑实时数据服务的整体架构,可以满足数据高实时性应用场景,且可满足轻量化、私有化部署数据采集、存储、使用的需求。
本发明实施例提供的实时数据处理方法可通过镜像实现上述整体架构,使得上述整体架构具有可移植性,在架构实现后,还可直接迁移到其它机器,使用方便。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(模块、系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (10)
1.一种实时数据处理方法,其特征在于,所述方法包括:
采集实时数据源产生的实时数据;
将所述实时数据传送至消息引擎;
获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据;
将所述目标数据存储至数据库;以及
从所述数据库读取所述目标数据,并将所述目标数据传送至实时数据服务。
2.根据权利要求1所述的实时数据处理方法,其特征在于,所述采集实时数据源产生的实时数据,包括:通过数据接收接口采集实时数据源产生的实时数据;所述获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据,包括:通过实时数据处理工具获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据;所述数据处理方法,还包括:
对所述数据接收接口、消息引擎、实时数据处理工具及数据库进行镜像,得到数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像;
添加关系数据库镜像;以及
设置与所述数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像及关系数据库镜像对应的镜像配置文件。
3.根据权利要求2所述的实时数据处理方法,其特征在于,所述对所述数据接收接口、消息引擎、实时数据处理工具及数据库进行镜像,得到数据接收接口镜像、消息引擎镜像、实时数据处理工具镜像、数据库镜像,包括:
对所述消息引擎部署一个Kafka、部署一个镜像,每个镜像对应多个主题;
对所述实时处理工具部署多个Flink、部署多个镜像;以及
对与所述Flink连接的所述数据库部署一个ClickHouse、部署一个镜像。
4.根据权利要求1所述的实时数据处理方法,其特征在于,所述实时数据满足标准数据格式,所述标准数据格式包括数据类型及数据内容。
5.根据权利要求4所述的实时数据处理方法,其特征在于,所述将所述实时数据传送至消息引擎,包括:
将满足同一标准数据格式的所述实时数据传入至所述消息引擎的同一个主题。
6.根据权利要求1所述的实时数据处理方法,其特征在于,所述获取所述消息引擎中的实时数据,并对实时数据进行处理,得到目标数据包括:
删除不符合预设条件的实时数据;
将嵌套格式的实时数据转换为一维格式;
对一维格式的实时数据进行清洗处理;以及
对清洗后的实时数据进行整合,得到所述目标数据。
7.根据权利要求1所述的实时数据处理方法,其特征在于,将所述目标数据存储至数据库,包括:
创建符合预设条件的数据库表;
将所述目标数据实时传入并存储至所述数据库表;以及
对所述数据库表中所述目标数据进行聚合过滤。
8.一种实时数据处理装置,其特征在于,所述装置包括:
采集模块,用于采集实时数据源产生的实时数据;
所述采集模块,还用于将所述实时数据传送至消息引擎;
处理模块,用于获取所述消息引擎中的实时数据,并对实时数据进行处理,
得到目标数据;
存储模块,用于将所述目标数据存储至数据库;以及
调用模块,用于从所述数据库读取所述目标数据,并将所述目标数据传送至实时数据服务。
9.一种实时数据处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现权利要求1至7任一所述的实时数据处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时以实现权利要求1至7任一所述的实时数据处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110164799.8A CN112883011A (zh) | 2021-02-05 | 2021-02-05 | 实时数据处理方法和装置 |
US17/486,480 US11783374B2 (en) | 2021-02-05 | 2021-09-27 | Method and device for providing real-time data service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110164799.8A CN112883011A (zh) | 2021-02-05 | 2021-02-05 | 实时数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112883011A true CN112883011A (zh) | 2021-06-01 |
Family
ID=76057476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110164799.8A Pending CN112883011A (zh) | 2021-02-05 | 2021-02-05 | 实时数据处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11783374B2 (zh) |
CN (1) | CN112883011A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254548A (zh) * | 2021-06-04 | 2021-08-13 | 深圳市智慧空间平台技术开发有限公司 | 一种园区多维数据的集成方法 |
CN113282608A (zh) * | 2021-06-10 | 2021-08-20 | 湖南力唯中天科技发展有限公司 | 一种基于列数据库的智能交通数据分析和存储方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391448B (zh) * | 2022-10-08 | 2023-02-03 | 数兑科技(杭州)有限公司 | 一种智能化用数方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1275054A1 (en) * | 2000-02-11 | 2003-01-15 | Acta Technologies, Inc. | Nested relational data model |
US8126685B2 (en) * | 2006-04-12 | 2012-02-28 | Edsa Micro Corporation | Automatic real-time optimization and intelligent control of electrical power distribution and transmission systems |
US8183062B2 (en) * | 2009-02-24 | 2012-05-22 | Tokyo Electron Limited | Creating metal gate structures using Lithography-Etch-Lithography-Etch (LELE) processing sequences |
US9679299B2 (en) * | 2010-09-03 | 2017-06-13 | Visa International Service Association | Systems and methods to provide real-time offers via a cooperative database |
US8559765B2 (en) * | 2011-01-05 | 2013-10-15 | International Business Machines Corporation | System and method for image storage and analysis |
AU2016310529B2 (en) * | 2015-08-27 | 2020-12-17 | Johnson Controls Tyco IP Holdings LLP | Edge intelligence platform, and internet of things sensor streams system |
US11438413B2 (en) * | 2019-04-29 | 2022-09-06 | EMC IP Holding Company LLC | Intelligent data storage and management for cloud computing |
US11288053B2 (en) * | 2019-08-15 | 2022-03-29 | Microstrategy Incorporated | Conversion and restoration of computer environments to container-based implementations |
CN111008197A (zh) | 2019-11-20 | 2020-04-14 | 王锦志 | 一种电力营销服务系统数据中台设计方法 |
CN111143465A (zh) | 2019-12-11 | 2020-05-12 | 深圳市中电数通智慧安全科技股份有限公司 | 一种数据中台的实现方法、装置以及电子设备 |
-
2021
- 2021-02-05 CN CN202110164799.8A patent/CN112883011A/zh active Pending
- 2021-09-27 US US17/486,480 patent/US11783374B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254548A (zh) * | 2021-06-04 | 2021-08-13 | 深圳市智慧空间平台技术开发有限公司 | 一种园区多维数据的集成方法 |
CN113282608A (zh) * | 2021-06-10 | 2021-08-20 | 湖南力唯中天科技发展有限公司 | 一种基于列数据库的智能交通数据分析和存储方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220253904A1 (en) | 2022-08-11 |
US11783374B2 (en) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112883011A (zh) | 实时数据处理方法和装置 | |
US9715537B2 (en) | Systems and methods for event driven object management and distribution among multiple client applications | |
CN111736775B (zh) | 多源存储方法、装置、计算机系统及存储介质 | |
US11394794B2 (en) | Fast ingestion of records in a database using data locality and queuing | |
US20130067024A1 (en) | Distributing multi-source push notifications to multiple targets | |
CN113157648A (zh) | 基于区块链的分布式数据存储方法、装置、节点及系统 | |
EP3905583B1 (en) | Multicast encryption scheme for data-ownership platform | |
CN108628881A (zh) | 数据同步方法和装置 | |
CA3093718A1 (en) | Method, apparatus, and computer program product for encryption key management within a group-based communication system | |
WO2022028144A1 (en) | Blockchain management of provisioning failures | |
CN110928934A (zh) | 一种用于业务分析的数据处理方法和装置 | |
CN106506568B (zh) | 信息交互系统 | |
CN114465867B (zh) | 服务器的维护方法、装置、存储介质及处理器 | |
CN113505260A (zh) | 人脸识别方法、装置、计算机可读介质及电子设备 | |
CN112463527A (zh) | 一种数据处理方法、装置、设备、系统及存储介质 | |
CN117194562A (zh) | 数据同步方法和装置、电子设备和计算机可读介质 | |
CN111190963A (zh) | 一种区块链应用后端系统 | |
CN114979144B (zh) | 云边通信方法、装置及电子设备 | |
CN110166561B (zh) | 可穿戴设备的数据处理方法、装置、系统、设备及介质 | |
Khue et al. | Design and implementation of MEAN stack-based scalable real-time Digital Signage System | |
KR102128389B1 (ko) | 클라우드 기반의 데이터 처리 장치, 방법 및 클라우드 기반의 데이터 처리 서비스를 제공받는 사용자 단말 | |
US11818087B1 (en) | User-to-user messaging-based software troubleshooting tool | |
CN113067842B (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
CN117793095A (zh) | 数据转发方法、装置、系统、设备及存储介质 | |
JP4184169B2 (ja) | サービスオーダ情報管理制御クライアント装置とクライアント装置のサービスオーダ情報管理制御方法、およびサービスオーダ情報管理制御クライアントプログラムとそのクライアントプログラムを記憶した記憶媒体 |
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 |