CN110427399A - 实时数据采集方法、系统、装置及存储介质 - Google Patents
实时数据采集方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN110427399A CN110427399A CN201910526757.7A CN201910526757A CN110427399A CN 110427399 A CN110427399 A CN 110427399A CN 201910526757 A CN201910526757 A CN 201910526757A CN 110427399 A CN110427399 A CN 110427399A
- Authority
- CN
- China
- Prior art keywords
- chronomere
- acquisition
- data
- real
- time
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013461 design Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 6
- 230000004048 modification Effects 0.000 abstract description 2
- 238000012986 modification Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 10
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 8
- 238000013480 data collection Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004321 preservation Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002045 lasting effect Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,提供一种实时数据采集方法、系统、装置及存储介质。其中,方法包括:根据系统时间,动态获取要采集的时间单位;读取初始sql模板,将其与本次动态获取的时间单位进行拼接;通过拼接后模板采集数据库中的数据,其中,所述数据库中的数据存储在以包含时间单位命名的表中,且所述表中存储该时间单位段内产生的数据;保存数据采集结果,并保存本次采集的时间单位。采用本发明,能够解决关系型数据库大数据量的查询效率问题,解决现有技术只能对固定表名进行数据采集,不能根据时间单位动态修改表名,导致数据无法正常采集的问题。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种实时数据采集方法、系统、装置及存储介质。
背景技术
目前在大数据领域,业务对数据的实时性要求越来越高,离线大数据平台越来越不能满足业务方对实时性的要求,这就要求更多的业务数据在实时大数据平台中处理。实时大数据平台中分为三大模块:数据采集、数据清洗和数据存储。
其中,数据采集需要应对各种现实情况,要求要能从各种数据源中实时采集到数据。现有的实时数据采集系统只能采集关系型数据库的固定表的数据。一般情况下,相同的源数据会存到同一张表中,这种数据非常简单,也便于采集,以轮询的方式每间隔一段时间查询一次数据库,按时间或id过滤,然后把查询到的数据写入消息中间件中即可(例如kafka,Apache Kafka是一个开源流处理平台)。但是,关系型数据库每张表能存的数据量是有限制的,如果数据量太大就会对读写效率产生影响,几百万数据量的情况下,一个简单的查询也会非常慢,更何况实际操作中可能还会有关联查询等复杂操作。
如果将每天产生的数据存到以当天日期(时间单位)为表名的表中,实时数据采集系统就需要每天自动切换表名才能满足需求,但是,目前现有的技术显然做不到这一点,针对目前的技术盲点,本申请提供一种可以对以时间单位命名表名的表中的数据(该时间单位内存储的数据)进行实时采集的方案。
发明内容
本发明的目的在于提供一种实时数据采集方法、系统、装置及存储介质,以解决关系型数据库大数据量的查询效率问题,解决现有技术只能对固定表名进行数据采集,不能根据时间单位自动修改表名,导致数据无法正常采集的问题。
上述目的是通过以下技术方案实现的:
根据本发明一个方面,本发明提供的一种实时数据采集方法,应用于实时数据采集系统,该方法包括:
步骤S1,根据系统时间,动态获取要采集的时间单位;
步骤S2,读取初始sql模板,将其与本次动态获取的时间单位进行拼接,得到拼接后模板;
步骤S3,通过拼接后模板采集数据库中的数据,其中,所述数据库中的数据存储在以包含时间单位命名的表中,且所述表中存储该时间单位段内产生的数据;
步骤S4,保存数据采集结果,并保存本次采集的时间单位。
优选地,在步骤S4之后,还包括:步骤S5,再次采集时,根据系统时间,动态获取当前要采集的时间单位,并读取上次保存的时间单位,然后将两次的时间单位进行比对,判断两次的时间单位是否一致;其中,如果两次的时间单位一致,读取初始sql模板,将其与上次保存的时间单位进行拼接,接着进行步骤S3至步骤S4;如果两次的时间单位不一致,则进行步骤S2至步骤S4。
优选地,步骤S2之前,所述方法还包括根据业务情况自定义sql模板的拼接方式,并将自定义的sql模板传入到模板传入接口的步骤,其中,所述拼接方式为左拼接模式、右拼接模式、以及通过参数传入模式中的一种。
优选地,所述模板传入接口是通过所述实时数据采集系统采用可插拔式设计预先留出的用于传入自定义sql模板的接口。
优选地,步骤S2之前,所述方法还包括查看是否为自定义sql模板的步骤,如果否,则用固定模板作为初始sql模板进行拼接;如果是,则采用自定义的sql模板进行拼接。
优选地,步骤S3之前,所述方法还包括:检查实时数据采集系统与数据库的连接情况步骤,如果数据库连接驱动已有数据库连接,则用该连接;如果没有,需要获取数据库连接。
优选地,步骤S3中,在通过拼接后模板采集数据库中的数据步骤之后,还包括:重新连接再次查询步骤,如果查询失败,需要重新获取连接再次查询,并抛出异常;如果查询成功,并且查出数据条数不为零,则把查出的数据返回到数据列表,进行步骤S4。
根据本发明另一个方面,本发明提供的一种实时数据采集系统,包括:
获取单元,用于根据系统时间动态获取要采集的时间单位;
拼接单元,用于读取初始sql模板,并将其与所述获取单元获取的时间单位或保存单元中上次保存的时间单位进行拼接;
采集单元,用于通过拼接后模板来采集数据库中的数据,其中,所述数据库中的数据存储在以包含时间单位命名的表中,且所述表中存储该时间单位段内产生的数据;
保存单元,用于保存所述采集单元中的数据采集结果、以及所述获取单元中动态获取的时间单位;
对比单元,用于对比本次采集的时间单位与所述保存单元中保存的上次采集的时间单位。
优选地,所述系统还包括:自定义sql模板传入单元,用于根据业务情况自定义sql模板的拼接方式,并将自定义的sql模板传入到模板传入接口中。所述模板传入接口是通过所述实时数据采集系统采用可插拔式设计预先留出的用于传入模板sql的接口。
根据本发明的再一个方面,本发明提供的一种电子装置,该电子装置包括:存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述实时数据采集方法的步骤。
根据本发明的还一个方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括计算机程序,所述计算机程序被处理器执行时,实现上述实时数据采集方法的步骤。
有益效果:本发明实时数据采集方法、系统、装置及存储介质,将业务系统中产生的数据按照时间单位(例如以当天日期)为单位存储在以该时间单位命名或者以包含该时间单位命名的表中,提高了关系型数据库大数据量的查询效率。通过采用模板与时间单位拼接再进行sql数据采集,解决了现有技术中数据采集系统运行过程中不能动态修改表名、需要人为干预的问题,克服了现有技术中只能对数据库中固定表名进行数据采集的问题,使得数据的实时性有了根本保证,从而确保了实时大数据平台能平稳持续的运行。另外,本发明中实时数据采集方法及系统是不限时间不限数据量的,不管有多少条数据都要采集,而且也会自动的根据现实时间,例如当天日期,来采集每天的数据。
附图说明
通过参考以下结合附图的说明,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。附图中:
图1是本发明实施例的实时数据采集方法的流程示意图;
图2是本发明包含步骤S5的实施例的实时数据采集方法的流程示意图;
图3是本发明实施例的实时数据采集系统的结构示意图;
图4是本发明实施例的实时大数据平台运行流程的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述:
图1示意性地示出了本发明实施例实时数据采集方法的流程图,如图1所示,该实施例提供的一种实时数据采集方法,应用于实时数据采集系统,该方法包括:
步骤S1,根据系统时间,动态获取要采集的时间单位。本发明实时数据采集系统在每次执行时都要获取当前系统时间,从系统时间得到并记录时间单位。本发明是通过自动获取系统现实时间来采集数据,而不是指定时间或日期,具有数据采集的实时性,所以时间单位是实时获取(所以为动态)。所述时间单位可以是日期,例如天,周、月、年等;也可以是时间,例如小时等所有有周期性的时间。可以优选以天为时间单位。例如当天的日期。
步骤S2,读取初始sql(结构化查询语言)模板,将其与本次动态获取的时间单位进行拼接,形成拼接后模板(sql拼接模板)。具体地,实时数据采集系统在运行时,是通过配置文件将模板sql参数传入。模板中可以包含有多种变量,通过变量替换等方式进行拼接,即可以将时间单位作为变量拼接到模板sql上,形成拼接后模板即sql拼接模板。
步骤S3,通过拼接后模板(sql拼接模板)采集数据库中的数据,其中,所述数据库中的数据存储在以包含时间单位命名的表中,且所述表中存储该时间单位段内产生的数据。进一步地,所述数据库为关系型数据库,运用结构化查询语言进行采集查询。
步骤S4,保存数据采集结果;并保存本次采集的时间单位,以便执行下次采集。其中,数据采集结果存至消息中间件中。
本发明该实施例中业务系统中产生的数据按照时间单位(例如以当天日期)为单位存储在以该时间单位命名或者以包含该时间单位命名的表中,提高了关系型数据库大数据量的查询效率。通过采用初始sql模板与时间单位拼接再进行数据采集,解决了现有技术中数据采集系统运行过程中不能动态修改表名、需要人为干预的问题,克服了现有技术中只能对数据库中固定表名进行数据采集的问题,使得数据的实时性有了根本保证,从而确保了实时大数据平台能平稳持续的运行。另外,本申请中实时数据采集方法及系统是不限时间不限数据量的,不管有多少条数据都要采集,而且也会自动的根据现实时间,例如当天日期,来采集每天的数据。
在一个可选实施例中,如图2所示,步骤S4之后还包括步骤S5,当执行下次采集时,实时数据采集系统根据系统时间,动态获取当前(本次)要采集的时间单位,并读取上次保存的时间单位,然后将两次的时间单位进行比对,判断两次的时间单位是否一致。如果两次的时间单位一致,说明此次和上次执行的时间单位为相同,sql不用重新拼接,即读取初始sql模板,将其与上次保存的时间单位进行拼接,接着执行步骤S3及其他步骤。如果两次的时间单位不一致,说明此次和上次执行的时间单位不同,需要重新对初始sql模板进行拼接,即执行步骤S2,得到新的sql拼接模板;然后执行步骤S3,即通过新的sql拼接模板从数据库的表中进行数据采集;最后执行步骤S4,即将采集的数据结果保存,并且将此次采集的时间单位进行保存,以便执行再下次采集。
该实施例中,实时数据采集系统每次执行时,都要获取当前的时间单位,例如,获取当前系统时间,或者从系统时间得到当天的日期,然后通过与保存的上次采集的时间单位进行比对,比对后再进行拼接,通过这种方式可以无缝的动态获取并切换查询的模板名(即拼接后模板名),达到对以时间单位为表名的数据的实时采集,例如,实现以当天日期为表名的数据的实时采集功能。上述的初始sql模板是通过配置文件提供,系统运行时程序会读取配置文件,得到模板,然后把模板和当前日期拼接,形成拼接后的模板,然后执行拼接后的sql模板,执行完后把模板保存,具体保存到磁盘目录,下次执行时再从磁盘读取模板进行拼接步骤。
在一个可选实施例中,步骤S2之前,所述方法还包括根据业务情况自定义sql模板的拼接方式,并将自定义的sql模板传入到模板传入接口的步骤,其中,所述拼接方式为左拼接模式、右拼接模式、以及通过参数传入模式中的一种。该实施例中的实时数据采集系统做了很好的封装,留出了传入模板sql的接口,做到了可插拔式设计,即用户可以具体根据业务情况决定模板的拼接方式,例如:若表名完全是日期形式(某年-某月-某日),可以采用右拼接模式(demo_某年-某月-某日),也可以是左拼接模式(某年-某月-某日_demo),也可以是通过参数传入的其他模式。该实施例中通过实时数据采集系统中代码采用可插拔式设计,从而使得如果以后有其他业务需求,例如需要使用自定义sql模板进行拼接时,就不需要更改现有代码,只需要通过事先预留的接口传入自定义的模板即可,也就是说在接口处增加处理新数据源的模块即可,该实施例中模板传入接口的设置,满足了多种业务需求,其可扩展性非常强;避免了针对不同业务还需更改代码的问题;可以采用多种模板拼接方式,如demo_某年-某月-某日或某年-某月-某日_demo等,使得用户可以按照这几种提供初始sql模板,从而提供了更灵活的选择。而现有技术中只能提供某一种选择,如:demo_某年-某月-某日。
本发明中,业务系统产生的数据是按照时间单位存储在以该时间单位命名的表中。由于大数据系统的日志量非常大,都存储到一个表中会导致数据查询非常慢,更无法完成关联查询,而本发明采取以时间单位为单位的数据存储方式,可以大大提高关系型数据库大数据的查询效率。为了方便后续动态获取表名,表以时间单位采取规律化命名,即采用规定的命名模板命名,所述命名模板包括:业务模板名+时间单位、时间单位+业务模板名、时间单位等模式。其中,时间单位可以是日期,例如天,周、月、年等;也可以是时间,例如小时、所有有周期性的时间等。优选地时间单位为天,即将当天的数据存储到以当天日期命名或者表名中带有当天日期的表中,表命名为:业务模板名+当天日期、或者当天日期+业务模板名、又或者当天日期,这样数据库中的每个表只存储当天的数据,每个表中的数据量就会下降很多乃至几个数量级,从而提高了每次查询效率。
本发明中,为了方便快速准确地动态获取表名,完成数据采集,模板的拼接方式可以与表名的命名方式一致。例如,表名命名方式为:业务模块名+当天日期;初始sql模板为select*from demo,当天日期为“某年-某月-某日”,拼接后形成的sql拼接模板为select*from demo_某年-某月-某日,然后执行该sql,方能完成从以当天日期命名的表中实时数据采集的功能。其中,“select*from demo_某年-某月-某日”即表示从demo_某年-某月-某日表中查询数据,这个表中的数据就是某年-某月-某日的数据,因为该天的数据是存到以某年-某月-某日或带有某年-某月-某日为表名的表中。
在一个可选实施例中,如图4所示,业务系统当天产生的数据存到一个表中,且该表以当天日期来命名,各表存放到关系型数据库中,实时数据采集系统将表中的数据采集组件(单元)将数据实时的采集并存放到消息中间件(如kafka等),再经过数据清洗,将数据存储到实时大数据平台中。本发明中仅描述数据采集步骤,对数据清洗和数据存储不做太多描述。业务系统中表以天为单位生成,采集时也是以天为单位采集,具体包括以下步骤:
步骤一,查看数据库连接驱动是否已持有数据库连接,如有,则用当前连接;如没有,则获取数据库连接;然后根据当前实时数据采集系统的时间动态获取得到当天日期。因为是实时大数据平台,所以必须得保证数据采集的实时性,必须得实时采集当天表中的数据,数据也是存到当天的表中,所以必须得在代码中获取到当天日期。该实施例中存放当天数据的表的命名方式为:业务模块名+当天日期。
步骤二,查看是否是自定义sql模板,如果为否,则用固定模板;如为是,则用在配置文件中自定义的sql模板进行拼接sql。实时数据采集系统运行时,通过配置文件把初始sql模板传入(例如:select*from demo),然后将其与当天日期进行sql模板拼接。
步骤三,获取自定义的每次取出的数据条数,然后建立查询,执行查询。且是执行拼接后sql查询,完成步骤一中以业务模块名+当天日期命名的表中的数据采集。
步骤四,在查询时,如果查询失败,则需要重新获取连接再次查询,并抛出异常;如果查询成功,并且查出数据条数不为零,则把查出的数据返回到数据列表,以保存采集结果和当天日期。
步骤五,关闭数据库连接。
步骤六,启动消息中间件客户端,获得连接。
步骤七,与消息中间件客户端连接成功后,把数据列表写到消息中间件进行保存。其中,从数据库查询数据和写入到消息中间件的全过程都是有事物的,保证不会有数据丢失。
步骤八,写入消息中间件成功后,然后清除数据列表中的数据,准备执行下个流程。
该实施例中,通过检查与数据库连接情况、查看自定义sql模板等各步骤之间有效衔接,提高了数据采集的效率,且运行平稳,整个运行过程完全不需要认为干预,进一步地确保了实时大数据平台能平稳持续的运行。
优选地,该实时数据采集系统每隔一段时间执行一次数据采集(具体时间可以根据业务需求自己设置),而且,每执行sql查询完一次之后,数据采集系统会保存模板(初始sql模板和/或拼接模板),和当前日期(最后查询日期),再次执行时会读取模板和上次保存日期,进行比对。如果两个日期一样,则这两次执行的时间为同一天(例如:同为A年-B月-12日),那么会把上次保存的日期拼接到初始模板sql(例如:select*from demo_A年-B月-12日);如果本次执行时的日期比上次保存的日期大(例如:A年-B月-13日>A年-B月-12日),则两次执行时间不是同一天,则把此次执行动态获取到的当天日期拼接到初始模板sql上形成新的sql拼接模板(例如:select*from demo_A年-B月-13日),然后执行新拼接完的sql,进行采集步骤。另外,可以对每次拼接后的模板也进行保存,如果前后两次模板完全相同且时间单位也相同,就可以直接采用上次保存的拼接后的模板进行数据采集,sql就不用重新拼接。
以上实施例中,将业务系统中产生的数据按照以当天日期为单位存储在以该时间单位命名的表中,提高了关系型数据库大数据量的查询效率;通过采用sql模板与当天日期拼接后进行sql查询采集的方式解决了数据采集系统运行过程中动态更改表名的问题,克服了现有技术中只能对数据库中固定的表名进行数据采集的问题,使实时数据采集真正可以摆脱人为干预,完全自动7*24小时运行,大大节省了人力;并且让数据的实时性有了根本的保证,确保了实时大数据平台能平稳持续的运行。另外,在每次采集后均需保存当前采集日期,下次采集前先与其进行对比的方式可以无缝的动态获取并切换查询的表名,达到对以当天日期为表名的数据的实时采集。且本申请中数据采集不限时间不限数据量,并且可以自动的根据现实时间采集每天的数据。
以上实施例中实时数据采集系统代码是指采用java开发的代码,所有的逻辑都是在java代码中执行,包括但不限于:动态获取当天日期、做日期对比、读取初始sql模板、动态拼接sql、执行拼接后的sql拼接模板、把执行sql返回的数据集写到消息中间文件kafka、保存执行日期、保存sql拼接模板等。
图3示意性地示出了本发明实施例的实时数据采集系统的结构。如图3所示,所述实时数据采集系统包括:获取单元10,拼接单元20,采集单元30,保存单元40,以及对比单元50。
其中,获取单元10,用于根据系统时间动态获取要采集的时间单位,所述时间单位可以是日期,例如天,周、月、年等;也可以是时间,例如小时、所有有周期性的时间等。可以优选以天为时间单位。
拼接单元20,用于读取初始sql模板,并将其,与获取单元10获取的时间单位或保存单元40中上次保存的时间单位进行拼接;其中,如果,两次采集的时间单位相同,则与保存单元40中上次保存的时间单位进行拼接;否则,与获取单元10本次获取的时间单位进行拼接。
采集单元30,用于通过拼接单元20拼接后模板来采集数据库中的数据,其中,数据库中的数据存储在以包含时间单位命名的表中,且表中存储该时间单位段内产生的数据。
保存单元40,用于保存采集单元30中的数据采集结果、拼接单元20中的各模板、以及获取单元10中动态获取的时间单位。
对比单元50,用于对比本次采集的时间单位与保存单元40中保存的上次采集的时间单位,判断两次采集的时间单位是否一致,以便于拼接单元20进行拼接。
优选地,该实时数据采集系统还可以包括:增加新数据源单元,用于满足用户的不同业务需求,例如根据用于根据业务情况自定义sql模板的拼接方式等。该实施例中代码采用可插拔式设计,如果以后有其他业务需求不需要更改现有代码,只需要在模板传入接口处增加个处理新数据源模块即可,其可扩展性非常强,提高了模板选择的灵活性。
优选地,该实时数据采集系统中还可以包括:检查单元,用于查看是否为自定义sql模板,查看实时数据采集系统与数据库的连接情况,以及查看数据采集是否成功等。其中,如果不是自定义sql模板,则实时数据采集系统用固定模板;如果是,实时数据采集系统采用在配置文件中自定义的sql模板进行拼接。如果数据库连接驱动已有数据库连接,则用该连接;如果没有,需要获取数据库连接。如果查询失败,需要重新获取连接再次查询,并抛出异常;如果查询成功,并且查出数据条数不为零,则把查出的数据返回到数据列表。
本发明提供的电子装置,可以是电视机、智能手机、平板电脑、计算机等终端设备。所述电子装置包括:存储器、处理器以及存储在存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明各实施例中的实时数据采集方法的步骤。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在电子装置中的执行过程。例如,实时数据采集程序可以被分割成实时数据采集系统中的获取单元10,拼接单元20,采集单元30,保存单元40,以及对比单元50。其功能作用在上文中有详细描述,在此不一一赘述。
处理器执行计算机程序时实现本发明实时数据采集方法的步骤与上文类似,此处不再详述,示例性地,例如执行如下步骤:
根据系统时间,动态获取要采集的时间单位;读取初始sql模板,将其与本次动态获取的时间单位进行拼接;通过拼接后模板采集数据库中的数据;保存数据采集结果,并保存本次采集的时间单位。再次采集,根据系统时间,动态获取当前要采集的时间单位,并读取上次保存的时间单位,然后将两次的时间单位进行比对;其中,如果两次的时间单位一致,读取初始sql模板,将其与上次保存的时间单位进行拼接,接着进行采集,将采集结果、模板、以及时间单位进行保存;如果两次的时间单位不一致,则按照上次的拼接步骤进行拼接,采用重新拼接模板进行数据采集,然后将将采集结果、模板、以及时间单位进行保存,以便再下次采集时进行比对。
其中,所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programma实时数据采集le Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以是电子装置的内部存储单元,例如电子装置的硬盘或内存。存储器可以是电子装置的外部存储设备,例如电子装置上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器还可以既包括电子装置的内部存储单元也包括外部存储设备。存储器用于存储计算机程序以及电子设备所需的其他程序和数据。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
本发明提供的计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现本发明各实施例的实时数据采集方法的步骤和实时数据采集系统各单元的功能,为避免重复,这里不再赘述。
一个可选实施例中,计算机可读存储介质可以是任何包含或存储程序或指令的有形介质,其中的程序可以被执行,通过存储的程序指令相关的硬件实现相应的功能。例如,计算机可读存储介质可以是计算机磁盘、硬盘、随机存取存储器、只读存储器等。本发明并不限于此,可以是以非暂时性方式存储指令或软件以及任何相关数据文件或数据结构并且可提供给处理器以使处理器执行其中的程序或指令的任何装置。所述计算机可读存储介质中包括实时数据采集程序,所述实时数据采集程序被处理器执行时,实现上述的实时数据采集方法,为避免重复,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种实时数据采集方法,应用于实时数据采集系统,其特征在于,该方法包括:
步骤S1,根据系统时间,动态获取要采集的时间单位;
步骤S2,读取初始sql模板,将其与本次动态获取的时间单位进行拼接,得到拼接后模板;
步骤S3,通过拼接后模板采集数据库中的数据,其中,所述数据库中的数据存储在以包含时间单位命名的表中,且所述表中存储该时间单位段内产生的数据;
步骤S4,保存数据采集结果,并保存本次采集的时间单位。
2.根据权利要求1所述的实时数据采集方法,其特征在于,在步骤S4之后,还包括:
步骤S5,再次采集时,根据系统时间,动态获取当前要采集的时间单位,并读取上次保存的时间单位,然后将两次的时间单位进行比对;其中,
如果两次的时间单位一致,读取初始sql模板,将其与上次保存的时间单位进行拼接,接着进行步骤S3和步骤S4;
如果两次的时间单位不一致,则进行步骤S2至步骤S4。
3.根据权利要求2所述的实时数据采集方法,其特征在于,步骤S2之前,所述方法还包括根据业务情况自定义sql模板的拼接方式,并将自定义的sql模板传入到模板传入接口的步骤,其中,所述拼接方式为左拼接模式、右拼接模式、以及通过参数传入模式中的一种。
4.根据权利要求3所述的实时数据采集方法,其特征在于,所述模板传入接口是通过所述实时数据采集系统采用可插拔式设计预先留出的用于传入自定义sql模板的接口。
5.根据权利要求1至2任一项所述的实时数据采集方法,其特征在于,步骤S2之前,所述方法还包括查看是否为自定义sql模板的步骤,如果否,则用固定模板作为初始sql模板进行拼接;如果是,则采用自定义的sql模板进行拼接。
6.根据权利要求1所述的实时数据采集方法,其特征在于,步骤S3之前,所述方法还包括:检查实时数据采集系统与数据库的连接情况步骤,如果数据库连接驱动已有数据库连接,则用该连接;如果没有,获取数据库连接。
7.根据权利要求1所述的实时数据采集方法,其特征在于,步骤S3中,在通过拼接后模板采集数据库中的数据步骤之后,还包括:重新连接再次查询步骤,如果查询失败,重新获取连接再次查询,并抛出异常;如果查询成功,并且查出数据条数不为零,则将查出的数据返回到数据列表,进行步骤S4。
8.一种实时数据采集系统,其特征在于,该系统包括:
获取单元,用于根据系统时间动态获取要采集的时间单位;
拼接单元,用于读取初始sql模板,并将其与所述获取单元获取的时间单位或保存单元中上次保存的时间单位进行拼接;
采集单元,用于通过拼接后模板来采集数据库中的数据,其中,所述数据库中的数据存储在以包含时间单位命名的表中,且所述表中存储该时间单位段内产生的数据;
保存单元,用于保存所述采集单元中的数据采集结果、以及所述获取单元中动态获取的时间单位;
对比单元,用于对比本次采集的时间单位与所述保存单元中保存的上次采集的时间单位。
9.一种电子装置,所述电子装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的实时数据采集方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的实时数据采集方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910526757.7A CN110427399A (zh) | 2019-06-18 | 2019-06-18 | 实时数据采集方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910526757.7A CN110427399A (zh) | 2019-06-18 | 2019-06-18 | 实时数据采集方法、系统、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110427399A true CN110427399A (zh) | 2019-11-08 |
Family
ID=68408676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910526757.7A Pending CN110427399A (zh) | 2019-06-18 | 2019-06-18 | 实时数据采集方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427399A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221820A (zh) * | 2019-12-30 | 2020-06-02 | 武汉益模科技股份有限公司 | 一种设备联网数据的存储及实时读取的方法 |
CN111694720A (zh) * | 2020-06-15 | 2020-09-22 | 山东浪潮云服务信息科技有限公司 | 一种自动监控数据采集进度的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126564A (zh) * | 2016-06-17 | 2016-11-16 | 浙江万朋教育科技股份有限公司 | 一种基于动态模板语言渲染的方法 |
CN108959631A (zh) * | 2018-07-24 | 2018-12-07 | 北京百度网讯科技有限公司 | 用于查询信息的方法和装置 |
CN109325041A (zh) * | 2018-08-14 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 业务数据处理方法、装置、计算机设备及存储介质 |
CN109376160A (zh) * | 2018-08-21 | 2019-02-22 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
-
2019
- 2019-06-18 CN CN201910526757.7A patent/CN110427399A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126564A (zh) * | 2016-06-17 | 2016-11-16 | 浙江万朋教育科技股份有限公司 | 一种基于动态模板语言渲染的方法 |
CN108959631A (zh) * | 2018-07-24 | 2018-12-07 | 北京百度网讯科技有限公司 | 用于查询信息的方法和装置 |
CN109325041A (zh) * | 2018-08-14 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 业务数据处理方法、装置、计算机设备及存储介质 |
CN109376160A (zh) * | 2018-08-21 | 2019-02-22 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
LACKYHUANG: "mysql 从动态表名中查询数据", pages 1 - 2, Retrieved from the Internet <URL:https://zhidao.baidu.com/question/91152933.html> * |
王晓明、陈媛: "基于Python的数据采集存储软件", 中国无线电, pages 48 - 49 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221820A (zh) * | 2019-12-30 | 2020-06-02 | 武汉益模科技股份有限公司 | 一种设备联网数据的存储及实时读取的方法 |
CN111694720A (zh) * | 2020-06-15 | 2020-09-22 | 山东浪潮云服务信息科技有限公司 | 一种自动监控数据采集进度的方法 |
CN111694720B (zh) * | 2020-06-15 | 2023-11-24 | 山东浪潮云服务信息科技有限公司 | 一种自动监控数据采集进度的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319547A (zh) | 测试用例生成方法、装置和系统 | |
CN110297840A (zh) | 基于规则引擎的数据处理方法、装置、设备及存储介质 | |
CN109597842A (zh) | 数据实时计算方法、装置、设备及计算机可读存储介质 | |
CN112287015B (zh) | 画像生成系统及其方法、电子设备及存储介质 | |
CN107103064B (zh) | 数据统计方法及装置 | |
CN103927314B (zh) | 一种数据批量处理的方法和装置 | |
CN108509326A (zh) | 一种基于nginx日志的服务状态统计方法及系统 | |
CN107748797A (zh) | 金融行情数据的处理方法 | |
CN109670081A (zh) | 业务请求处理的方法及装置 | |
CN110471754A (zh) | 作业调度中的数据展示方法、装置、设备及存储介质 | |
CN110427399A (zh) | 实时数据采集方法、系统、装置及存储介质 | |
CN108345658A (zh) | 算法计算轨迹的分解处理方法、服务器及存储介质 | |
CN108460068A (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN115016905A (zh) | 一种调用拓扑图生成方法及装置 | |
CN112671878B (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN103645968B (zh) | 一种浏览器状态复原方法和装置 | |
CN111723004B (zh) | 敏捷软件开发的度量方法,度量数据输出方法以及装置 | |
CN111343269B (zh) | 一种数据下载方法、装置、计算机设备和存储介质 | |
CN110019131A (zh) | 一种复盘业务的方法和装置 | |
CN109828865A (zh) | 数据恢复方法、装置及电子设备 | |
CN110032574A (zh) | Sql语句的处理方法及装置 | |
CN110222286A (zh) | 信息获取方法、装置、终端和计算机可读存储介质 | |
CN115455106A (zh) | 配用电运维的配电监测方法、服务平台、设备及存储介质 | |
CN113179294B (zh) | 一种基于智能合约的schema统一存取方法 | |
CN109271431A (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 |