CN108121728B - 从数据库抽取数据的方法和装置 - Google Patents
从数据库抽取数据的方法和装置 Download PDFInfo
- Publication number
- CN108121728B CN108121728B CN201611076450.4A CN201611076450A CN108121728B CN 108121728 B CN108121728 B CN 108121728B CN 201611076450 A CN201611076450 A CN 201611076450A CN 108121728 B CN108121728 B CN 108121728B
- Authority
- CN
- China
- Prior art keywords
- data
- period
- current
- value
- extraction
- 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.)
- Active
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种灵活性好,资源利用率高的从数据库抽取数据的方法和装置。本发明的从数据库抽取数据的方法,包括:按照预设轮询周期定期地获取数据库当前平均数据记录数值,当前平均数据记录数值表示单位时间内该数据库中出现的数据记录的数量;根据当前平均数据记录数值确定数据抽取周期;根据数据抽取周期执行从所述数据库中抽取数据操作。
Description
技术领域
本发明涉及一种计算机以及软件技术领域,具体涉及从数据库抽取数据的方法和装置。
背景技术
数据抽取是指从源数据系统(业务系统)的数据库抽取数据,并将数据加载到目标系统中去以满足后续的各类数据应用的过程。目前的数据抽取方法大部分都是固定周期进行抽取。所谓固定周期,也可以理解为固定频率,是指在固定的时间对数据进行抽取,常见的有按天或者按小时采用T+1方式进行抽取。其中,按天T+1抽取可以理解为在当天抽取前一天发生数据,按小时T+1抽取可以理解为当前一小时抽取前一小时发生的数据。
按照固定时间间隔抽取数据具有不够灵活的弊端。特别针对电商这种业务变化快,业务系统数据时间量分布不规律更加不适应。以电商的订单数据举例,在节假日期间,订单的业务数量是很小的,但是在重大促销日里的数据量很大,如果始终按照一种时间间隔固定抽取进行抽取容易造成如下问题:
(1)空闲资源的浪费,在数据量小时的时候如果选择按较小周期进行抽取会造成资源的大量浪费。
(2)在数据量特别大的固定按较大周期抽取,容易因为大量数据积压,同一时间处理的数据量太大,造成数据处理周期长,并且有可能引发数据抽取故障。
发明内容
有鉴于此,本发明提供一种灵活性好,资源利用率高的从数据库抽取数据的方法和装置。
为实现上述目的,根据本发明的一个方面,提供了一种从数据库抽取数据的方法。
本发明的从数据库抽取数据的方法,包括:按照预设轮询周期定期地获取数据库当前平均数据记录数值,所述当前平均数据记录数值表示单位时间内该数据库中出现的数据记录的数量;根据所述当前平均数据记录数值确定数据抽取周期;根据所述数据抽取周期执行从所述数据库中抽取数据操作。
可选地,所述按照预设轮询周期定期地获取数据库当前平均数据记录数值的步骤包括:按照预设轮询周期定期地获取未被抽取数据记录的数量;获取历史最近抽取操作时刻至当前时刻之间的时间长度;将所述未被抽取数据记录的数量除以所述时间长度,以得到所述当前平均数据记录数值。
可选地,所述根据所述当前平均数据记录数值确定数据抽取周期的步骤包括:设置多段平均数据数值预设范围以及各段平均数据数值预设范围分别对应的多档数据抽取预设周期;确定所述当前平均数据记录数值对应的所述平均数据数值预设范围;将所述对应的平均数据数值预设范围对应的所述数据抽取预设周期作为所述数据抽取周期。
可选地,所述预设轮询周期小于所述数据抽取周期。
为实现上述目的,根据本发明的另一个方面,提供了一种从数据库抽取数据的装置。
本发明的从数据库抽取数据的装置,包括:获取模块,用于按照预设轮询周期定期地获取数据库当前平均数据记录数值,所述当前平均数据记录数值表示单位时间内该数据库中出现的数据记录的数量;确定模块,用于根据所述当前平均数据记录数值确定数据抽取周期;抽取模块,用于根据所述数据抽取周期从所述数据库中当前的抽取数据操作。
可选地,所述获取模块还用于:按照预设轮询周期定期地获取未被抽取数据记录的数量;获取历史最近抽取操作时刻至当前时刻之间的时间长度;将所述未被抽取数据记录的数量除以所述时间长度,以得到所述当前平均数据记录数值。
可选地,所述确定模块还用于:设置多段平均数据数值预设范围以及各段平均数据数值预设范围分别对应的多档数据抽取预设周期;确定所述当前平均数据记录数值对应的所述平均数据数值预设范围;将所述对应的平均数据数值预设范围对应的所述数据抽取预设周期作为所述数据抽取周期。
可选地,所述预设轮询周期小于所述数据抽取周期。
为实现上述目的,根据本发明的再一方面,提供了一种电子设备。
本发明的电子设备包括:一个或多个处理器;以及,存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明的从数据库抽取数据的方法。
为实现上述目的,根据本发明的又一方面,提供了一种计算机可读介质。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明的从数据库抽取数据的方法。
根据本发明的技术方案,能够根据当前数据产生出现速度来调整抽取时间周期,这样的不定期地抽取数据过程能够实现数据抽取资源的灵活利用,并且在数据量大的时候能够及时处理数据、避免数据挤压。本发明的从数据库抽取数据的方法和装置具有智能化、灵活性好、资源利用率高等优点。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的从数据库抽取数据的方法的主要步骤的示意图;
图2是根据本发明实施例的从数据库抽取数据的装置的主要模块的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
除了背景技术中介绍的按照固定周期抽取数据方法之外,现有技术中还存在如下的非固定周期抽取数据的方法:根据历史上最近的完整数据抽取周期中的单位时间内数据量的多寡,来指导未来最近的数据抽取周期的周期长短,然后从历史最近抽取数据的时间点开始推算,从而确定接下来的抽取数据的时间点。倘若突然发生了数据暴涨或者回落,当前周期的抽取数据的时间点并不会改变,数据量的变化只能影响再接下来下一个抽取数据周期的周期长度。也就是该方案存在数据涨落响应迟缓、调整周期长短的过程不够灵活、不够实时的技术问题。为了解决该技术问题,本发明提出了从数据库抽取数据的方法以及装置。
图1是根据本发明实施例的从数据库抽取数据的方法的主要步骤的示意图。如图1所示,该实施方式的从数据库抽取数据的方法主要包括如下的步骤A至步骤C。
步骤A:按照预设轮询周期定期地获取数据库当前平均数据记录数值,当前平均数据记录数值表示单位时间内该数据库出现的数据记录的数量。
需要说明的是,步骤A中通过预设轮询周期保证了监控的时效性。优选地,预设轮询周期应当小于数据抽取周期。若有多档数据抽取周期可供选择,那么预设轮询周期应当小于最小数据抽取周期。这样可以保证抽取过程更加科学合理。
步骤A可以具体包括如下的步骤A1至步骤A3(图1中未示出)。
步骤A1:按照预设轮询周期定期地获取未被抽取数据记录的数量。
步骤A2:获取历史最近抽取操作时刻至当前时刻之间的时间长度。
步骤A3:将未被抽取数据记录的数量除以时间长度,以得到当前平均数据记录数值。
步骤B:根据当前平均数据记录数值确定数据抽取周期。
步骤B可以具体包括如下的步骤B1至步骤B3(图1中未示出)。
步骤B1:设置多段平均数据数值预设范围以及各段平均数据数值预设范围分别对应的多档数据抽取预设周期。
步骤B2:确定当前平均数据记录数值对应的平均数据数值预设范围。
步骤B3:将对应的平均数据数值预设范围对应的数据抽取预设周期作为数据抽取周期。
步骤C:根据数据抽取周期执行当前的抽取数据操作。
图2是根据本发明实施例的从数据库抽取数据的装置的主要部件的示意图。如图2所示,该实施方式的从数据库抽取数据的装置20主要包括获取模块21、确定模块22和抽取模块23。
获取模块21用于按照预设轮询周期定期地获取数据库当前平均数据记录数值,当前平均数据记录数值表示单位时间内数据库出现的数据记录的数量。
需要说明的是,获取模块21中通过预设轮询周期来保证了监控的时效性。优选地,预设轮询周期应当小于数据抽取周期。若有多档数据抽取周期可供选择,那么预设轮询周期应当小于最小数据抽取周期。这样可以保证抽取过程更加科学合理。
根据本发明的具体实施方式的获取模块21还可以用于:按照预设轮询周期定期地获取未被抽取数据记录的数量;获取历史最近抽取操作时刻至当前时刻之间的时间长度;将未被抽取数据记录的数量除以时间长度,以得到当前平均数据记录数值。
确定模块22用于根据当前平均数据记录数值确定数据抽取周期。
根据本发明的具体实施方式的确定模块22还可以用于:设置多段平均数据数值预设范围以及各段平均数据数值预设范围分别对应的多档数据抽取预设周期;确定当前平均数据记录数值对应的平均数据数值预设范围;将对应的平均数据数值预设范围对应的数据抽取预设周期作为数据抽取周期。
抽取模块23可以用于根据数据抽取周期执行从数据库中抽取数据操作。
为使本领域技术人员更好地理解本发明的内容,下面结合具体实施例作详细描述。
首先,本发明实施方式的从数据库抽取数据的装置中的获取模块按照预设轮询周期来不断地执行轮询任务。从数据抽取日志文件中读取历史上最后一次抽取数据的时间Tlast_data。然后获取当前时间,开始计算时间范围。时间范围Period=[当前系统时间–Tlast_data_],Period的单位可以为“秒”。然后获取模块确认哪些数据是新出现的、尚未被抽取的数据,统计这部分数据总量记为Total。具体地,假设被抽取的数据库为Table,则总记录数为Total=[select sum(1)from Table where data>last_data]。接着计算当前平均数据记录数值Avg,其中Avg=Total/Period。需要说明的是,获取模块每隔一段时间(例如5秒钟)启动一次获取Total和Period以及计算Avg的操作,这样可以能够避免轮询过快导致无法进行数据计算,防止过多地监控操作带来资源消耗,同时也保证了较为及时地监测数据量的变化。
随后本发明实施方式的从数据库抽取数据的装置中的确定模块根据当前平均数据记录数值Avg,判断对应哪种预设的抽取模式。例如:预先设定如下的对应规则:若每秒钟少于1000条记录,按天抽取数据;若每秒钟产生1000至10000条记录,按小时抽取数据;若每秒钟产生多于100000条记录,按分钟抽取数据。该规则可以灵活设置,并且可以动态调整。正常情况下电商订单的业务数据平均数据量大约为800条/秒,对应抽取周期是按天抽取数据。在某次活动期间轮询检测到当前数据量有大幅上升,Avg数值达到了2000条/秒,则推荐按小时抽取数据。
最后本发明实施方式的从数据库抽取数据的装置中的抽取模块按照小时为周期来抽取数据。即在Tlast_data后一小时的时刻抽取数据。
本发明实施例的从数据库抽取数据的方法和装置,与现有的非固定周期抽取数据的方法相比,调整更为灵活,抽取过程更加科学合理。为了更好地说明情况,举例对比如下。假设历史上最近的完整的数据抽取周期是从-1h到0h,计算得到该时间段内的单位时间内数据量为2000条/秒,相应地需要按照“每小时抽取一次”的周期来执行数据抽取工作。按照现有技术的非固定周期抽取数据的方法,应该计划在1h时间点抽取数据。哪怕0.005h至0.01h之间轮询监控得知开始出现了数据暴涨,也不改变抽取数据的时间点(即维持“1h时间点抽取数据”的计划)。但是如果根据本发明的技术方案则能够在数据暴涨之后立即做出响应,将数据抽取周期改短,例如立即更改为“每分钟抽取一次数据”。
由上可知,本发明实施方式的从数据库抽取数据的方法和装置,能够根据当前数据产生出现速度来调整抽取时间周期,这样的不定期地抽取数据过程能够实现数据抽取资源的灵活利用,并且在数据量大的时候能够及时处理数据、避免数据挤压。本发明实施方式的从数据库抽取数据的方法和装置具有智能化、灵活性好、资源利用率高等优点。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (6)
1.一种从数据库抽取数据的方法,其特征在于,包括:
按照预设轮询周期定期地获取数据库当前平均数据记录数值,所述当前平均数据记录数值表示单位时间内该数据库中出现的数据记录的数量;
根据所述当前平均数据记录数值确定当前的数据抽取周期;
根据所述数据抽取周期执行从所述数据库中抽取数据操作;
所述根据所述当前平均数据记录数值确定当前的数据抽取周期的步骤包括:
设置多段平均数据数值预设范围以及各段平均数据数值预设范围分别对应的多档数据抽取预设周期;
确定所述当前平均数据记录数值对应的所述平均数据数值预设范围;
将所述对应的平均数据数值预设范围对应的所述数据抽取预设周期作为当前的数据抽取周期;
所述按照预设轮询周期定期地获取数据库当前平均数据记录数值的步骤包括:
按照预设轮询周期定期地获取未被抽取数据记录的数量;
获取历史最近抽取操作时刻至当前时刻之间的时间长度;
将所述未被抽取数据记录的数量除以所述时间长度,以得到所述当前平均数据记录数值。
2.根据权利要求1所述的从数据库抽取数据的方法,其特征在于,所述预设轮询周期小于所述数据抽取周期。
3.一种从数据库抽取数据的装置,其特征在于,包括:
获取模块,用于按照预设轮询周期定期地获取数据库当前平均数据记录数值,所述当前平均数据记录数值表示单位时间内该数据库中出现的数据记录的数量;
确定模块,用于根据所述当前平均数据记录数值确定当前的数据抽取周期;
抽取模块,用于根据所述数据抽取周期执行从所述数据库中抽取数据操作;
所述确定模块还用于:
设置多段平均数据数值预设范围以及各段平均数据数值预设范围分别对应的多档数据抽取预设周期;
确定所述当前平均数据记录数值对应的所述平均数据数值预设范围;
将所述对应的平均数据数值预设范围对应的所述数据抽取预设周期作为当前的数据抽取周期;
所述获取模块还用于:
按照预设轮询周期定期地获取未被抽取数据记录的数量;
获取历史最近抽取操作时刻至当前时刻之间的时间长度;
将所述未被抽取数据记录的数量除以所述时间长度,以得到所述当前平均数据记录数值。
4.根据权利要求3所述的从数据库抽取数据的装置,其特征在于,所述预设轮询周期小于所述数据抽取周期。
5.一种电子设备,其特征在于,包括:
一个或多个处理器;以及,
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1或2所述的方法。
6.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1或2所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611076450.4A CN108121728B (zh) | 2016-11-29 | 2016-11-29 | 从数据库抽取数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611076450.4A CN108121728B (zh) | 2016-11-29 | 2016-11-29 | 从数据库抽取数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108121728A CN108121728A (zh) | 2018-06-05 |
CN108121728B true CN108121728B (zh) | 2021-05-25 |
Family
ID=62227044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611076450.4A Active CN108121728B (zh) | 2016-11-29 | 2016-11-29 | 从数据库抽取数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108121728B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271435B (zh) * | 2018-09-14 | 2022-03-04 | 南威软件股份有限公司 | 一种支持断点续传的数据抽取方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551811A (zh) * | 2009-01-09 | 2009-10-07 | 南京联创科技股份有限公司 | 用于实时数据etl系统的记忆式调度方法 |
CN101923566A (zh) * | 2010-06-24 | 2010-12-22 | 浙江协同数据系统有限公司 | 一种基于触发器的数据增量抽取方法 |
CN102254001A (zh) * | 2011-07-14 | 2011-11-23 | 青岛海信网络科技股份有限公司 | 一种高效数据管理方法及系统 |
CN104881475A (zh) * | 2015-06-02 | 2015-09-02 | 北京京东尚科信息技术有限公司 | 一种用于大数据随机抽样的方法和系统 |
CN106126612A (zh) * | 2016-06-22 | 2016-11-16 | 重庆秒银科技有限公司 | 一种大数据etl动态划分时间片的数据抽取方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8849746B2 (en) * | 2006-12-19 | 2014-09-30 | Teradata Us, Inc. | High-throughput extract-transform-load (ETL) of program events for subsequent analysis |
CN102982161A (zh) * | 2012-12-05 | 2013-03-20 | 北京奇虎科技有限公司 | 网页信息的获取方法和装置 |
US20160292175A1 (en) * | 2015-03-31 | 2016-10-06 | Profisee Group, Inc. | Systems and methods for system-aware identity management of central data storage hubs |
CN106101121B (zh) * | 2016-06-30 | 2019-01-22 | 中国人民解放军防空兵学院 | 一种全网络流量异常抽取方法 |
-
2016
- 2016-11-29 CN CN201611076450.4A patent/CN108121728B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551811A (zh) * | 2009-01-09 | 2009-10-07 | 南京联创科技股份有限公司 | 用于实时数据etl系统的记忆式调度方法 |
CN101923566A (zh) * | 2010-06-24 | 2010-12-22 | 浙江协同数据系统有限公司 | 一种基于触发器的数据增量抽取方法 |
CN102254001A (zh) * | 2011-07-14 | 2011-11-23 | 青岛海信网络科技股份有限公司 | 一种高效数据管理方法及系统 |
CN104881475A (zh) * | 2015-06-02 | 2015-09-02 | 北京京东尚科信息技术有限公司 | 一种用于大数据随机抽样的方法和系统 |
CN106126612A (zh) * | 2016-06-22 | 2016-11-16 | 重庆秒银科技有限公司 | 一种大数据etl动态划分时间片的数据抽取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108121728A (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095056B (zh) | 一种数据仓库数据监控的方法 | |
CN110399262B (zh) | 运维监测告警收敛方法、装置、计算机设备及存储介质 | |
CN108683720B (zh) | 一种容器集群服务配置方法及装置 | |
CN110321364B (zh) | 信用卡管理系统的交易数据查询方法、装置及终端 | |
CN108536530B (zh) | 一种多线程任务调度方法及装置 | |
CN104346264A (zh) | 系统事件日志处理系统及方法 | |
CN109857618B (zh) | 一种监控方法、装置及系统 | |
CN112751726A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN114223189A (zh) | 时长统计方法、装置、电子设备和计算机可读介质 | |
CN110865877B (zh) | 一种任务请求的响应方法及设备 | |
CN111125097B (zh) | 报表调度方法及装置 | |
CN114416685A (zh) | 日志处理方法、系统和存储介质 | |
CN116661960A (zh) | 一种批量任务处理方法、装置、设备以及存储介质 | |
CN108121728B (zh) | 从数据库抽取数据的方法和装置 | |
CN112181498B (zh) | 并发控制方法、装置和设备 | |
CN109992470B (zh) | 一种阈值调整方法和装置 | |
CN115914064A (zh) | 网络系统服务性能评估方法、装置、计算设备和存储介质 | |
CN117633116A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN112925811A (zh) | 数据处理的方法、装置、设备、存储介质及程序产品 | |
CN112817719A (zh) | 线程池的参数调整方法、装置、设备及可读存储介质 | |
CN117314068A (zh) | 一种烟丝任务排产方法、装置、电子设备及存储介质 | |
CN112817687A (zh) | 一种数据同步方法和装置 | |
CN116680151A (zh) | 硬盘性能动态监控方法、系统、终端及存储介质 | |
CN115599806A (zh) | 一种即席查询方法、装置、电子设备及存储介质 | |
CN115438007A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |