CN113190563B - 索引生成方法、设备及存储介质 - Google Patents

索引生成方法、设备及存储介质 Download PDF

Info

Publication number
CN113190563B
CN113190563B CN202110732508.0A CN202110732508A CN113190563B CN 113190563 B CN113190563 B CN 113190563B CN 202110732508 A CN202110732508 A CN 202110732508A CN 113190563 B CN113190563 B CN 113190563B
Authority
CN
China
Prior art keywords
index
data
imported
updating
update
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
CN202110732508.0A
Other languages
English (en)
Other versions
CN113190563A (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing 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 Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202110732508.0A priority Critical patent/CN113190563B/zh
Publication of CN113190563A publication Critical patent/CN113190563A/zh
Application granted granted Critical
Publication of CN113190563B publication Critical patent/CN113190563B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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/2358Change logging, detection, and notification
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供一种索引生成方法、设备及存储介质。在批量导入数据的过程中,可根据待导入数据回查数据库的主表,当回查到存量数据时,可以将存量数据作为待导入数据的更新对象,创建索引更新操作。在批量导入结束后,可根据为批量数据中的大量数据创建的索引更新操作,对主表对应的索引表进行更新,得到更新后的索引表。在这种方式中,可在批量导入(bulkload)场景下,通过在主表中回查待导入数据,准确地记录由数据导入产生的索引更新操作。在完成批量导入后,根据准确记录的索引更新操作统一对索引表进行更新,可避免在批量导入的过程中引入索引脏数据,确保主表和索引表之间的数据一致性。

Description

索引生成方法、设备及存储介质
技术领域
本申请涉及数据库技术领域,尤其涉及一种索引生成方法、设备及存储介质。
背景技术
bulkload(批量装载)是导入大批量数据的高效方法,也是海量数据场景下常用的高效方案。在bulkload场景下,大批量的数据绕过了常规的数据写链路,直接导入数据库的底层文件系统。这种导入方式导致无法准确地更新数据的索引。因此,有待提出一种新的解决方案。
发明内容
本申请的多个方面提供一种索引生成方法、设备及存储介质,用以在批量导入场景下,准确地生成数据的索引。
本申请实施例提供一种索引生成方法,包括:响应数据导入操作,确定待导入数据库的文件系统的批量数据;针对所述批量数据中的任一待导入数据,在所述数据库中的主表中,查询是否存在与所述待导入数据对应的存量数据;若存在所述存量数据,则以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作;在所述批量数据完成导入后,根据所述第一索引更新操作,对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
本申请实施例还提供一种索引生成方法,其中,包括:响应数据导入操作,确定待导入数据库的文件系统的批量数据;所述批量数据包括:与所述数据库的主表中的任一存量数据对应的待导入数据;以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作;接收实时更新数据,所述实时更新数据与所述存量数据和所述待导入数据对应; 分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作;在所述批量数据完成导入后,对所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,得到合并的索引更新操作;根据所述合并的索引更新操作对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
本申请实施例还提供一种电子设备,其中,包括:存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本申请实施例提供的方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,其中,计算机程序被处理器执行时能够实现本申请实施例提供的方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,其中,当计算机程序被处理器执行时,致使处理器执行本申请实施例提供的方法中的步骤。
本申请实施例提供的索引生成方法中,在批量导入数据的过程中,可根据待导入数据回查数据库的主表,当回查到存量数据时,可以将存量数据作为待导入数据的更新对象,创建索引更新操作。在批量导入结束后,可根据为批量数据中的大量数据创建的索引更新操作,对主表对应的索引表进行更新,得到更新后的索引表。在这种方式中,可在批量导入(bulkload)场景下,通过在主表中回查待导入数据,准确地记录由数据导入产生的索引更新操作。在完成批量导入后,根据准确记录的索引更新操作统一对索引表进行更新,可避免在批量导入的过程中引入索引脏数据,确保主表和索引表之间的数据一致性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的索引生成方法的流程示意图;
图2为本申请一示例性实施例提供的索引更新操作的创建示意图;
图3为本申请另一示例性实施例提供的索引更新操作的创建示意图;
图4为本申请另一示例性实施例提供的索引生成方法的流程示意图;
图5为本申请另一示例性实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
bulkload(批量装载)是导入大批量数据的高效方法,也是海量数据场景下具有高生产可用性的高效数据导入方案。在bulkload场景下,大批量的数据可绕过常规的数据写链路,直接导入数据库的底层文件系统。这种导入方式使得数据库无法准确地更新数据的索引。
针对上述技术问题,在本申请一些实施例中,提供了一种解决方案,以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的索引生成方法的流程示意图,如图1所示,该方法包括:
步骤101、响应数据导入操作,确定待导入数据库的文件系统的批量数据。
步骤102、针对所述批量数据中的任一待导入数据,在所述数据库中的主表中,查询是否存在与所述待导入数据对应的存量数据。
步骤103、若存在所述存量数据,则以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作。
步骤104、在所述批量数据完成导入后,根据所述第一索引更新操作,对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
在本实施例的数据导入操作中,批量数据采用基于批量装载(bulkload)的数据导入方法导入数据库的底层文件系统。其中,bulkload是一种大批量的数据导入方法,在进行数据导入之前,可按照数据库的文件系统的底层数据结构,准备好待导入的全量数据。在导入数据时,可绕过常规的数据库写链路,将待导入的全量数据直接加载到文件系统内部。进而,被导入的全量数据能够在极短(通常为秒级)的时间内同时对用户可见。
其中,基于bulkload方法进行数据批量导入的方式,适用于基于LSM- Trees(LogStructured Merge Trees-日志结构的合并树)的数据库中,例如Apache HBase,ApacheCassandra,LevelDB等数据库。
由于数据导入的过程绕过了常规的数据库写链路,因此无法在执行导入操作的同时,实时地更新对应的索引表。基于本实施例,可在导入数据的过程中记录索引更新操作,并在批量数据完成导入后,根据记录的索引更新操作,对原有的索引表进行更新。
在本实施例中,数据导入操作可以是数据库系统触发的,也可以是用户触发的。本实施例不做限制。例如,在一种场景下,用户可设置数据导入的周期,以使得数据库周期性地自动触发批量数据的导入操作。又例如,在另一种场景下,用户可根据需求,手动触发将批量数据导入数据库的文件系统的操作。
响应数据导入操作,可确定待导入数据库的文件系统的批量数据。其中,数据库的文件系统,通常指的是数据库底层的磁盘文件系统。在存储与计算分离的架构中,该文件系统也可以是分布式文件系统。在基于SAN(Storage Area Network,存储区域网络)的数据库系统中,该底层的文件系统可实现为裸盘或者块设备层。将批量数据导入数据库的文件系统时,绕过了DB(data base,数据库)层,直接对存储层进行操作。
在导入批量数据的过程中,可根据每条待导入的数据,回查数据库的主表,以确定对索引表产生了何种更新操作。其中,数据库的主表,指的是用户的原始数据表,该主表采用用户定义的schema(模式)进行数据组织。其中,schema是数据库的组织和结构,schema中包含了schema对象,例如表、列、数据类型、视图、存储过程、关系、主键、外键等。
在本实施例中,将以批量数据中的任意一条待导入数据为例对创建索引更新操作的过程进行示例性说明。
针对批量数据中的任一待导入数据,可在数据库中的主表中,查询是否存在与该待导入数据对应的待更新的存量数据。其中,回查主表时,可以将待导入数据的主键作为查询对象,在主表中查询是否存在与该主键对应的存量数据。若存在与该主键对应的存量数据,则可认为该待导入数据用于对该存量数据进行更新。在后续将导入的数据与原始数据进行合并时,针对该主键,将采用后写入的键值更新之前写入的键值。即,采用该待导入数据替换该存量数据。若不存在与该主键对应的存量数据,则可认为该待导入数据为主表中新增的数据。
若存在与待导入数据对应的存量数据,则可将存量数据为待导入数据的更新对象,创建待导入数据对应的索引更新操作。该索引更新操作用于记录待导入数据引发的主表变化对索引表执行何种更新方式。例如,索引更新操作可包括:向索引表中插入新的索引数据,和/或,对索引表中原有的历史索引数据进行清理。其中,需要被清理掉的历史索引数据,又可称为索引脏数据。
基于bulkload的批量数据导入方法绕过了常规的数据库写链路,因此主表和索引表为异步更新,即,写主表时,并不实时对索引表进行更新。导入过程中记录下来的索引更新操作,可作为在批量导入之后对索引表进行更新的依据,从而实现主表与索引表之间的最终一致。
需要说明的是,为便于描述并与后续实施例记载的索引更新操作进行区分,在本实施例中,将以存量数据为待导入数据的更新对象创建的索引更新操作,描述为第一索引更新操作。该“第一”仅用于方便区分相同或者相似描述,并不对被描述对象的顺序、数量等构成任何限制。其中,索引更新操作可记录在数据库的操作日志中,以便于后续读取。
在导入批量数据的过程中,可对每条待导入数据执行上述回查的过程,直至批量数据导入完毕。
在批量数据完成导入后,可根据导入过程中创建的索引更新记录,对索引表进行更新。继续以前述记载的任一待导入数据为例,在批量数据完成导入后,可根据待导入数据的第一索引更新操作,对存量数据在索引表中的索引进行更新,得到更新后的索引。
在本实施例中,在批量导入数据的过程中,可根据待导入数据回查数据库的主表,当回查到存量数据时,可以将存量数据作为待导入数据的更新对象,创建索引更新操作。在批量导入结束后,可根据为批量数据中的大量数据创建的索引更新操作,对主表对应的索引表进行更新,得到更新后的索引表。在这种方式中,可在批量导入(bulkload)场景下,通过在主表中回查待导入数据,准确地记录由数据导入产生的索引更新操作。在完成批量导入后,根据准确记录的索引更新操作统一对索引表进行更新,可避免在批量导入的过程中引入索引脏数据,确保主表和索引表之间的数据一致性。
继续任意一条待导入数据为例。在上述实施例的基础上,在数据库中的主表中,若未查询到与该待导入数据对应的待更新的存量数据,则可确定该待导入的数据是新增的数据。此时,可创建在索引表中新增该待导入数据的索引的操作。在批量数据完成导入后,可根据预先创建的新增该待导入数据的索引的操作,在主表的索引中增加该待导入数据的索引。
也即是说,在批量导入数据的同时,可执行回查主表并生成索引更新操作的步骤。通过回查主表,可可判断待导入数据的导入类型。其中,根据待导入数据回查数据库的主表时,若回查到与待导入数据对应的待更新的存量数据,则可确定该待导入数据的导入类型为更新类型;其中,更新类型是指,对主表中原有的数据进行替换。若未回查到与待导入数据对应的待更新的存量数据,则可确定该待导入数据的导入类型为新增类型。导入类型不同时,可创建不同的索引更新操作,从而可准确地记录主表和索引之间的异步更新内容;同时,在这种实施方式中,可在导入批量数据的过程中同步记录索引更新操作,有利于在批量数据导入结束后,快速基于记录的索引更新操作对索引表进行更新,缩短主表和索引表之间的不一致窗口,满足用户对索引的查询需求。
本申请的上述以及下述各实施例提供的索引生成方法,可在导入批量数据的过程中,支持对数据库的实时更新操作。其中,实时更新是指,通过api(ApplicationProgramming Interface,应用程序编程接口)向主表中写入新增的数据或者对主表原有的数据进行更新。其中,实时更新的数据可以是通过api实时写入的被导入的数据。以下将进行示例性说明。
在一些可选的实施例中,在批量导入数据的过程中,数据库可接收实时写入的数据,该实时写入的数据可描述为实时更新数据。根据该实时更新数据,可对主表进行回查,以查询主表中是否存在与该实时更新数据对应存量数据。同时,可根据该实时更新数据,对待导入的批量数据进行回查,以查询主表中是否存在与该实时更新的数据对应的存量数据。上述对主表和批量数据进行回查的操作,可以将实时更新数据的主键作为查询对象,在主表以及批量数据中查询是否存在与实时更新的数据的主键对应的数据。
接下来,可分别以查询到的存量数据和待导入数据为该实时更新数据的更新对象,创建该实时更新数据的第二索引更新操作和第三索引更新操作。
其中,以该存量数据时,该实时更新数据的更新对象,创建该实时更新数据的第二索引更新操作是可从该索引表中确定该存量数据的索引,创建在该索引表中删除该存量数据的索引的操作以及在该索引表中新增该实时更新数据的索引的操作。
其中,以该待导入数据为该实时更新数据的更新对象,创建该实时更新数据的第二索引更新操作和第三索引更新操作时,可从该索引表中确定该存量数据的索引,创建在该索引表中删除该待导入数据的索引的操作以及在该索引表中新增该实时更新数据的索引的操作。
其中,在批量数据完成导入之前,第一索引更新操作以及第三索引更新操作处于用户不可见状态。即,可将第一索引更新操作以及第三索引更新操作视为索引更新过程中的过渡态,而非终态。批量数据未导入完成时,设置第一索引更新操作以及第三索引更新操作对用户不可见,可避免用户侧感知到主表与索引表出现不一致的现象,避免出现查询错误,提升用户使用体验。
相应地,在批量数据完成导入后,可对索引更新操作进行合并,以避免产生索引脏数据。
继续以批量导入数据中的任一待导入数据为例。根据第一索引更新操作,对存量数据在索引表中的索引进行更新时,可首先将该第一索引更新操作与该第二索引更新操作以及该第三索引更新操作进行合并,得到合并的索引更新操作。在该批量数据完成导入后,根据该合并的索引更新操作,对该存量数据在索引表中的索引进行更新,得到更新后的索引。
可选地,对第一索引更新操作、第二索引更新操作以及第三索引更新操作进行合并时,可从第一索引更新操作、第二索引更新操作以及第三索引更新操中,确定针对任一相同索引的多个索引操作;接下来,针对该多个索引操作中具有相同操作类型的索引操作,按照索引操作的时间戳,采用在后的索引操作覆盖在前的索引操作;针对该多个索引操作中具有相反操作类型的索引操作,按照索引操作的时间戳,对该相反操作类型的索引操作进行消除。操作类型包括:增加操作以及删除操作。其中,增加操作与删除操作为具有相反操作类型的操作。
基于合并后的索引操作,可对存量数据在索引表中的索引进行更新。
以下将结合附图以及具体的例子进行说明。
如图2所示,可获取主表在导入批量数据之前的快照(snapshot),作为s1,主表的索引为idx_s1。在批量导入之前,主表s1与索引idx_s1具有一致性。确定基于bulkload方法装载的批量数据的快照s2。其中,s2用于与主表s1进行合并,可得到主表的终态数据s3。
为更新索引,可为s2中的每一行数据回查s1,以判断是否发生了数据更新。根据回查的结果,可生成索引更新操作idx_s2。idx_s2包括:索引的写入操作以及索引脏数据的清理操作中的至少一种。
若导入数据的过程中,未接收到实时更新的数据,则可在批量导入完成后,将idx_s2与idx_s1进行合并,得到索引idx_s3。其中,终态数据s3以及终态索引idx_s3对用户可见。
当存在实时更新(realtime-updates,RU)流时,bulkload的流程如图3所示。
在不考虑待导入的批量数据s2的情况下,存在实时更新操作时,可根据实时更新数据ru对主表s1进行回查,并根据回查结果进行索引构建,生成对应的索引更新操作idx_s1'。存在待导入的批量数据s2时,可根据实时更新数据对s2进行回查,并再一次进行索引构建,生成对应的索引更新操作idx_s2'。其中,批量数据未导入完成之前,idx_s1,idx_s1'对用户可见,可描述为实时更新的索引,dx_s2'对用户不可见,可描述为补偿的索引数据。在批量数据导入完成后,dx_s2'对用户可见。在批量数据导入完成后,可将idx_s1,idx_s1',idx_s2'以及idx_s2进行合并,得到索引表的终态数据idx_s3。
以下将结合具体的例子进行说明。在以实施例中,采用key-value(键值对)的形式对数据进行描述,ts表示时间戳。
假设,待导入的批量数据中,存在任一待导入数据为s2:(1,c),ts = 10。s2的主键为1,根据s2的主键对主表进行回查时,回查到主表中与s2对应的存量数据s1:(1,a),ts =9。s1的索引为:idx_s1: [a,1,ts = 9]。以s1为更新对象时,可构建s2的索引更新操作idx_s2: [del(a,1),ts = 9,put (c,1),ts=10]。其中,del()表示删除函数,put()表示写入函数。
假设,接收到实时更新数据ru :(1,b),ts = 11。ru的主键为1,根据ru的主键对主表进行回查时,回查到主表中与ru对应的存量数据s1:(1,a),ts = 9。根据ru的主键对待导入的批量数据进行回查时,回查到批量数据中与ru对应的的待导入数据为s2:(1,c),ts =10。
以s1为更新对象时,可构建ru的索引更新操作idx_s1':[del(a,1),ts = 9,put(b,1),ts=11]。
以s2为更新对象时,可构建ru的索引更新操作idx_s2':[del(c,1),ts=10,put(b,1),ts=11]。
上述索引更新操作按照时间戳排列如下:
idx_s1: [a,1,ts = 9];
idx_s2: [del(a,1),ts = 9,put (c,1),ts=10];
idx_s1': [del(a,1),ts = 9,put(b,1),ts = 11];
idx_s2': [del(c,1),ts = 10,put (b,1),ts = 11];
在批量导入完成后,可对相同索引对应的多个索引更新操作进行合并。即,首先确定同一条索引对应的索引操作,并按照时间戳将同一条索引对应的相反的索引操作进行合并。
针对索引(a,1)而言,其对应的索引操作为[del(a,1),ts = 9]、[del(a,1),ts =9]。按照时间顺序对索引(a,1)的索引操作进行合并后,得到索引(a,1)对应的合并后的操作 [del(a,1),ts = 9]。
针对索引(c,1)而言,其对应的索引操作为[put (c,1),ts=10]、[del(c,1),ts =10],按照时间顺序对索引(c,1)的索引操作进行合并后时,上述两种操作类型相反的索引操作相互抵消,因此,索引(c,1)并后的操作为空操作。
针对索引(b,1)而言,其对应的索引操作为[put(b,1),ts = 11]、[put (b,1),ts= 11],按照时间顺序对索引(b,1)的索引操作进行合并后,得到索引(b,1)对应的合并后的操作 [put(b,1),ts = 11]。
综上,合并后的索引操作分别为:[del(a,1),ts = 9],[put(b,1),ts = 11]。按照时间戳对索引表进行修改时,可删除索引表中的索引idx_s1: [a,1,ts = 9],并新增索引[b,1,ts = 11]。更新后的索引为:idx_s3: [b,1,ts = 11]。
在这种实施方式中,在批量导入的场景下,将主表中的存量数据作为批量导入的数据的更新对象,创建索引更新操作。在批量导入未结束时,若存在实时更新数据,将主表中的存量数据以及批量数据分别作为实时更新数据的更新对象,创建索引更新操作。在批量数据的结束导入操作后,将不同数据生成的索引更新操作进行合并,可准确地获取批量导入以及实时更新数据的情况下对索引表的修改操作。基于这种方式,可在批量导入的同时,支持对数据库进行实时更新,同时,可准确记录批量导入以及实时更新产生的索引表变化,确保不引入索引脏数据,实现主表和索引表的一致性。
除前述实施例之外,本申请实施例还提供了一种支持实时更新的索引生成方法,以下将进行示例性说明。
图4为本申请一示例性实施例提供的索引生成方法的流程示意图,如图4所示,该方法包括:
步骤401、响应数据导入操作,确定待导入数据库的文件系统的批量数据;所述批量数据包括:与所述数据库的主表中的任一存量数据对应的待导入数据。
步骤402、以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作。
步骤403、接收实时更新数据,所述实时更新数据与所述存量数据和所述待导入数据对应。
步骤404、分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作。
步骤405、在所述批量数据完成导入后,对所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,得到合并的索引更新操作。
步骤406、根据所述合并的索引更新操作对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
可选地,以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作,包括:以所述存量数据为所述待导入数据的更新对象,创建在所述索引表中删除所述存量数据的索引的操作,以及在所述索引表中新增所述待导入数据的索引的操作。
可选地,分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作,包括:以所述存量数据为所述实时更新数据的更新对象,创建在所述索引表中删除所述存量数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作;以及,以所述待导入数据为所述实时更新数据的更新对象,创建在所述索引表中删除所述待导入数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作。
可选地,在所述批量数据完成导入后,对所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,得到合并的索引更新操作,得到所述存量数据的更新后的索引,包括:从所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操中,确定针对任一索引的多个索引操作;针对该多个索引操作中具有相同操作类型的索引操作,按照索引操作的时间戳,采用在后的索引操作覆盖在前的索引操作;针对该多个索引操作中具有相反操作类型的索引操作,按照索引操作的时间戳,对该相反操作类型的索引操作进行消除。
具体实施方式可参考前述实施例的记载,此处不再赘述。
在本实施例中,在批量导入的场景下,将主表中的存量数据作为批量导入的数据的更新对象,创建索引更新操作。在批量导入未结束时,若存在实时更新数据,将主表中的存量数据以及批量数据分别作为实时更新数据的更新对象,创建索引更新操作。在批量数据的结束导入操作后,将不同数据生成的索引更新操作进行合并,可准确地获取批量导入以及实时更新数据的情况下对索引表的修改操作。基于这种方式,可在批量导入的同时,支持对数据库进行实时更新,同时,可准确记录批量导入以及实时更新产生的索引表变化,确保不引入索引脏数据,实现主表和索引表的一致性。
应当理解,在本申请的上述以及下述各实施例中,以任一索引为例进行了示例性说明,在实际中,涉及更新操作的索引可以为多个,多个索引均可采用上述方法进行更新,不再一一进行赘述。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤404的执行主体可以为设备A;又比如,步骤401和402的执行主体可以为设备A,步骤403的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5示意了本申请一示例性实施例提供的电子设备的结构示意图,该电子设备适用于前述实施例提供的批量导入时的索引生成系统。如图5所示,该电子设备包括:存储器501、处理器502以及通信组件503。
存储器501,用于存储计算机程序,并可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
其中,存储器501可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器502,与存储器501耦合,用于执行存储器501中的计算机程序,以用于:响应数据导入操作,确定待导入数据库的文件系统的批量数据;针对所述批量数据中的任一待导入数据,在所述数据库中的主表中,查询是否存在与所述待导入数据对应的存量数据;若存在所述存量数据,则以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作;在所述批量数据完成导入后,根据所述第一索引更新操作,对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
进一步可选地,处理器502在以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作时,具体用于:从所述索引表中确定所述存量数据的索引;创建在所述索引表中删除所述存量数据的索引的操作,以及在所述索引表中新增所述待导入数据的索引的操作。
进一步可选地,处理器502在所述批量数据完成导入之前,还用于:接收所述数据库的实时更新数据;根据所述实时更新数据,对所述主表和所述批量数据进行回查,以从所述主表中确定与所述实时更新数据对应的待更新的所述存量数据,并从所述批量数据中确定与所述实时更新数据对应的所述待导入数据;分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作;相应地,处理器502在所述批量数据完成导入后,根据所述第一索引更新操作,对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引时,具体用于:将所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,得到合并的索引更新操作;在所述批量数据完成导入后,根据所述合并的索引更新操作,对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
进一步可选地,所述批量数据完成导入之前,所述第一索引更新操作以及所述第三索引更新操作处于用户不可见状态。
进一步可选地,处理器502在分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作时,具体用于:从所述索引表中确定所述存量数据的索引;创建在所述索引表中删除所述存量数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作;以及,创建在所述索引表中删除所述待导入数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作。
进一步可选地,处理器502在将所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并时,具体用于:从所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操中,确定任一相同索引对应的多个索引操作;针对该多个索引操作中具有相同操作类型的索引操作,按照索引操作的时间戳,采用在后的索引操作覆盖在前的索引操作;针对该多个索引操作中具有相反操作类型的索引操作,按照索引操作的时间戳,对该相反操作类型的索引操作进行消除。
进一步,如图5所示,该电子设备还包括:电源组件504等其它组件。图5中仅示意性给出部分组件,并不意味着电子设备只包括图5所示组件。
其中,通信组件503被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术和其他技术来实现。
其中,电源组件504,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本实施例,在本实施例中,在批量导入数据的过程中,可根据待导入数据回查数据库的主表,当回查到存量数据时,可以将存量数据作为待导入数据的更新对象,创建索引更新操作。在批量导入结束后,可根据为批量数据中的大量数据创建的索引更新操作,对主表对应的索引表进行更新,得到更新后的索引表。在这种方式中,可在批量导入(bulkload)场景下,通过在主表中回查待导入数据,准确地记录由数据导入产生的索引更新操作。在完成批量导入后,根据准确记录的索引更新操作统一对索引表进行更新,可避免在批量导入的过程中引入索引脏数据,确保主表和索引表之间的数据一致性。
图5所示的电子设备,除可按照前述实施例记载的方法执行对应功能之外,还可用于执行以下的批量导入时的索引生成逻辑,其中,处理器502可响应数据导入操作,确定待导入数据库的文件系统的批量数据;所述批量数据包括:与所述数据库的主表中的任一存量数据对应的待导入数据;以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作;接收实时更新数据,所述实时更新数据与所述存量数据和所述待导入数据对应;分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作;在所述批量数据完成导入后,对所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,得到合并的索引更新操作;根据所述合并的索引更新操作对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
进一步可选地,处理器502在以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作时,具体用于:创建在所述索引表中删除所述存量数据的索引的操作,以及在所述索引表中新增所述待导入数据的索引的操作。
进一步可选地,处理器502在分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作时,具体用于:创建在所述索引表中删除所述存量数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作;以及,创建在所述索引表中删除所述待导入数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作。
进一步可选地,处理器502在所述批量数据完成导入后,对所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,得到合并的索引更新操作,得到所述存量数据的更新后的索引时,具体用于:从所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操中,确定任一相同索引对应的多个索引操作;针对该多个索引操作中具有相同操作类型的索引操作,按照索引操作的时间戳,采用在后的索引操作覆盖在前的索引操作;针对该多个索引操作中具有相反操作类型的索引操作,按照索引操作的时间戳,对该相反操作类型的索引操作进行消除。
在本实施例中,在批量导入的场景下,将主表中的存量数据作为批量导入的数据的更新对象,创建索引更新操作。在批量导入未结束时,若存在实时更新数据,将主表中的存量数据以及批量数据分别作为实时更新数据的更新对象,创建索引更新操作。在批量数据的结束导入操作后,将不同数据生成的索引更新操作进行合并,可准确地获取批量导入以及实时更新数据的情况下对索引表的修改操作。基于这种方式,可在批量导入的同时,支持对数据库进行实时更新,同时,可准确记录批量导入以及实时更新产生的索引表变化,确保不引入索引脏数据,实现主表和索引表的一致性。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述实施例中可由服务器执行的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,其中,当计算机程序被处理器执行时,致使处理器实现上述实施例中可由服务器执行的各步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (13)

1.一种索引生成方法,其中,包括:
响应数据导入操作,确定待导入数据库的文件系统的批量数据;
针对所述批量数据中的任一待导入数据,在所述数据库中的主表中,查询是否存在与所述待导入数据对应的存量数据;
若存在所述存量数据,则以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作;
在所述批量数据完成导入后,根据所述第一索引更新操作,对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
2.根据权利要求1所述的方法,其中,以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作,包括:
从所述索引表中确定所述存量数据的索引;
创建在所述索引表中删除所述存量数据的索引的操作,以及在所述索引表中新增所述待导入数据的索引的操作。
3.根据权利要求1所述的方法,其中,在所述批量数据完成导入之前,还包括:
接收所述数据库的实时更新数据;
根据所述实时更新数据,对所述主表和所述批量数据进行回查,以从所述主表中确定与所述实时更新数据对应的待更新的所述存量数据,并从所述批量数据中确定与所述实时更新数据对应的所述待导入数据;
分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作;
在所述批量数据完成导入后,根据所述第一索引更新操作,对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引,包括:
将所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,得到合并的索引更新操作;
在所述批量数据完成导入后,根据所述合并的索引更新操作,对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
4.根据权利要求3所述的方法,其中,在所述批量数据完成导入之前,所述第一索引更新操作以及所述第三索引更新操作处于用户不可见状态。
5.根据权利要求4所述的方法,其中,分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作,包括:
从所述索引表中确定所述存量数据的索引;
创建在所述索引表中删除所述存量数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作;以及,
创建在所述索引表中删除所述待导入数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作。
6.根据权利要求4所述的方法,其中,将所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,包括:
从所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操中,确定任一相同索引对应的多个索引操作;
针对所述多个索引操作中具有相同操作类型的索引操作,按照索引操作的时间戳,采用在后的索引操作覆盖在前的索引操作;
针对所述多个索引操作中具有相反操作类型的索引操作,按照索引操作的时间戳,对所述相反操作类型的索引操作进行消除。
7.一种索引生成方法,其中,包括:
响应数据导入操作,确定待导入数据库的文件系统的批量数据;所述批量数据包括:与所述数据库的主表中的任一存量数据对应的待导入数据;
以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作;
接收实时更新数据,所述实时更新数据与所述存量数据和所述待导入数据对应;
分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作;
在所述批量数据完成导入后,对所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,得到合并的索引更新操作;
根据所述合并的索引更新操作对所述存量数据在索引表中的索引进行更新,得到所述存量数据的更新后的索引。
8.根据权利要求7所述的方法,其中,以所述存量数据为所述待导入数据的更新对象,创建所述待导入数据的第一索引更新操作,包括:
创建在所述索引表中删除所述存量数据的索引的操作,以及在所述索引表中新增所述待导入数据的索引的操作。
9.根据权利要求7所述的方法,其中,分别以所述存量数据和所述待导入数据为所述实时更新数据的更新对象,创建所述实时更新数据的第二索引更新操作和第三索引更新操作,包括:
创建在所述索引表中删除所述存量数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作;以及,
创建在所述索引表中删除所述待导入数据的索引的操作以及在所述索引表中新增所述实时更新数据的索引的操作。
10.根据权利要求9所述的方法,其中,在所述批量数据完成导入后,对所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操作进行合并,得到合并的索引更新操作,得到所述存量数据的更新后的索引,包括:
从所述第一索引更新操作、所述第二索引更新操作以及所述第三索引更新操中,确定任一相同索引对应的多个索引操作;
针对所述多个索引操作中具有相同操作类型的索引操作,按照索引操作的时间戳,采用在后的索引操作覆盖在前的索引操作;
针对所述多个索引操作中具有相反操作类型的索引操作,按照索引操作的时间戳,对所述相反操作类型的索引操作进行消除。
11.一种电子设备,其中,包括:存储器和处理器;
其中,所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令以用于:执行权利要求1-10任一项所述的方法中的步骤。
12.一种存储有计算机程序的计算机可读存储介质,其中,计算机程序被处理器执行时能够实现权利要求1-10任一项所述的方法中的步骤。
13.一种计算机程序产品,包括计算机程序/指令,其中,当计算机程序被处理器执行时,致使处理器实现权利要求1-10任一项所述方法中的步骤。
CN202110732508.0A 2021-06-30 2021-06-30 索引生成方法、设备及存储介质 Active CN113190563B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110732508.0A CN113190563B (zh) 2021-06-30 2021-06-30 索引生成方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110732508.0A CN113190563B (zh) 2021-06-30 2021-06-30 索引生成方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113190563A CN113190563A (zh) 2021-07-30
CN113190563B true CN113190563B (zh) 2021-11-26

Family

ID=76976738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110732508.0A Active CN113190563B (zh) 2021-06-30 2021-06-30 索引生成方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113190563B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118520146A (zh) * 2024-07-22 2024-08-20 支付宝(杭州)信息技术有限公司 图数据库的属性索引创建方法、装置、设备和存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958091B2 (en) * 2006-02-16 2011-06-07 Ingrian Networks, Inc. Method for fast bulk loading data into a database while bypassing exit routines
US7761445B2 (en) * 2006-12-15 2010-07-20 Teradata Us, Inc. Automated system for identifying and dropping marginal database indexes
US8893131B2 (en) * 2008-04-11 2014-11-18 Yahoo! Inc. System and/or method for bulk loading of records into an ordered distributed database
EP2144175B1 (en) * 2008-07-11 2016-09-28 Software AG Method for performing a bulk load into a database
US9600517B2 (en) * 2014-05-29 2017-03-21 Sybase, Inc. Convert command into a BULK load operation
US10296492B2 (en) * 2016-05-27 2019-05-21 Bank Of America Corporation Database bulk load tool
CN108304553B (zh) * 2018-02-01 2021-04-27 平安普惠企业管理有限公司 数据迁移方法、装置、计算机设备和存储介质
CN109800222B (zh) * 2018-12-11 2021-06-01 中国科学院信息工程研究所 一种HBase二级索引自适应优化方法和系统
CN111125216B (zh) * 2019-12-10 2024-03-12 中盈优创资讯科技有限公司 数据导入Phoenix的方法及装置
CN111694811B (zh) * 2020-04-01 2022-08-30 新华三大数据技术有限公司 一种批量数据入库方法及装置

Also Published As

Publication number Publication date
CN113190563A (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
CN112825069B (zh) 数据库数据的分析方法、设备、系统及存储介质
CN107977396B (zh) 一种KeyValue数据库的数据表的更新方法与表数据更新装置
CN113672627B (zh) Elasticsearch搜索引擎索引构建方法及装置
CN104281717B (zh) 一种建立海量id映射关系的方法
CN107092624B (zh) 数据存储方法、装置及系统
CN115292094B (zh) 数据恢复处理方法、装置、设备、存储介质和程序产品
CN113190563B (zh) 索引生成方法、设备及存储介质
CN107609011B (zh) 一种数据库记录的维护方法和装置
US20170132302A1 (en) Integrating co-deployed databases for data analytics
CN114996240A (zh) 数据表校验方法、装置、设备、存储介质及程序
CN111078719A (zh) 数据的恢复方法及装置、存储介质和处理器
CN112527839A (zh) 多源数据处理方法、系统、设备及存储介质
US8818947B2 (en) Landscape transformation replication server
CN107526816B (zh) 一种流式分发记录的保存方法、装置及电子设备
US10942912B1 (en) Chain logging using key-value data storage
CN114564501A (zh) 一种数据库数据存储、查询方法、装置、设备及介质
CN114356945A (zh) 数据处理方法、装置、计算机设备和存储介质
CN113419896A (zh) 数据恢复方法、装置、电子设备及计算机可读介质
CN110968587A (zh) 一种数据处理方法及装置
CN115544096B (zh) 数据查询方法、装置、计算机设备及存储介质
CN112579605B (zh) 一种数据存储方法、装置、存储介质及服务器
CN114297273A (zh) 一种数据抽取方法及装置
CN115759674A (zh) 一种基于特定生产模式的物资需求管理方法、设备及介质
CN118132562A (zh) 数据关联方法、装置、存储介质以及终端
CN117520314A (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