CN114036160A - 一种实时数据采集方法、装置、电子设备及存储介质 - Google Patents
一种实时数据采集方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114036160A CN114036160A CN202111286562.3A CN202111286562A CN114036160A CN 114036160 A CN114036160 A CN 114036160A CN 202111286562 A CN202111286562 A CN 202111286562A CN 114036160 A CN114036160 A CN 114036160A
- Authority
- CN
- China
- Prior art keywords
- data
- acquired
- data stream
- target
- target data
- 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/23—Updating
-
- 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/24552—Database cache management
-
- 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/248—Presentation of query results
-
- 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/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种实时数据采集方法、装置、电子设备及存储介质,针对目标数据源中存储的数据文件,以相应数据流的方式进行传输、采集,基于数据流快速传输、快速响应的特点,实现了数据采集的高时效性,提高了数据采集效率,进一步的,本申请实施例中,通过对各个数据流进行实时监测,并根据当前时间监测的,各个数据流各自的指标,以及当前对应的数据传输通路的数目,选取出相应数目的各个目标数据流,从而利用有限数目的数据传输通路对更多数据流的进行相应采集,提高了采集资源的利用率。
Description
技术领域
本发明涉及数据分析领域,尤其涉及一种实时数据采集方法、装置、电子设备及存储介质。
背景技术
数据采集(Data Acquisition,DAQ)是指利用相关技术,对信号对象的数据信息进行采集、过滤、分析、存储等,从而基于获取到的数据信息,分析确定信号对象的变化属性的信息科学技术,在物联网、大数据等领域发挥了至关重要的作用,然而,相关技术中,尚且存在以下缺陷:
1、数据时效性低。
相关技术中,常常以T+1的方式,对信号对象的数据信息进行定时批量数据集成、采集;即在第T+1天,对信号对象在过去T天产生的数据信息进行集成,并针对集成后的数据信息进行相应采集,由于数据采集的时间周期通常较长,数据信息的生成时间与数据信息的采集时间之间距离较远,因此,这种方式下,采集到的数据信息的时效性较低。
2、采集效率低。
相关技术中,采用批量数据集成的方式,基于预设的采集周期,分别对信息对象的数据信息进行相应采集,尽管这种方式确保了采集到的数据信息的完整性,然而,当数据信息的类型较多或者数据信息的数据量较大时,这种方式容易导致大量的采集任务堆积,从而影响数据信息的采集效率。
3、采集资源利用率低。
相关技术中,为确保数据采集的完整性,往往需要针对不同的信号对象,分别配置相应的采集资源,然而,在实际场景中,一方面,在特定时间段内,信号对象生成的数据信息较少,另一方面,部分信息对象可能对应着较低的数据信息生成频率,因此,这种方式下,对采集资源的利用率较低。
发明内容
本申请实施例提供一种实时数据采集方法、装置、电子设备和存储介质,用于在提高数据时效性的同时,提升数据采集效率以及采集资源的利用率。
第一方面,本申请实施例提供了一种实时数据采集方法,包括:
对目标数据源中包含的各个待采集数据流进行实时监测。
确定所述各个待采集数据流的缓存数据量到达预设的数据量阈值时,从所述目标数据源中获取所述各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件。
基于当前时间对应的通道数量门限,从所述各个待采集数据流中,选取相应数量的待采集数据流作为目标数据流。
基于获得的各个目标数据流,分别采用相应的数据采集通道,获得所述各个目标数据流当前各自关联的至少一个数据文件。
第二方面,本申请实施例还提供了一种实时数据采集装置,包括:
监测模块,用于对目标数据源中包含的各个待采集数据流进行实时监测。
获取模块,用于确定所述各个待采集数据流的缓存数据量到达预设的数据量阈值时,从所述目标数据源中获取所述各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件。
调度模块,用于基于当前时间对应的通道数量门限,从所述各个待采集数据流中,选取相应数量的待采集数据流作为目标数据流。
采集模块,用于基于获得的各个目标数据流,分别采用相应的数据采集通道,获得所述各个目标数据流当前各自关联的至少一个数据文件。
在一种可选的实施例中,在对目标数据源中包含的各个待采集数据流进行实时监测之前,监测模块还用于:
基于预设的各个数据源类型,分别设置各个数据源类型各自对应的连接方式。
在获得目标数据源的数据源标识时,基于数据源标识,确定目标数据源的目标数据源类型。
基于目标数据源的数据源类型,从各个数据源类型各自对应的连接方式中,确定目标数据源关联的目标连接方式。
基于目标连接方式,与目标数据源创建相应的通信连接。
在一种可选的实施例中,在与目标数据源创建相应的通信连接之后,监测模块还用于:
确定目标数据源中,实时更新的各个数据文件。
基于获得的实时更新的各个数据文件,确定相应的各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件。
基于与目标数据源相应的通信连接,将各个待采集数据流各自存储在指定的缓存区域中。
在一种可选的实施例中,在基于当前时间对应的通道数量门限,从各个待采集数据流中,选取相应数量的待采集数据流作为目标数据流时,调度模块具体用于:
确定当前时间对应的通道数量门限。
基于当前时间监测的,各个数据流各自的数据流指标,确定各个待采集数据流各自对应的采集优先权值。
基于获得的各个采集优先权值由大到小的顺序,对各个待采集数据流进行排序。
基于各个待采集数据流的排列顺序及通道数量门限,选取相应数量的待采集数据流作为目标数据流。
在一种可选的实施例中,在确定当前时间对应的通道数量门限时,调度模块具体用于:
基于当前时间对应的待采集数据流的数量,以及当前时间对应的采集资源数量,确定当前时间对应的通道数量门限。
在一种可选的实施例中,在基于获得的各个目标数据流,分别采用相应的数据采集通道,获得各个目标数据流当前各自关联的至少一个数据文件时,采集模块具体用于:
基于预设的数据流启动算法,启动获得的各个目标数据流,并分别采用各个目标数据流各自对应的数据采集通道,获得各个目标数据流当前各自关联的至少一个数据文件。
在一种可选的实施例中,在基于获得的各个目标数据流,分别采用相应的数据采集通道,获得各个目标数据流当前各自关联的至少一个数据文件后,采集模块还用于:
对各个目标数据流各自的剩余缓存数据量进行实时监测,并基于监测到的剩余缓存数据量,对各个目标数据流各自的数据流指标进行实时更新。
第三方面,本申请实施例还提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,当计算机程序被处理器执行时,使得处理器实现上述第一方面中的任一种实时数据采集方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面的实时数据采集方法。
第二方面至第四方面中任意一种实现方式所带来的技术效果可参见第一方面中对应的实现方式所带来的技术效果,此处不再赘述。
本申请实施例中,针对目标数据源中存储的数据文件,以相应数据流的方式进行传输、采集,基于数据流快速传输、快速响应的特点,实现了数据采集的高时效性;通过预先将各个待采集数据流写入预设的缓存区域中,当监测到缓存数据量到达预设的数据量阈值时,能够从缓存区域中快速获取相应数据流,从而提升了数据的传输效率及数据的采集效率;进一步的,本申请实施例中,对各个数据流进行实时监测,并根据当前时间监测的,各个数据流各自的指标,以及当前对应的数据传输通路的数目,选取出相应数目的各个数据流,这样,就可以利用有限数目的数据传输通路,承接更多数目的数据流,在有限时间段内对相应的各个数据流实现轮询采集,实现了采集资源的有效利用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的实时数据采集***架构图;
图2为本申请实施例提供的与目标数据源创建通信连接的流程图;
图3为本申请实施例提供的与目标数据源创建通信连接的示例图;
图4为本申请实施例提供的数据流缓存的流程图;
图5为本申请实施例提供的实时数据采集流程图;
图6为本申请实施例提供的数据流调度流程图;
图7为本申请实施例提供的数据流调度示例图;
图8为本申请实施例提供的实时数据采集场景示意图;
图9为本申请实施例提供的一种实时数据采集装置示意图;
图10为本申请实施例提供的一种电子设置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为保证采集数据的时效性、提升数据采集效率及采集资源的利用率,本申请实施例提出一种实时数据采集方法、装置、电子设备及存储介质,首先,本申请实施例中,针对目标数据源中存储的数据文件,以相应数据流的方式进行传输、采集,基于数据流快速传输、快速响应的特点,实现了数据采集的高时效性;其次,本申请实施例中,预先将各个待采集数据流写入预设的缓存区域中,从而提升了数据的传输效率及数据的采集效率;进一步的,本申请实施例中,对各个数据流进行实时监测,并根据当前时间监测的,各个数据流各自的指标,以及当前对应的数据传输通路的数目,选取出相应数目的各个数据流,这样,就可以利用有限数目的数据传输通路,承接更多数目的数据流,并基于上述方式,对相应的各个数据流实现轮询采集,实现了采集资源的有效利用。
在实际场景中,为确保数据采集的个性化,往往需要针对不同类型的多个数据源,分别进行相应的数据采集,因此,为保证数据采集的正常运行,需要预先与多个数据源之间分别创建相应的通信连接。
例如,参阅图1所示,为本申请实施例所适用的数据采集***的***架构图,其中,该数据采集***包含采集设备与存储设备,且采集设备与存储设备之间建立有数据传输通道,可通过无线通信方式或有线通信方式进行信息交互。
示例性的,采集设备可通过短距离无线通信方式(Wi-Fi等)接入网络,从而与存储设备进行通信。
本申请实施例对采集设备及存储设备的数量不做限制,为便于描述,图1中仅以一个采集设备为例。
相关技术下,针对不同类型的各个数据源,往往只能依据各个数据源各自对应的数据源类型,采用各个数据源类型各自对应的连接方式,逐一建立相应的通信连接,然而,这一方式存在采集效率低、采集成本高的问题,为避免上述缺陷,本申请优先的实施例中,采用以下方式,与目标数据源创建相应的通信连接,参阅图2所示,包括:
步骤201:基于预设的各个数据源类型,分别设置各个数据源类型各自对应的连接方式。
不同的数据源类型通常对应着不同的连接方式,例如,实际场景中,通常使用关系型数据库作为数据采集时的各个数据源,那么,针对关系型数据库包含的各个类型(如,mysql,db2,oracle等),需要分别构建相应的各个连接方式,可选的,实际场景中还可使用数据文件、消息中间件等作为待采集的数据源,则相应的数据源类型还可包括file,kafka等,在此不再赘述,本申请实施例中,假设各个预设的数据源类型如下表1所示:
表1
数据源类型 |
mysql |
db2 |
oracle |
file |
kafka |
则基于上述数据源类型,分别为每种数据源类型,设置相应的连接方式,参阅下表2所示:
表2
数据源类型 | 数据源连接方式 |
mysql | connector_mysql |
db2 | connector_db2 |
oracle | connector_oracle |
file | connector_file |
kafka | connector_kafka |
可选的,根据获得的各个数据源类型,采用元数据API标识的方法,确定各个数据源类型各自对应的连接方式,基于上述步骤,能够实现对各个数据源连接方式的统一管理。
步骤202:在获得目标数据源的数据源标识时,基于获得的数据源标识,确定目标数据源的目标数据源类型。
具体的,若目标数据源表示为关系型数据库,则可以根据该关系型数据库的协议地址关键字,确定目标数据源对应的目标数据源类型,此外,也可由为目标数据源设置特定的数据源标识,以确定目标数据源的目标数据源类型。
参阅图3所示,采集设备中存储有上表2所示的数据源连接方式集合,假设采集设备从外部的管理设备中,接收到待采集的目标数据源的数据源标识_mysql,则基于获得的数据源标识_mysql,在预设的数据源连接方式集合中进行适配,确定出目标数据源的目标数据源类型为mysql数据源类型。
步骤203:基于目标数据源的数据源类型,从各个数据源类型各自对应的连接方式中,确定目标数据源关联的目标连接方式。
具体的,基于确定的目标数据源类型,在预设的数据源连接方式集合中,匹配出与目标数据源类型对应的目标连接方式,可选的,若未匹配出目标连接方式,则数据采集平台向目标对象发送相应的通知消息:当前无法适配该类型的数据源。
例如,基于步骤202确定的mysql目标数据源类型,从数据源连接方式集合中,匹配出相应的目标连接方式为:connector_mysql数据源连接方式。
步骤204:基于确定的目标连接方式,与目标数据源创建相应的通信连接。
例如,在一种可选的实施例中,可以采用flink技术中的自定义flinkconnector方式,为预设的各种数据源类型分别设置各自的连接方式,则基于该场景,在确定相应的目标连接方式之后,可以通过flink的CDC模式调用相应的目标连接方式,从而与目标数据源创建相应的通信连接。
基于上述方式,能够基于获得的目标数据源的数据源标识,自动适配相应的目标连接方式,并基于确定的目标连接方式创建与目标数据源之间的通信连接,从而有效提高了采集效率并降低了采集成本。
进一步的,参阅图4所示,为提高数据采集效率,与目标数据源创建相应的通信连接后,还包括:
步骤401:确定目标数据源中,实时更新的各个数据文件。
具体的,在与目标数据源创建相应的通信连接后,为进一步提高数据采集效率,需要预先确定目标数据源中,实时更新的各个数据文件。
例如,假设目标数据源中,确定的各个实时更新的数据文件如下表3所示:
表3
数据文件 |
file_1 |
file_2 |
file_3 |
file_4 |
file_5 |
步骤402:基于实时更新的各个数据文件,确定相应的各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件。
可选的,将多个数据文件放入同一文件夹中,以使相应的待采集数据流关联该文件夹中的所有数据文件。
例如,参阅下表4所示,基于上述实时更新的各个数据文件,相应的各个待采集数据流为:
表4
步骤403:基于与目标数据源相应的通信连接,将各个待采集数据流各自存储在指定的缓存区域中。
可选的,通过kafka集群,将各个待采集数据流分别存储到kafka集群中的topic中,其中,每个topic需要设置为3个以上分区和3个以上副本数,并调整kafka的可靠性参数为ack=-1,以保证各个待采集数据流能够及时、准确地反映目标数据源的数据变化情况。
例如,参阅下表5所示,将上述各个待采集数据流分别存储在kafka集群中,指定的topic中,保证数据流的高速响应。
表5
待采集数据流 | 缓存区域 |
数据流1 | topic1 |
数据流2 | topic2 |
数据流3 | topic3 |
基于上述步骤,将各个待采集数据流持续缓存在指定区域中,从而确保了待采集数据流的高可用性和高响应性,进一步提升了数据采集效率。
参阅图5所示,将各个待采集数据流各自存储在指定的缓存区域后,本申请实施例提出了一种实时数据采集方法,包括:
步骤501:对目标数据源中包含的各个待采集数据流进行实时监测。
具体的,对存储在指定的缓存区域中,各个待采集数据流各自的预设数据流指标进行实时监测。
以上表5中,各个待采集数据流分别存储在kafka集群中的对应topic为例,则可选的,采用kafka的metrics监控技术,通过调用kafka的JMX接口服务,实时监测获取各个待采集数据流各自的数据流指标,可选的,参阅下表6所示,数据流指标包括:
表6
数据流指标 | 具体含义 |
LogEndOffset | 分区延迟数量 |
OneMinuteRate | topic在broker一分钟内平均每秒接入流量 |
io-wait-ratio | IO线程等待时间 |
io-ratio | IO线程执行时间 |
record-size-avg | 平均记录大小 |
步骤502:确定各个待采集数据流的缓存数据量到达预设的数据量阈值时,从目标数据源中获取各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件。
具体的,为避免数据堆积,实现采集资源的充分利用,还需对各个待采集数据流的缓存数据量进行实时监测,当待采集数据流的缓存数据量到达预设的数据量阈值时,基于关联的缓存区域,从目标数据源中获取各个待采集数据流,换言之,当缓存的数据量到达预设的数据量阈值时,即进行相应的数据采集,实现采集资源的充分利用。
例如,假设预设的数据量阈值为200,且基于上述步骤,对各个待采集数据流进行实时监测,确定当前时间,各个待采集数据流各自对应的缓存数据量参阅下表7所示:
表7
待采集数据流 | 缓存区域 | 缓存数据量 |
数据流1 | Topic1 | 52 |
数据流2 | Topic2 | 78 |
数据流3 | Topic3 | 86 |
那么,基于上述各个待采集数据流各自的缓存数据量,确定当前待采集数据流的缓存数据总量到达预设的数据量阈值,则确定此时应该执行相应的数据采集,可选的,也可设置相应的采集周期,定时对各个待采集数据流进行数据采集,从而避免缓存区域内产生数据堆积,基于上述方式,能够确保数据采集长期、稳定的进行,提高了数据采集的稳定性。
步骤503:基于当前时间对应的通道数量门限,从各个待采集数据流中,选取相应数量的待采集数据流作为目标数据流。
进一步的,根据当前时间能够承接数据采集任务的数据采集通道的数量门限,选取相应数量的待采集数据流,作为优先进行数据采集的目标数据流。
例如,假设当前时间对应的通道数量门限为1,则需要从上述各个待采集数据流中选取相应的1个作为目标数据流。
进一步的,参阅图6所示,在一种可选的实施例中,可以通过以下方式,从各个待采集数据流中选取相应数量的目标数据流,包括:
步骤5031:确定当前时间对应的通道数量门限。
具体的,由于本质上,数据采集通道表征为执行数据采集的逻辑通道,因此,可选的,根据数据采集时,采集设备的资源占用情况,确定当前时间对应的通道数量门限。
例如,假设采集设备的个数为1,则可根据该采集设备的资源占用情况,确定当前时间对应的通道数量门限为1。
在一种可选的实施例中,假设采集设备处于flink集群中,且采集设备的个数为n(n>1),则相应的通道数量门限可通过下式获得:
En=(∑slot/N parallelism)×70%;
其中,slot表征flink集群中的原子资源对象,N parallelism表征flink集群中的并行度。
通过上述方式,在对待采集数据流进行实时监测的同时,确定相应的通道数量门限,从而保证数据采集的稳定性。
步骤5032:基于当前时间监测的,各个数据流各自的数据流指标,确定各个待采集数据流各自对应的采集优先权值。
具体的,为确定各个待采集数据流在数据采集中的优先级,确保数据采集有序进行,需要根据当前时间各个数据流各自对应的数据流指标,取得相应的采集优先权值。
例如,假设当前时间监测到的各个数据流指标参阅下表8所示:
表8
则根据相应的数据流优先级评定规则,计算各个待采集数据流各自的采集优先权值,参阅下表9所示:
表9
待采集数据流 | 采集优先权值 |
数据流1 | 23 |
数据流2 | 55 |
数据流3 | 76 |
步骤5033:基于获得的各个采集优先权值由大到小的顺序,对各个待采集数据流进行排序。
基于上述步骤,能够获取各个待采集数据流各自的采集优先权值,即确定了各个待采集数据流在当前数据采集中的重要程度,那么,根据获得的各个采集优先权值由大到小的顺序,对各个待采集数据流进行排序,从而确定在当前时间对应的数据采集中,各个待采集数据流各自对应的采集优先顺序,保证数据采集的有序进行。
例如,根据上表8中,各个待采集数据流各自的采集优先权值,确定相应的排列顺序为:数据流3—数据流2—数据流1。
步骤5034:基于各个待采集数据流的排列顺序及通道数量门限,选取相应数量的待采集数据流作为目标数据流。
具体的,为了在资源有限的情况下,优先对更重要的待采集数据流进行相应的数据采集,则根据确定的通道数量门限及排列顺序,优先选取相应数目的目标数据流进行数据采集。
例如,由上述过程确定的,各个待采集数据流的排列顺序及通道数量门限,选取数据流3作为目标数据流进行优先的数据采集。
步骤504:基于获得的各个目标数据流,分别采用相应的数据采集通道,获得各个目标数据流当前各自关联的至少一个数据文件。
具体的,当确定出目标数据流后,先根据预设的数据流停止算法,停止剩余的各个待采集数据流,同时,根据预设的数据流启动算法,启动确定出的目标数据流,并采用相应的数据采集通道,对目标数据流进行数据采集。
例如,参阅图7所示,当确定数据流3为目标数据流后,首先根据预设的数据流停止算法,将缓存区域内的数据流1、数据流2停止,同时基于预设的数据流启动算法,启动数据流3相应的数据采集任务,并采用相应的数据采集通道,对数据流3进行数据采集。
进一步的,通过对各个待采集数据流的实时监测,对各个待采集数据流各自的采集优先权值进行不断更新,从而依次对各个待采集数据流进行相应采集,确保数据采集的完整性。
为了更清楚的说明本申请实施例提出的数据采集方法,参阅图8所示,给出了一种具体的场景架构图。由图可知,在00:00基于预设的数据源连接方式集合,与目标数据库创建相应的通信连接后,将相应的各个待采集数据流存储在指定的缓存区域(如,kafka集群)中,并对缓存区域中的各个待采集数据流进行实时监测,这样,当00:10监测到待采集数据流的缓存数据量到达预设的数据量阈值时,则根据实时监测到的数据流指标,计算各个待采集数据流各自的采集优先权值(如表8)所示,进一步的,根据00:10对应的通道数量门限1,确认对数据流3进行相应数据采集,并将数据流3写入预设的存储介质;同时,对各个待采集数据流是采集优先权值进行实时更新,则当00:15,根据数据流1、数据流2、数据流3各自最新的采集优先权值,选择数据流1、数据流2进行相应数据采集。
由上述过程可知,本申请实施例给出的实时数据采集方法,在00:00—00:10时间段内,将各个待采集数据流全部写入预设的存储介质中,确保了数据采集的时效性,保证了数据采集效率,同时,将各个待采集数据流并行处理,在有限的时间内依据各个数据流各自的监测指标,实现了针对待采集数据流的轮询数据采集,避免了传统方式下对资源的一味扩充,而是依靠上述方式,提升资源的利用率,达到了采集资源的有效利用。
参阅图9所示,为本申请实施例提供的一种实时数据采集装置,包括:监测模块901,获取模块902,调度模块903,采集模块904。
监测模块901,用于对目标数据源中包含的各个待采集数据流进行实时监测。
获取模块902,用于确定各个待采集数据流的缓存数据量到达预设的数据量阈值时,从目标数据源中获取各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件。
调度模块903,用于基于当前时间对应的通道数量门限,从各个待采集数据流中,选取相应数量的待采集数据流作为目标数据流。
采集模块904,用于基于获得的各个目标数据流,分别采用相应的数据采集通道,获得各个目标数据流当前各自关联的至少一个数据文件。
在一种可选的实施例中,在对目标数据源中包含的各个待采集数据流进行实时监测之前,监测模块901还用于:
基于预设的各个数据源类型,分别设置各个数据源类型各自对应的连接方式。
在获得目标数据源的数据源标识时,基于数据源标识,确定目标数据源的目标数据源类型。
基于目标数据源的数据源类型,从各个数据源类型各自对应的连接方式中,确定目标数据源关联的目标连接方式。
基于目标连接方式,与目标数据源创建相应的通信连接。
在一种可选的实施例中,在与目标数据源创建相应的通信连接之后,监测模块901还用于:
确定目标数据源中,实时更新的各个数据文件。
基于获得的实时更新的各个数据文件,确定相应的各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件。
基于与目标数据源相应的通信连接,将各个待采集数据流各自存储在指定的缓存区域中。
在一种可选的实施例中,在基于当前时间对应的通道数量门限,从各个待采集数据流中,选取相应数量的待采集数据流作为目标数据流时,调度模块903具体用于:
确定当前时间对应的通道数量门限。
基于当前时间监测的,各个数据流各自的数据流指标,确定各个待采集数据流各自对应的采集优先权值。
基于获得的各个采集优先权值由大到小的顺序,对各个待采集数据流进行排序。
基于各个待采集数据流的排列顺序及通道数量门限,选取相应数量的待采集数据流作为目标数据流。
在一种可选的实施例中,在确定当前时间对应的通道数量门限时,调度模块903具体用于:
基于当前时间对应的待采集数据流的数量,以及各个待采集数据流各自的数据流类型,确定当前时间对应的通道数量门限。
在一种可选的实施例中,在基于获得的各个目标数据流,分别采用相应的数据采集通道,获得各个目标数据流当前各自关联的至少一个数据文件时,采集模块904具体用于:
基于预设的数据流启动算法,启动获得的各个目标数据流,并分别采用各个目标数据流各自对应的数据采集通道,获得各个目标数据流当前各自关联的至少一个数据文件。
在一种可选的实施例中,在基于获得的各个目标数据流,分别采用相应的数据采集通道,获得各个目标数据流当前各自关联的至少一个数据文件后,采集模块904还用于:
对各个目标数据流各自的剩余缓存数据量进行实时监测,并基于监测到的剩余缓存数据量,对各个目标数据流各自的数据流指标进行实时更新。
与上述申请实施例基于同一发明构思,本申请实施例中还提供了一种电子设备,该电子设备可以用于实时数据采集。在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。在该实施例中,电子设备的结构可以如图10所示,包括存储器1001,通讯接口1003以及一个或多个处理器1002。
存储器1001,用于存储处理器1002执行的计算机程序。存储器1001可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1001可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1001也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1001是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1001可以是上述存储器的组合。
处理器1002,可以包括一个或多个中央处理单元(Central Processing Unit,CPU)或者为数字处理单元等。处理器1002,用于调用存储器1001中存储的计算机程序时实现上述安全监测方法。
通讯接口1003用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1001、通讯接口1003和处理器1002之间的具体连接介质。本申请实施例在图10中以存储器1001和处理器1002之间通过总线1004连接,总线1004在图10中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1004可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的任一种基于实时数据采集方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请实施例中,针对目标数据源中存储的数据文件,以相应数据流的方式进行传输、采集,基于数据流快速传输、快速响应的特点,实现了数据采集的高时效性;通过预先将各个待采集数据流写入预设的缓存区域中,当监测到缓存数据量到达预设的数据量阈值时,能够从缓存区域中快速获取相应数据流,从而提升了数据的传输效率及数据的采集效率;进一步的,本申请实施例中,对各个数据流进行实时监测,并根据当前时间监测的,各个数据流各自的指标,以及当前对应的数据传输通路的数目,选取出相应数目的各个数据流,这样,就可以利用有限数目的数据传输通路,承接更多数目的数据流,在有限时间段内对相应的各个数据流实现轮询采集,实现了采集资源的有效利用。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种实时数据采集方法,其特征在于,包括:
对目标数据源中包含的各个待采集数据流进行实时监测;
确定所述各个待采集数据流的缓存数据量到达预设的数据量阈值时,从所述目标数据源中获取所述各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件;
基于当前时间对应的通道数量门限,从所述各个待采集数据流中,选取相应数量的待采集数据流作为目标数据流;
基于获得的各个目标数据流,分别采用相应的数据采集通道,获得所述各个目标数据流当前各自关联的至少一个数据文件。
2.如权利要求1所述的方法,其特征在于,所述对目标数据源中包含的各个待采集数据流进行实时监测之前,还包括:
基于预设的各个数据源类型,分别设置所述各个数据源类型各自对应的连接方式;
在获得所述目标数据源的数据源标识时,基于所述数据源标识,确定所述目标数据源的目标数据源类型;
基于所述目标数据源的数据源类型,从所述各个数据源类型各自对应的连接方式中,确定所述目标数据源关联的目标连接方式;
基于所述目标连接方式,与所述目标数据源创建相应的通信连接。
3.如权利要求2所述的方法,其特征在于,所述与所述目标数据源创建相应的通信连接之后,还包括:
确定所述目标数据源中,实时更新的各个数据文件;
基于所述实时更新的各个数据文件,确定相应的各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件;
基于与所述目标数据源相应的通信连接,将所述各个待采集数据流各自存储在指定的缓存区域中。
4.如权利要求1、2或3所述的方法,其特征在于,所述基于当前时间对应的通道数量门限,从所述各个待采集数据流中,选取相应数量的待采集数据流作为目标数据流,包括:
确定当前时间对应的通道数量门限;
基于当前时间监测的,各个数据流各自的数据流指标,确定各个待采集数据流各自对应的采集优先权值;
基于获得的各个采集优先权值由大到小的顺序,对所述各个待采集数据流进行排序;
基于所述各个待采集数据流的排列顺序及所述通道数量门限,选取相应数量的待采集数据流作为目标数据流。
5.如权利要求4所述的方法,其特征在于,所述确定当前时间对应的通道数量门限,包括:
基于当前时间对应的待采集数据流的数量,以及当前时间对应的采集资源数量,确定当前时间对应的通道数量门限。
6.如权利要求1、2或3所述的方法,其特征在于,所述基于获得的各个目标数据流,分别采用相应的数据采集通道,获得所述各个目标数据流当前各自关联的至少一个数据文件,包括:
基于预设的数据流启动算法,启动获得的各个目标数据流,并分别采用各个目标数据流各自对应的数据采集通道,获得所述各个目标数据流当前各自关联的至少一个数据文件。
7.如权利要求1、2或3所述的方法,其特征在于,所述基于获得的各个目标数据流,分别采用相应的数据采集通道,获得所述各个目标数据流当前各自关联的至少一个数据文件后,还包括:
对各个目标数据流各自的剩余缓存数据量进行实时监测,并基于监测到的剩余缓存数据量,对各个目标数据流各自的数据流指标进行实时更新。
8.一种实时数据采集装置,其特征在于,包括:
监测模块,用于对目标数据源中包含的各个待采集数据流进行实时监测;
获取模块,用于确定所述各个待采集数据流的缓存数据量到达预设的数据量阈值时,从所述目标数据源中获取所述各个待采集数据流,其中,每个待采集数据流关联实时更新的至少一个数据文件;
调度模块,用于基于当前时间对应的通道数量门限,从所述各个待采集数据流中,选取相应数量的待采集数据流作为目标数据流;
采集模块,用于基于获得的各个目标数据流,分别采用相应的数据采集通道,获得所述各个目标数据流当前各自关联的至少一个数据文件。
9.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的实时数据采集方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111286562.3A CN114036160A (zh) | 2021-11-02 | 2021-11-02 | 一种实时数据采集方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111286562.3A CN114036160A (zh) | 2021-11-02 | 2021-11-02 | 一种实时数据采集方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036160A true CN114036160A (zh) | 2022-02-11 |
Family
ID=80135976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111286562.3A Pending CN114036160A (zh) | 2021-11-02 | 2021-11-02 | 一种实时数据采集方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036160A (zh) |
-
2021
- 2021-11-02 CN CN202111286562.3A patent/CN114036160A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522636B (zh) | 应用容器的调整方法、调整***、计算机可读介质及终端设备 | |
US10394452B2 (en) | Selecting pages implementing leaf nodes and internal nodes of a data set index for reuse | |
WO2020253111A1 (zh) | 区块链节点的自动扩容方法、装置、运维终端及存储介质 | |
CN109981702B (zh) | 一种文件存储方法及*** | |
CN112506870B (zh) | 数据仓库增量更新方法、装置及计算机设备 | |
TW201339833A (zh) | 監控資料緩存方法及系統 | |
CN112367384B (zh) | 基于Kafka集群的动态限速方法、装置以及计算机设备 | |
US10241828B2 (en) | Method and system for scheduling transactions in a data system | |
CN111966943A (zh) | 流式数据分发方法和*** | |
CN111770002A (zh) | 测试数据转发控制方法、装置、可读存储介质和电子设备 | |
CN111083008A (zh) | 一种基于nginx的流量采集分析方法 | |
CN109842621A (zh) | 一种减少token存储数量的方法及终端 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN112328592A (zh) | 数据存储方法、电子设备及计算机可读存储介质 | |
CN111008071A (zh) | 任务调度***、方法和服务器 | |
CN107329832B (zh) | 一种数据接收方法及装置 | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
CN113760176A (zh) | 数据存储方法和装置 | |
CN113297267A (zh) | 数据缓存和任务处理方法、装置、设备以及存储介质 | |
CN113448747B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN108536759B (zh) | 一种样本回放数据存取方法及装置 | |
CN114036160A (zh) | 一种实时数据采集方法、装置、电子设备及存储介质 | |
JPWO2014162397A1 (ja) | 計算機システム、データ管理方法、及び計算機 | |
CN107894942B (zh) | 数据表访问量的监控方法和装置 | |
CN112579639A (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 |