CN109783477B - 一种数据更新方法 - Google Patents

一种数据更新方法 Download PDF

Info

Publication number
CN109783477B
CN109783477B CN201910108124.4A CN201910108124A CN109783477B CN 109783477 B CN109783477 B CN 109783477B CN 201910108124 A CN201910108124 A CN 201910108124A CN 109783477 B CN109783477 B CN 109783477B
Authority
CN
China
Prior art keywords
data
version
business datum
update
build
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
Application number
CN201910108124.4A
Other languages
English (en)
Other versions
CN109783477A (zh
Inventor
金霞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huoshi Creation Technology Co ltd
Original Assignee
Hangzhou Firestone Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Firestone Technology Co Ltd filed Critical Hangzhou Firestone Technology Co Ltd
Priority to CN201910108124.4A priority Critical patent/CN109783477B/zh
Publication of CN109783477A publication Critical patent/CN109783477A/zh
Application granted granted Critical
Publication of CN109783477B publication Critical patent/CN109783477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据更新方法,包括添加业务数据版本号、同步业务数据版本号和内部版本号、执行实际的业务数据更新操作和检查和标记实际数据更新四个步骤。添加业务数据版本号是本方法的实施基础;同步业务数据版本号和内部版本号是本方法的关键步骤,保持对比基准统一。检查和标记实际数据更新,通过对比业务数据版本号和内部版本号来确定数据是否实际更新,数据实际更新情况可以优化后续的数据处理性能。传统的基于Elasticsearch的大数据处理系统中,因为无法获知数据是否实际更新,存在大量全量数据读、写和计算的情况,导致了大量的时间和性能浪费。本发明有效解决上述缺陷,节省了系统资源和数据处理的时间。

Description

一种数据更新方法
技术领域
本发明涉及大数据处理技术领域,尤其涉及一种基于Elasticsearch的数据更新方法。
背景技术
Elasticsearch是一个开源的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。
Elasticsearch是当前非常流行的企业大数据解决方案系统组件,兼具数据存储和搜索引擎的功能。在使用Elasticsearch作为数据存储的技术方案中,数据更新是一个常见的数据操作,Elasticsearch为数据更新提供了以下的特性:elasticsearch为每一条数据记录记录一个内部版本号(_version)。当记录被第一次创建时,elasticsearch为其设定_version=1;每一次对此记录执行更新(update)操作时,elasticsearch对比要更新的字段值和原记录字段值是否完全相同,如果完全相同,elasticsearch忽略此次更新,保持原记录不变,如果不完全相同,elasticsearch执行更新操作,并把记录的内部版本号(_version)加一(假设原记录内部版本号为1,变更后内部版本号变为2)。
在大数据处理系统中,数据更新一般通过批量操作来执行,在不做全量数据对比的情况下,无法获知数据更新过程中,数据是否真的发生更新。数据实际更新未知性,导致在数据处理的全流程中,无法进行增量数据处理,导致整个计算系统的资源巨大浪费。
发明内容
本发明针对现有技术的不足,提出一种基于Elasticsearch的数据更新方法。
本发明的目的是通过以下技术方案来实现的:一种数据更新方法,该方法包括以下步骤:
步骤一:在数据记录上添加业务数据版本号out_version。
步骤二:同步业务数据版本号out_version和Elasticsearch的内部版本号_version。
步骤三:执行实际的业务数据更新操作。
步骤四:在业务数据更新操作完成以后,通过对比业务数据版本号out_version和内部版本号_version的值来判断数据是否实际发生更新。
进一步地,步骤一中,将业务数据版本号out_version初始化为1。
进一步地,步骤二中,同步业务数据版本号out_version和Elasticsearch的内部版本号_version的方法具体为:首先获得数据记录的内部版本号_version,假定为n,然后对该数据记录做一次更新操作,更新内容为out_version=n+1,使得更新后业务数据版本号out_version等于内部版本号_version。
进一步地,步骤四具体为:如果业务数据版本号out_version等于内部版本号_version,则判断业务数据没有发生实际更新;如果业务数据版本号out_version小于内部版本号_version,则判断业务数据发生了实际更新。
进一步地,步骤四中,对判断为实际更新的数据打上一个时间标记,表示该数据在此次数据处理周期中发生了实际更新。
进一步地,在下一个数据处理周期到来时,重复执行步骤二、三和四,即可再次指出此次数据处理周期中实际发生更新的数据记录。
本发明的有益效果是:本发明结合elasticsearch自身的系统特点,提出了一种数据更新方法,在数据处理流程源头即可判断和标识出实际更新的数据,从而减少了数据处理流程下游的数据处理量,大大减少了计算系统的资源浪费。
附图说明
图1为本发明数据更新方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
如图1所示,本发明提出的一种数据更新方法,该方法结合Elasticsearch的数据内部版本号_version和自定义的业务数据版本号的同步,更新,对比来判断数据是否发生实际更新。该方法可以重复实施,并保持有效。该方法具体包括以下步骤:
第一步,添加业务数据版本号字段。为了判定数据是否真实更新,在数据记录上添加一个业务数据版本号字段,假定字段名称为out_version,并对out_version做初始化,例如可以直接设置为1。
第二步,同步业务数据版本号和内部版本号_version。方法为:首先获得数据记录的内部版本号_version,假定为n,然后对该数据记录做一次更新操作,更新内容为out_version=n+1(因为业务数据版本号更新操作也会导致_version自增1),使得更新后业务数据版本号out_version=内部版本号_version。
第三步,执行实际的业务数据更新操作。这一步就是原来实际的业务数据更新过程。
第四步,检查和标记实际数据更新。在业务数据更新操作完成以后,通过对比业务数据版本号out_version和内部版本号_version的值是否相等,来确定数据是否实际发生更新,方法是:如果业务数据版本号out_version等于内部版本号_version,则判断业务数据没有发生实际更新;如果业务数据版本号out_version小于内部版本号_version,则判断业务数据发生了实际更新。此时可以对实际更新的数据打上一个时间标记,一般设置为当前时间,表示该数据在此次数据处理周期中发生了实际更新。
该数据更新方法可重复实施,并保持有效的特性。在下一个数据处理周期到来时,重复执行步骤二、三和四,即可再次指出这个处理周期中实际发生更新的数据记录。
以下为一个更为具体的数据更新实例。
假设已经存在索引(index)名为:test_person,已经写入了一条记录,如下:
可以看到,这条数据当前的内部标记号(_id)为2,内部版本号(_version)为4。
为了追踪这条数据的实际更新情况,第一步,添加业务数据版本号字段。不失一般性,设定业务数据版本号字段名称为out_version,并设置初始值为1。操作如下:
此时,再看这条数据,因为新增了一个字段,内部版本号(_version)更新为5。数据如下:
第二步,同步业务数据版本号和内部版本号。令业务数据版本号out_version=6,方法如下:
再查看该条数据,现在业务数据版本号out_version已经和内部版本号(_version)相同,均为6。
第三步,执行实际的业务数据更新操作。现在,我们来执行业务更新,我们把这条记录的age字段变更为28,操作如下:
第四步,检查实际数据更新。此时我们查看这条数据,数据如下:
可见内部版本号(_version)等于7,业务数据版本号out_version等于6,依据规则:如果业务数据版本号out_version等于内部版本号(_version),则判断业务数据没有发生实际更新;如果业务数据版本号out_version小于内部版本号(_version),则判断业务数据发生了实际更新。判定数据发生了实际更新,这个时候我们可以给数据打上更新时间戳,方法如下:
再看数据:
这样就能给这条记录打上更新的标识,来确定数据真实的更新时间,为下游的数据增量处理打下基础。在任何想对数据执行更新操作的时候,只需要顺序执行上述的步骤。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

Claims (6)

1.一种数据更新方法,其特征在于,该方法包括以下步骤:
步骤一:在数据记录上添加业务数据版本号out_version;
步骤二:同步业务数据版本号out_version和Elasticsearch的内部版本号_version;
步骤三:执行实际的业务数据更新操作;
步骤四:在业务数据更新操作完成以后,通过对比业务数据版本号out_version和内部版本号_version的值来判断数据是否实际发生更新。
2.根据权利要求1所述的一种数据更新方法,其特征在于,步骤一中,将业务数据版本号out_version初始化为1。
3.根据权利要求1所述的一种数据更新方法,其特征在于,步骤二中,同步业务数据版本号out_version和Elasticsearch的内部版本号_version的方法具体为:首先获得数据记录的内部版本号_version,假定为n,然后对该数据记录做一次更新操作,更新内容为out_version=n+1,使得更新后业务数据版本号out_version等于内部版本号_version。
4.根据权利要求1所述的一种数据更新方法,其特征在于,步骤四具体为:如果业务数据版本号out_version等于内部版本号_version,则判断业务数据没有发生实际更新;如果业务数据版本号out_version小于内部版本号_version,则判断业务数据发生了实际更新。
5.根据权利要求1所述的一种数据更新方法,其特征在于,步骤四中,对判断为实际更新的数据打上一个时间标记,表示该数据在此次数据处理周期中发生了实际更新。
6.根据权利要求1所述的一种数据更新方法,其特征在于,在下一个数据处理周期到来时,重复执行步骤二、三和四,即可再次指出此次数据处理周期中实际发生更新的数据记录。
CN201910108124.4A 2019-02-02 2019-02-02 一种数据更新方法 Active CN109783477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910108124.4A CN109783477B (zh) 2019-02-02 2019-02-02 一种数据更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910108124.4A CN109783477B (zh) 2019-02-02 2019-02-02 一种数据更新方法

Publications (2)

Publication Number Publication Date
CN109783477A CN109783477A (zh) 2019-05-21
CN109783477B true CN109783477B (zh) 2019-11-01

Family

ID=66503206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910108124.4A Active CN109783477B (zh) 2019-02-02 2019-02-02 一种数据更新方法

Country Status (1)

Country Link
CN (1) CN109783477B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442590A (zh) * 2019-08-06 2019-11-12 北京三维天地科技有限公司 一种用于提供检验检测服务的系统和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103412767A (zh) * 2013-06-09 2013-11-27 百度国际科技(深圳)有限公司 一种应用版本的识别与升级方法以及系统
US9442718B1 (en) * 2014-02-28 2016-09-13 Ca, Inc. System for assisting in locating changes in source code version control system
US10545646B2 (en) * 2017-02-22 2020-01-28 Foxwordy Inc. Enabling and disabling one-click clauses
CN108769172A (zh) * 2018-05-21 2018-11-06 杭州有赞科技有限公司 一种数据同步方法及系统

Also Published As

Publication number Publication date
CN109783477A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
US10346381B2 (en) Atomic update operations in a data storage system
CN104881285B (zh) 基于本体的代码片段标注与重用系统
Xiang et al. Detecting data inconsistency based on the unfolding technique of petri nets
CN103838672A (zh) 一种通用报表的自动化测试方法及装置
CN110457260A (zh) 文件处理方法、装置、设备及计算机可读存储介质
CN108388515A (zh) 测试数据生成方法、装置、设备以及计算机可读存储介质
US10198346B1 (en) Test framework for applications using journal-based databases
CN108536745A (zh) 基于Shell的数据表提取方法、终端、设备及存储介质
CN108021509B (zh) 基于程序行为网络聚合的测试用例动态排序方法
CN103606032B (zh) 一种二维电网gis数据集中的方法
CN111159040A (zh) 一种测试数据生成方法、装置、设备及存储介质
CN110109978A (zh) 基于指标的数据分析方法、装置、服务器及可读存储介质
CN110297820A (zh) 一种数据处理方法、装置、设备和存储介质
CN107357721B (zh) 测试系统的方法及装置
CN109783477B (zh) 一种数据更新方法
CN109214640B (zh) 指标结果的确定方法、设备及计算机可读存储介质
CN114386853A (zh) 基于通用审核模型的数据审核处理方法、装置及设备
CN112749167A (zh) 确定断链数据的方法、装置及非易失性存储介质
CN106294115A (zh) 一种应用系统迁移性的测试方法及装置
CN115345600B (zh) 一种rpa流程的生成方法和装置
CN106055640A (zh) 缓存的管理方法及系统
Karami et al. Maintaining accurate web usage models using updates from activity diagrams
CN109597706A (zh) 一种核对差异数据的检测方法、装置及系统
CN115757304A (zh) 一种日志存储方法、装置、系统、电子设备及存储介质
CN114741276A (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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 7 / F, building B, 482 Qianmo Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province 310000

Patentee after: Huoshi Creation Technology Co.,Ltd.

Address before: 7 / F, building B, 482 Qianmo Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province 310000

Patentee before: HANGZHOU FIRESTONE TECHNOLOGY Co.,Ltd.