CN107180036A - 一种数据读取方法和装置 - Google Patents

一种数据读取方法和装置 Download PDF

Info

Publication number
CN107180036A
CN107180036A CN201610133695.XA CN201610133695A CN107180036A CN 107180036 A CN107180036 A CN 107180036A CN 201610133695 A CN201610133695 A CN 201610133695A CN 107180036 A CN107180036 A CN 107180036A
Authority
CN
China
Prior art keywords
data
business datum
business
product
read
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
Application number
CN201610133695.XA
Other languages
English (en)
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610133695.XA priority Critical patent/CN107180036A/zh
Publication of CN107180036A publication Critical patent/CN107180036A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Abstract

本申请提供一种数据读取方法和装置,其中方法包括:获取待读取的业务数据的数据主键,同一业务主体的不同版本的业务数据分别对应不同的数据主键;在所述业务数据的存储空间中,读取与所述数据主键对应的业务数据。本申请能够根据数据主键准确的读取到所需的业务数据,保证数据读取的准确性,避免数据读取错乱的发生。

Description

一种数据读取方法和装置
技术领域
本申请涉及网络技术,特别涉及一种数据读取方法和装置。
背景技术
随着业务的发展,业务运行所使用的业务数据可能需要不断更新,例如,一种发布产品的业务,该业务的运行,可以是通过业务代码读取产品数据,将产品数据对应的产品发布到网上。在发布新的产品时,产品数据会更新,比如可以在产品数据中增加新的字段,而产品发布期间,并不是所有的业务服务器同时发布新产品,可以是先在一部分服务器发布,而后逐步扩展到所有机器。那么,需要发布新产品的机器运行新业务代码,该新业务代码读取新产品数据,而旧产品的机器运行旧业务代码,并读取旧产品数据。
在业务代码读取产品数据时,对于访问量较大的业务,通常会将产品数据放在缓存中以提高访问效率。但是,现有技术中,新旧服务器读取产品数据是在同一缓存空间,可能出现新旧服务器读取数据错误的情况,例如,如果缓存空间存放的是旧业务代码读取并放入的旧产品数据,新业务代码读取后将出现无法读取到新增的字段,导致发布的产品数据不准确;如果缓存空间存放的是新业务代码读取并放入的新产品数据,旧业务代码读取后可能无法解析,导致出现系统异常。
发明内容
有鉴于此,本申请提供一种数据读取方法和装置,以保证数据读取的准确性,避免数据读取错乱的发生。
具体地,本申请是通过如下技术方案实现的:
第一方面,提供一种数据读取方法,包括:
获取待读取的业务数据的数据主键,同一业务主体的不同版本的业务数据分别对应不同的数据主键;
在所述业务数据的存储空间中,读取与所述数据主键对应的业务数据。
第二方面,提供一种数据读取装置,包括:
主键获取模块,用于获取待读取的业务数据的数据主键,同一业务主体的不同版本的业务数据分别对应不同的数据主键;
数据读取模块,用于在所述业务数据的存储空间中,读取与所述数据主键对应的业务数据。
本申请提供的数据读取方法和装置,通过根据数据主键读取对应的业务数据,并且同一业务主体的不同版本的业务数据对应不同的数据主键,就使得即使是同一产品,不同版本的产品数据可以用不同的数据主键区分,从而能够根据数据主键准确的读取到所需的业务数据,保证数据读取的准确性,避免数据读取错乱的发生。
附图说明
图1是本申请一示例性实施例示出的一种数据读取的场景示意图;
图2是本申请一示例性实施例示出的一种数据读取方法的流程图;
图3是本申请一示例性实施例示出的一种数据读取装置的结构示意图;
图4是本申请一示例性实施例示出的另一种数据读取装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1示例了一种数据读取的场景,如图1所示,业务服务器11至业务服务器13上可以运行业务代码,该业务代码可以读取缓存空间14中存储的业务数据。例如,以一种发布产品的业务为例,该业务运行时可以将产品发布到网上供用户选择和查看,那么缓存空间14中存储的可以是产品数据,业务代码可以读取该产品数据,并将产品数据发布到客户端,展示对应的产品。
将业务数据存储在缓存空间14,是为了提高业务代码读取数据时的效率,具体实施中,可以是由业务代码初次从业务数据的发布空间(例如,发布服务器)中读取业务数据后,放入缓存空间14,后续就可以从该缓存空间14读取数据,加快读取速度。
上述的业务服务器11至业务服务器13上,可能需要读取不同的业务数据,例如,不同的服务器读取同一业务主体的不同版本的数据。比如,对于发布产品的业务,在产品发布期间,产品数据会更新(例如,新增字段),但是并不是所有的业务服务器同时发布新产品,可以是先在一部分服务器发布,而后逐步扩展到所有服务器。在图1中,可以是业务服务器11仍旧发布旧产品,业务服务器12和业务服务器13发布新产品;那么,业务服务器11就需要读取旧产品数据,而业务服务器12和业务服务器13需要读取新产品数据,即不同的服务器可能要读取同一产品的不同发布版本的产品数据。
由图1中还可以看到,新旧服务器读取产品数据是在同一缓存空间,比如,业务服务器11至业务服务器13,读取产品数据时都要在缓存空间14中读取。本申请的实施例中,缓存空间14中可以存储有新产品数据和旧产品数据,即同一产品的不同发布版本的产品数据都在该缓存空间14,业务服务器在读取业务数据,例如上述例子中的产品数据时,可以按照图2所示的数据读取方法进行读取,以避免出现数据读取错乱的问题。
如图2所示,在步骤201中,获取待读取的业务数据的数据主键,同一业务主体的不同版本的业务数据分别对应不同的数据主键。
在步骤202中,在业务数据的存储空间中,读取与数据主键对应的业务数据。
以产品发布期间的产品数据的读取为例,来说明上述图2的数据读取流程。在缓存空间14中,产品数据存储时,还会同时存储一个对应该产品数据的数据主键,以方便后续在读取产品数据时根据该主键读取。该数据主键也可以称为缓存key。在产品数据的例子中,缓存key可以包括:产品ID、产品数据的版本发布日期。当然该缓存key也可以包括其他的内容,或者,在非产品数据的其他业务数据的例子中,数据主键也可以包括其他的业务主体(例如,在产品数据例子中,业务主体即为产品)标识以及业务数据的版本发布日期。如下的表1示例了产品数据及数据主键的对应关系:
表1
缓存key 产品数据
**** *****
例如,一个缓存key可以是:
productxqueryProductDetailById20150917[20151124000230020000440063428244
其中,“productxqueryProductDetailById”为固定字符;“20150917”为每次产品改动后的版本日期;“20151124000230020000440063428244”为产品ID。在该缓存key中,产品ID即产品标识,“20150917”为产品数据的版本发布日期。
该版本发布日期能够起到区分同一产品的不同发布版本的作用,例如,假设一个产品是在2015年09月17日发布的,该产品的产品数据在缓存空间存储时,使用的缓存key可以是如上所示例的key。而假如随着业务的发展,对于同一个产品进行了改进,要发布该产品的新的产品数据,并且假设新产品数据是在2016年01月10日发布,那么缓存key可以是:
productxqueryProductDetailById20160110[20151124000230020000440063428244
由上述例子可以看到,当在同一缓存空间同时存储有同一产品的不同发布版本的产品数据时,不同版本的产品数据对应的缓存key是不同的,并且可以在缓存key中设置版本发布日期,以方便根据版本发布日期区分不同版本的产品数据。
需要说明的是,数据主键比如产品数据的缓存key,并不限制使用上述例子中的结构格式,只要起到能标识同一业务主体的不同版本的业务数据的作用即可,同一业务主体的不同版本的业务数据可以使用不同的数据主键,以使得新旧业务数据即使存储在同一存储空间,也能通过数据主键进行区分。
在存储空间14按照上面描述的方式存储产品数据后,比如,以缓存key与产品数据对应存储,并且同一产品的不同版本的产品数据使用不同的主键,新旧的业务服务器可以去缓存空间读取所需的产品数据,新服务器读取新业务数据,旧服务器读取旧业务数据。
参见图2所示的流程,业务服务器获取待读取的业务数据的数据主键时,该步骤中,可以是业务服务器上运行的业务代码中包括了数据主键,而在本步骤中,业务代码在运行时只要找到其中包括的数据主键即可。本实施例中,同一业务主体的不同版本的业务数据分别对应不同的数据主键,比如,要发布旧产品的业务服务器11上的业务代码中,数据主键可以是包含版本发布日期20150917的缓存key,而发布新产品的业务服务器12和业务服务器13中,数据主键可以是包含版本发布日期20160110的缓存key。
在步骤202中,业务服务器去缓存空间14读取产品数据时,可以根据在步骤201中得到的数据主键,在缓存空间14中查找与该数据主键对应的产品数据。例如,与包含版本发布日期20150917的缓存key对应的产品数据是旧的产品数据,业务服务器11读取该旧产品数据后发布旧产品;与包含版本发布日期20160110的缓存key对应的产品数据是新的产品数据,业务服务器12和业务服务器13读取该新产品数据后发布新产品。
通过本实施例的数据读取方法可以看到,通过根据数据主键读取对应的业务数据,并且同一业务主体的不同版本的业务数据对应不同的数据主键,就使得即使是同一产品,不同版本的产品数据可以用不同的数据主键区分,从而能够根据数据主键准确的读取到所需的业务数据,不会出现数据读取错乱的情况,旧业务代码只会读取到旧产品数据,不会出现无法解析新产品数据的问题,而新业务代码也只会读取到新产品数据,不会出现读取到旧产品数据导致产品数据错误的问题。
此外,缓存空间的数据可以是业务服务器将发布空间的业务数据,读取到缓存中的,如果是旧业务代码读取了旧产品数据后放到缓存空间,那么新业务代码在读取业务数据时(新旧代码要读取的数据对应的是同一产品,只是分别是不同的产品版本),先去缓存空间查看是否有自己所需的业务数据。在查看时,可以根据数据主键(例如,包含了数据的版本发布日期),看缓存空间是否存在该数据主键。上述的旧业务代码放入缓存空间的是旧业务数据,并且在缓存空间是以包含旧的发布日期的缓存key索引该旧业务数据,那么新业务代码在查看所需的数据主键时,将发现缓存空间并不存在该主键,表明该缓存空间还尚未存储新业务数据。
则新业务代码可以由业务数据的发布空间读取新业务数据,并将新业务数据和对应的数据主键放入缓存空间,这样缓存空间中就同时存储了新旧业务数据及各自的主键,后续新旧服务器都可以从该缓存空间读取业务数据,且根据不同的数据主键分别读取各自所需的业务数据。
上述的方法描述了对于同一缓存空间存储的同一产品的不同版本数据,新旧服务器如何分别读取的方法,主要是根据数据主键,同一产品的不同版本的产品数据分别对应不同的数据主键,从而使得可以根据主键清楚准确的读取到所需的数据。当所有业务服务器都发布新产品完成后,即所有的服务器都使用了新业务代码,那么新业务代码均读取缓存空间中的新产品数据。
由于本申请实施例的方法有效防止了产品发布过程中的数据读取错乱的问题,不会出现数据发布错误或者系统异常的问题,提高了系统的可用性,也给访问产品的用户提供了更好的体验。
本申请实施例还提供了一种数据读取装置,如图3所示,该装置可以包括:主键获取模块31和数据读取模块32。
主键获取模块31,用于获取待读取的业务数据的数据主键,同一业务主体的不同版本的业务数据分别对应不同的数据主键;
数据读取模块32,用于在所述业务数据的存储空间中,读取与所述数据主键对应的业务数据。
在一个例子中,所述业务数据的存储空间为缓存空间,所述不同版本的业务数据存储在同一个所述缓存空间。
如图4所示,该装置还可以包括:数据处理模块33,用于在所述缓存空间中不存在与所述数据主键对应的业务数据时,则由所述业务数据的发布空间读取业务数据,并将所述业务数据和对应的数据主键放入所述缓存空间。
在一个例子中,所述数据主键中包括:业务主体标识、以及业务数据的版本发布日期。
在一个例子中,所述同一业务主体的不同版本的业务数据,为同一产品的不同发布版本的产品数据。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种数据读取方法,其特征在于,包括:
获取待读取的业务数据的数据主键,同一业务主体的不同版本的业务数据分别对应不同的数据主键;
在所述业务数据的存储空间中,读取与所述数据主键对应的业务数据。
2.根据权利要求1所述的方法,其特征在于,所述业务数据的存储空间为缓存空间,所述不同版本的业务数据存储在同一个所述缓存空间。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述缓存空间中不存在与所述数据主键对应的业务数据,则由所述业务数据的发布空间读取业务数据,并将所述业务数据和对应的数据主键放入所述缓存空间。
4.根据权利要求1所述的方法,其特征在于,所述数据主键中包括:业务主体标识、以及业务数据的版本发布日期。
5.根据权利要求1所述的方法,其特征在于,所述同一业务主体的不同版本的业务数据,为同一产品的不同发布版本的产品数据。
6.一种数据读取装置,其特征在于,包括:
主键获取模块,用于获取待读取的业务数据的数据主键,同一业务主体的不同版本的业务数据分别对应不同的数据主键;
数据读取模块,用于在所述业务数据的存储空间中,读取与所述数据主键对应的业务数据。
7.根据权利要求6所述的装置,其特征在于,所述业务数据的存储空间为缓存空间,所述不同版本的业务数据存储在同一个所述缓存空间。
8.根据权利要求7所述的装置,其特征在于,还包括:
数据处理模块,用于在所述缓存空间中不存在与所述数据主键对应的业务数据时,则由所述业务数据的发布空间读取业务数据,并将所述业务数据和对应的数据主键放入所述缓存空间。
9.根据权利要求6所述的装置,其特征在于,所述数据主键中包括:业务主体标识、以及业务数据的版本发布日期。
10.根据权利要求6所述的装置,其特征在于,所述同一业务主体的不同版本的业务数据,为同一产品的不同发布版本的产品数据。
CN201610133695.XA 2016-03-09 2016-03-09 一种数据读取方法和装置 Pending CN107180036A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610133695.XA CN107180036A (zh) 2016-03-09 2016-03-09 一种数据读取方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610133695.XA CN107180036A (zh) 2016-03-09 2016-03-09 一种数据读取方法和装置

Publications (1)

Publication Number Publication Date
CN107180036A true CN107180036A (zh) 2017-09-19

Family

ID=59829750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610133695.XA Pending CN107180036A (zh) 2016-03-09 2016-03-09 一种数据读取方法和装置

Country Status (1)

Country Link
CN (1) CN107180036A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582666A (zh) * 2018-09-29 2019-04-05 阿里巴巴集团控股有限公司 数据主键生成方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888378A (zh) * 2014-04-09 2014-06-25 北京京东尚科信息技术有限公司 一种基于缓存机制的数据交换系统和方法
CN104238963A (zh) * 2014-09-30 2014-12-24 华为技术有限公司 一种数据存储方法、存储装置及存储系统
CN104317914A (zh) * 2014-10-28 2015-01-28 小米科技有限责任公司 数据获取方法和装置
CN104657158A (zh) * 2013-11-20 2015-05-27 北京先进数通信息技术股份公司 一种业务系统中业务处理的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104657158A (zh) * 2013-11-20 2015-05-27 北京先进数通信息技术股份公司 一种业务系统中业务处理的方法和装置
CN103888378A (zh) * 2014-04-09 2014-06-25 北京京东尚科信息技术有限公司 一种基于缓存机制的数据交换系统和方法
CN104238963A (zh) * 2014-09-30 2014-12-24 华为技术有限公司 一种数据存储方法、存储装置及存储系统
CN104317914A (zh) * 2014-10-28 2015-01-28 小米科技有限责任公司 数据获取方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582666A (zh) * 2018-09-29 2019-04-05 阿里巴巴集团控股有限公司 数据主键生成方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN106980669B (zh) 一种数据的存储、获取方法及装置
US20170091041A1 (en) Method and apparatus for transferring data between databases
CN110019292B (zh) 一种数据的查询方法及装置
CN111639066A (zh) 一种数据清洗的方法和装置
US8832145B2 (en) Search method for a containment-aware discovery service
JP2012089094A5 (zh)
CN104423982B (zh) 请求的处理方法和处理设备
CN112514349B (zh) 利用对加密匹配索引进行的精确和模糊匹配来检测重复
CN110807080A (zh) 一种商品编码方法及装置
CN112487083A (zh) 一种数据校验方法和设备
CN112015806A (zh) 区块链存储数据的方法及装置
CN108154024A (zh) 一种数据检索方法、装置及电子设备
US20070124275A1 (en) Considering transient data also in reports generated based on data eventually stored in a data-warehouse
CN104408183B (zh) 数据系统的数据导入方法和装置
US7610293B2 (en) Correlation of resource usage in a database tier to software instructions executing in other tiers of a multi tier application
CN107180036A (zh) 一种数据读取方法和装置
CN107729330A (zh) 获取数据集的方法和装置
CN110704486B (zh) 数据处理方法、装置、系统、存储介质和服务器
Atan et al. Note on “the backroom effect in retail operations”
CN112947911A (zh) 接口脚本生成方法、装置、设备及存储介质
JP6019187B1 (ja) 企業情報整合装置および企業情報整合用プログラム
CN109284268A (zh) 一种快速解析日志的方法、系统及电子设备
CN113486025B (zh) 数据存储方法、数据查询方法及装置
JP6634938B2 (ja) 分析支援方法、分析支援プログラムおよび分析支援装置
CN109446298A (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
TA01 Transfer of patent application right

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20170919

RJ01 Rejection of invention patent application after publication