CN113918573A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN113918573A CN113918573A CN202111277396.0A CN202111277396A CN113918573A CN 113918573 A CN113918573 A CN 113918573A CN 202111277396 A CN202111277396 A CN 202111277396A CN 113918573 A CN113918573 A CN 113918573A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- tree
- target
- processed
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims description 27
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 5
- 238000005034 decoration Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供数据处理方法及装置,其中所述数据处理方法包括:获取待处理数据,以及所述待处理数据的数据类型;从预先建立的记录树中,确定所述数据类型对应的目标节点和关联节点,所述记录树根据不同数据类型间的父子关系建立,所述关联节点包括所述目标节点的父节点及兄弟节点;基于所述目标节点和所述关联节点,获得所述待处理数据的关联数据。通过本方案可以提高数据处理效率。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据处理方法。本申请同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着信息技术的发展,数据处理涉及的数据数量和数据类型均呈爆发式增长。为了提高从大量数据中确定目标数据的效率,通常先确定候选数据,再从候选数据中确定目标数据。特别是在检索和推荐等场景中,为了保证目标数据的丰富度和个性化以提高用户体验,需要额外获取与候选数据的数据类型不同、且与候选数据存在关联关系的关联数据。在此基础上,可以根据关联数据从候选数据中确定目标数据。例如,候选数据为达到指定关键字的商品标识,关联数据为店铺名称等等。
相关技术中,为了减少索引深度以提高数据处理效率,不同类型的数据通常对应有不同的索引。并且,为了保证目标数据的丰富度和个性化,上述关联数据的种类往往为多个。因此,需要利用不同类型的索引分别进行关联数据的确定,需要多次处理索引,导致数据处理的次数增加,数据处理效率降低。
发明内容
有鉴于此,本申请实施例提供了一种数据处理方法。本申请同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的数据处理效率降低的问题。
根据本申请实施例的第一方面,提供了一种数据处理方法,包括:
获取待处理数据,以及所述待处理数据的数据类型;
从预先建立的记录树中,确定所述数据类型对应的目标节点和关联节点,所述记录树根据不同数据类型间的父子关系建立,所述关联节点包括所述目标节点的父节点及兄弟节点;
基于所述目标节点和所述关联节点,获得所述待处理数据的关联数据。
根据本申请实施例的第二方面,提供了一种数据处理装置,包括:
获取模块,被配置为获取待处理数据,以及所述待处理数据的数据类型;
节点确定模块,被配置为从预先建立的记录树中,确定所述数据类型对应的目标节点和关联节点,所述记录树根据不同数据类型间的父子关系建立,所述关联节点包括所述目标节点的父节点及兄弟节点;
关联数据确定模块,被配置为基于所述目标节点和所述关联节点,获得所述待处理数据的关联数据。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述数据处理方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述数据处理方法的步骤。
本申请一实施例实现了获取待处理数据,以及待处理数据的数据类型;从预先建立的记录树中,确定该数据类型对应的目标节点和关联节点,基于目标节点和关联节点,获得待处理数据的关联数据。其中,记录树根据不同数据的数据类型间的父子关系建立,关联节点包括目标节点的父节点及兄弟节点。因此,基于目标节点和关联节点,获得的数据与待处理数据为关联关系、且与待处理数据的数据类型不同,因此,可以作为待处理数据的关联数据。这样,相当于利用不同数据类型之间的父子关系对一个对象:记录树,进行一次处理即可得到关联数据,无需对不同数据类型对应的多个对象:不同索引,分别进行多次处理。因此,本方案可以减少关联数据的确定中数据的处理次数,提高数据处理效率。
附图说明
图1是本申请一实施例提供的一种数据处理方法的流程图;
图2是本申请一实施例提供的一种数据处理方法中,记录树的示例图;
图3是本申请一实施例提供的一种数据处理方法中,记录树中数据之间关系的示例图;
图4是本申请另一实施例提供的一种数据处理方法的流程图;
图5是本申请另一实施例提供的一种数据处理方法中,记录树中存储的数据表的示例图;
图6是本申请一实施例提供的一种数据处理装置的结构示意图;
图7是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
结构化数据:指严格遵守数据格式Schema定义及长度定义的数据。结构化数据易于托管在内存池进行管理。
Slab(板式)内存分配:一种可以高效的支持小块的内存申请和管理的技术。在本申请中用于存储数据中的变长数据也就是字段(fields)。
检索Trigger(触发):指对检索的初步处理:基于查询语句或者基础的定向条件,从对应的稿件库中检索得到一定量的结果集合,供后续的多轮筛选。
在本申请中,提供了一种数据处理方法,本申请同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种数据处理方法的流程图,具体包括以下步骤:
S102,获取待处理数据,以及待处理数据的数据类型。
其中,待处理数据可以为需要获取关联数据的数据,例如,达到指定条件的候选数据。获取待处理数据的方式可以是多种的。示例性的,可以直接接收待处理数据;或者,通过检索Trigger,查询达到指定查询(query)信息或者目标条件(targeting criteria)的数据集合,作为待处理数据。例如,装扮商城推荐的场景中,可以基于地域、性别、年龄等查询信息,从装扮套餐数据中获得满足该查询信息的候选套餐数据,候选套餐数据即待处理数据。在此基础上,为了提高所推荐装扮套餐的丰富度和个性化,需要获取候选套餐数据的关联数据:创作者数据、装扮组件、装扮标签及控制策略等数据。
并且,数据类型可以根据数据所属的业务流程阶段、数据所表征的物理含义等标准的差异进行划分,可以根据具体需求设置,本实施例对此不作限制。例如,根据数据所属的业务流程阶段的差异进行划分,则上述装扮套餐数据的数据类型为业务输出类型,创作者和装扮标签的数据类型均为数据属性类型,控制策略的数据类型为业务调度类型,装扮组件的数据类型为调度工具类型。获取待处理数据的数据类型的方式可以是多种的。示例性的,待处理数据包含数据类型的情况下,可以提取待处理数据中的数据类型;或者,确定待处理数据的数据标识,从预存的数据标识与数据类型的对应关系中,查找待处理数据的数据标识对应的数据类型,得到待处理数据的数据类型。
S104,从预先建立的记录树中,确定待处理数据的数据类型对应的目标节点和关联节点,记录树根据不同数据类型间的父子关系建立,关联节点包括目标节点的父节点及兄弟节点。
在具体应用中,预先建立的记录树根据不同数据类型间的父子关系建立,因此,可以根据不同数据类型间的父子关系,将不同数据存储至记录树的相应节点中。例如,商铺信息的数据类型和商品信息的数据类型为父子关系,则商铺信息存储至父节点中,商品信息存储至该父节点的子节点中。并且,记录树的节点中数据的存储形式可以是多种的。示例性的,数据可以直接存储在记录树的节点中,或者,数据可以以结构化数据的形式,例如数据表的形式存储在记录树的节点中。为了便于理解和合理布局,后续以可选实施例的形式对第二种示例情况进行具体说明。其中,目标节点的兄弟节点是指与目标节点具有同一个父节点的节点。
并且,从预先建立的记录树中,确定待处理数据的数据类型对应的目标节点和关联节点,可以是多种的。示例性的,若待处理数据存储在记录树中,则可以对记录树和待处理数据进行匹配,将匹配成功的节点确定为待处理数据额数据类型对应的目标节点,将目标节点的父节点和兄弟节点确定为上述关联节点。或者,示例性的,若待处理数据未存储在记录树中、且记录树的节点标记有相应的数据类型,则可以对待处理数据的数据类型和记录树进行匹配,将匹配成功的节点确定为待处理数据额数据类型对应的目标节点,将目标节点的父节点和兄弟节点确定为上述关联节点。
任何可以从预先建立的记录树中,确定待处理数据的数据类型对应的目标节点和关联节点的方式,均可用于本发明,本实施例对此不作限制。
S106,基于目标节点和关联节点,获得待处理数据的关联数据。
在具体应用中,上述记录树根据不同数据类型之间的父子关系建立,因此,父数据类型的数据为父数据,子数据类型的数据为子数据。并且,基于目标节点和关联节点,获得待处理数据的关联数据的方式可以是多种的。示例性的,若待处理数据未存储在记录树中,则可以根据目标节点和关联节点中存储的数据,获得待处理数据的关联数据。或者,示例性的,若待处理数据存储在记录树中,则可以根据目标节点和关联节点中存储的数据,获得与待处理数据不同的数据,作为上述关联数据。其中,任一节点中存储数据本身,则直接读取节点中的数据作为所获取的数据。或者,任一节点中存储数据的索引,则根据该索引获取数据。并且,若上述父数据与子数据之间为一对一,且节点中存储数据本身,则子节点中的数据即为父节点中数据的关联数据。这样,在记录树不存储待处理数据的情况下,可以直接将目标节点和关联节点中存储的数据确定为关联数据。为了便于理解和合理布局,对于存储索引的情况以及父数据与子数据之间为一对多的情况,后续以可选实施例的形式进行具体说明。
另外,在一种情况中,若上述不同数据类型的数据属于同一业务,并且,记录树根据不同数据类型间的父子关系建立。例如,装扮套装推荐业务对应一个记录树、商品搜索业务对应一个记录树、视频推荐业务对应一个记录树等等。这样,对于任一记录树,基于该记录树中各节点确定的数据之间存在关联关系,因此,为了进一步提高数据的丰富度和个性化的准确度,本步骤还可以在目标节点和关联节点的基础上,扩展更多用于确定关联数据的节点。具体如何扩展节点,可以按照对关联数据的具体需求进行设置,本实施例对此不作限制。下面以示例性的形式说明可以扩展的节点。
示例性的,用于确定关联数据的节点还可以包括:目标节点的子节点、目标节点的兄弟节点的子节点、目标节点的父节点的父节点等等节点中至少一种。并且,上述各扩展的节点同样符合上述父子关系。因此,确定关联数据的方式与本申请实施例中提供的方式类似,区别在于具体的节点不同。对此,按照上述父子关系在本申请实施例提供的步骤中代入具体节点进行替换即可。对于相同内容,可见本申请实施例提供的数据处理方法,在此不再赘述。
本申请一实施例中,记录树根据不同数据的数据类型间的父子关系建立,关联节点包括目标节点的父节点及兄弟节点。因此,基于目标节点和关联节点,获得的数据与待处理数据为关联关系、且与待处理数据的数据类型不同,因此,可以作为待处理数据的关联数据。这样,相当于利用不同数据类型之间的父子关系对一个对象:记录树,进行一次处理即可得到关联数据,无需对不同数据类型对应的多个对象:不同索引,分别进行多次处理。因此,本方案可以减少关联数据的确定中数据的处理次数,提高数据处理效率。
在一种可选的实施方式中,在上述获取待处理数据,以及待处理数据的数据类型之前,本申请实施例提供的数据处理方法,还可以包括如下步骤:
针对各种数据类型,将具有该数据类型的多个数据存储为数据表;
根据不同数据类型间的父子关系,将多个数据表分别存储至记录树的对应节点中。
在具体应用中,针对各种数据类型,将具有该数据类型的多个数据存储为数据表的具体方式,可以与关系型数据库表的设计类似。具体的,可以根据数据处理所针对的业务中,各种数据类型的数据抽象定义出不同的数据表。其中,每个数据表至多有一个父数据表,无数据父表的为根表,每个数据表可以有多张子表,不同数据表之间形成树的结构。并且,各数据表可以定义该数据表自身的模式(Schema),表中存储的记录可以为结构化数据。并且,为了进一步提高数据处理效率,上述数据表可以为能够存储在内存中的数据表,这样记录树可以加载至内存中,可以有效适用于检索等对数据处理效率存在需求的场景。并且,为了进一步提高数据处理效率,可以将所存储数据中字段长度固定的定长数据存储在内存池中,将字段长度不固定的变长数据的索引存储在内存池中。因此,在定义数据表的过程中,还可以对关于上述定长数据和变长数据的字段进行定义。
示例性的,可以采用如下代码定义上述数据表:
其中,为数据表设置标识table_id,为数据表中的父数据表设置标识parent_table_id,为数据表中的子数据表设置标识children_table_ids。另外,设置子数据表的大小children_table_size,定长数据的字段定义Schema<PayloadType>schema,以及设置存储定长数据的内存池RecordPool<PayloadType>record_pool。
示例性的,如图2本申请一实施例提供的一种数据处理方法中,记录树的示例图所示;数据表TableA所处节点为根节点,也是父节点,TableA为根表,可以存在多个子表:数据表TableA至数据表TableD,分别存储在根节点的节点中。类似的,数据表TableB存在多个子表:数据表Table E至数据表TableF,分别存储在数据表TableB所处节点的子节点中。数据表TableC的子表为数据表TableG,存储在数据表TableC所处节点的子节点中。这样,通过本实施例可以将各种数据类型的数据表,根据不同数据类型间的父子关系,构建为多层级结构的一棵树,也就是记录树。
本实施例通过将同一数据类型的多个数据存储为数据表,可以保证所存储的数据为结构化数据,有利于数据处理的便捷性。并且,数据表中存储多个数据,可以进一步提高数据的丰富度。
在一种可选的实施方式中,上述数据表还存储有子数据的索引值;关联数据包括目标父数据及目标子数据;
相应的,上述基于目标节点和关联节点,获得待处理数据的关联数据,具体可以包括如下步骤:
获取待处理数据的目标索引值,根据目标索引值,从目标节点的父节点存储的数据表中,获得待处理数据的目标父数据及目标父数据的子数据的索引值;
根据目标父数据的子数据的索引值,从目标节点及目标节点的兄弟节点存储的数据表中,获得目标子数据。
在具体应用中,记录树的节点存储数据表的情况下,目标节点和关联节点中均存在多个数据。并且,为了进一步提高数据的丰富度,父数据和子数据为一对多的关系。这样,关联数据可以包括目标父数据:目标节点的父节点中的目标数据;以及目标子数据;目标节点中的目标数据及目标节点的兄弟节点中的目标数据。其中,获取待处理数据的目标索引值的方式具体可以是多种的。示例性的,若待处理数据存储在记录树中,则可以将待处理数据输入预设的索引值模型,得到待处理数据的目标索引值。预设的索引值模型可以指定散列算法、指针与数据标识的对应关系表等等。或者,若待处理数据未存储在记录树中,则可以将目标节点存储的数据表中指定数据的索引值,确定为目标索引值,这都是合理的。
并且,上述数据表还可以存储有子数据的索引值,以用于确定父数据的子数据。其中,索引值用于表明数据的存储位置,具体可以为散列值、指针、数据标识等等。因此,本实施例可以兼顾数据的丰富度和准确度。并且,该所存储的子数据的索引值可以至少一个子数据的索引值,相应的,本实施例中根据目标索引值,从目标节点的父节点存储的数据表中,获得待处理数据的目标父数据及目标父数据的子数据的索引值具体可以是多种的。下面以可选实施例的形式进行具体说明。
在一种可选的实施方式中,上述目标父数据存在多个子数据;
相应的,上述根据目标索引值,从目标节点的父节点存储的数据表中,获得待处理数据的目标父数据,具体可以包括如下步骤:
根据目标索引值,确定与待处理数据具有相同数据类型的兄弟数据的索引值;
对目标节点的父节点的数据表存储的索引值与指定索引值进行匹配,确定匹配成功的数据为待处理数据的目标父数据,读取目标父数据的子数据的索引值,指定索引值为目标索引值和兄弟数据的索引值中的至少一个。
在具体应用中,父数据所在行中可以存储父数据的至少一个子数据的索引值。对此,若在构建记录树的过程中,对数据表的定义中已分配了子数据表的内存、数目以及子数据表中每一行记录占用的存储空间大小,那么,子数据表中的子记录也就是子数据的数目是不定的。因此,为了进一步节省存储空间,以及提高效率,父记录也就是父数据中可以只存储各子数据表中的指定子数据,例如第一个子数据,该父数据的除指定子数据以外的其他子数据,可以通过与指定子数据对应的兄弟链来遍历访问。这样,本实施例中指定索引值:目标索引值和兄弟数据的索引值中的至少一个,即为指定子数据的索引值。
其中,兄弟链可以为子数据之间的兄弟关系,或者,在子数据表中以链式结构存储兄弟数据。示例性的,如图3本申请一实施例提供的一种数据处理方法中,记录树中数据之间关系的示例图;表A中存储父数据0,父数据0在子数据表B中的第一个子数据为0,在子数据表B中的其他子记录如子数据1和子数据2,通过子数据表B中内部的兄弟链进行维护。类似的,表A的父数据0在子数据表C中存在子数据0和子数据1。子数据都指向该子数据唯一的父数据,如子数据表B中的数据0和子数据表E的数据0之间为父子关系。这样,形成了多级的表间父子关系。
在一种可选的实施方式中,任一数据类型的数据可以包括定长数据和变长数据;
相应的,在上述获取待处理数据,以及待处理数据的数据类型之前,本申请实施例提供的方法还可以包括如下步骤:
针对每种数据类型,将该数据类型的定长数据、及该数据类型的变长数据的索引值存储至该数据类型的数据表,并将该数据类型的变长数据存储至第一存储池;
基于各数据类型之间的父子关系,将各数据类型的数据表构建为记录树;从存储空间中划分固定的第二存储池,将记录树存储至第二存储池。
其中,定长数据指字段长度固定的数据,例如,整型、浮点数据、指定长度的字符数组等等。变长数据指字段长度可变的数据,例如,字段长度不定的字符串、map、lists等。在具体应用中,第二存储池可以为内存池中的存储空间,例如Payload,第一存储池可以为通过SlabMemoryPool确定的存储空间。为了便于理解和合理布局,后续结合记录树的更新,对实现本实施例中存储空间划分的具体代码,以及上述实施例中数据表的具体结构进行示例性说明。
本实施例通过对定长数据和变长数据进行不同的存储,可以减少为数据划分存储空间所进行的多次处理,从而进一步提高数据处理的效率。
为了便于理解,下面以示例性说明的形式,对上述部分实施例进行整合描述。示例性的,如图4本申请另一实施例提供的一种数据处理方法的流程图所示,数据处理方法可以包括如下步骤:
S402,获取待处理数据,以及待处理数据的数据类型。
S404,从预先建立的记录树中,确定待处理数据的数据类型对应的目标节点和关联节点。
S406,获取待处理数据的目标索引值,根据目标索引值,确定与待处理数据具有相同数据类型的兄弟数据的索引值。
S408,对目标节点的父节点的数据表存储的索引值与指定索引值进行匹配,确定匹配成功的数据为待处理数据的目标父数据,指定索引值为目标索引值和兄弟数据的索引值中的至少一个。
S410,根据目标父数据的子数据的索引值,从目标节点及目标节点的兄弟节点存储的数据表中,获得目标子数据。
S412,将目标父数据及目标子数据确定为关联数据。
本实施例中各步骤与上述图1实施例及可选实施例中描述相同的步骤为同一步骤,具体详见上述图1实施例及可选实施例的说明。对于在线检索等内存资源密集型的应用场景,通常需要把关联数据加载进内存,关联数据的加载增加了对内存资源的占用,容易影响数据处理效率。对此,本实施例以子数据的索引值的形式,可以相对减少加载关联数据造成的内存资源占用,进一步提高数据处理效率。
并且,在一种情况中,采用空间换时间的方式:通过拼接待处理数据与关联数据,来减少对关联数据的查找耗时。但是,不同数据类型的数据往往存在不同的更新频率,上述拼接容易导致频繁进行数据拼接,造成资源浪费。而本实施例通过将不同数据类型的数据存储至不同的数据表或者记录树的不同节点中,可以针对不同数据类型,独立更新该数据类型的数据,从而满足不同的更新需求,减少资源浪费。并且,上述记录树中可以针对节点设置模式以存储结构化数据,因此,通过本申请实施例提供的数据处理方法,无需对获取的关联数据进行结构化的改造,进一步提高数据处理效率。
在具体应用中,本申请实施例提供的数据方法还可以包括对当前记录树的更新,并且,该更新可以支持根数据表的行级锁而非整个记录树的全局锁进行数据更新,也可以支持记录树的双缓存(buffer)替换形式的无锁化更新。下面以可选实施例的形式进行具体说明。
在一种可选的实施方式中,本申请实施例提供的数据处理方法,还可以包括如下步骤:
接收针对当前记录树的更新信息;
根据更新信息,利用当前记录树的树形结构,对当前记录树进行更新。
其中,当前记录树的树形结构可以支持根节点的读写锁而非整个记录树的全局锁,也可以支持记录树的双缓存(buffer)替换形式的无锁化更新,因此,可以提高更新效率。并且,本申请中还可以结合当前记录树的树形结构,以双向链表的形式对当前记录树的占用状态进行记录以用于当前记录树的更新。下面以可选实施例的形式进行具体说明。
在一种可选的实施方式中,上述根据更新信息,利用当前记录树的树形结构,对当前记录树进行更新,具体可以包括如下步骤:
复制当前记录树,根据更新信息,对所复制的记录树进行更新,得到更新记录树,利用更新记录树替换当前记录树;
在接收到针对当前记录树的读写请求的情况下,确定上述对所复制的记录树进行更新是否已完成,若未完成,则对当前记录树执行读写请求。
在具体应用中,可以利用记录树的版本信息(version)执行本实施例。其中,利用更新记录树替换当前记录树具体可以为删除当前记录树,并使用更新记录树。示例性的,当前记录树的版本信息为版本1.0,所复制的记录树的版本信息为版本1.1。在对版本1.1的记录树已完成更新的情况下,删除版本1.0的记录树,也就是当前版本的记录树的延迟释放。这样,若在数据更新的过程中,也就是对所复制的记录树进行更新未完成的情况下,接收到针对版本1.0的记录树的读写请求,则可以直接对版本1.0的记录树执行读写操作。相应的,若对版本1.1的记录树已完成更新,则对版本1.1的记录树执行读写请求。在一种情况中,若上述更新为删除,且读写请求针对的数据为所删除的数据,则可以等待版本1.1的记录树完成更新。
这样,本实施例即为无锁化更新,通过新版本的记录树的更新,以及当前版本的记录树的延迟释放,兼顾数据读写的正确性和效率。
在一种可选的实施方式中,上述根据更新信息,利用当前记录树的树形结构,对当前记录树进行更新,具体可以包括如下步骤:
对当前记录树的根节点设置读写锁;
根据更新信息,对当前记录树进行更新,在对当前记录树进行的更新完成的情况下,解除读写锁。
本实施例即通过设置根节点的读写锁进行更新。在具体应用中,若记录树的节点中存储数据表,则根节点的读写锁为根数据表的行级锁。相应的,对当前记录树的根节点设置读写锁,具体可以包括:针对当前记录树的根节点存储的数据表的每一行,设置读写锁。读写锁是指多个线程发出针对同一数据的读请求,多个线程可以同时执行;多个线程发出针对同一数据的写请求,多个线程只能串行执行。此外,针对同一数据,若发出读请求的线程正在执行,则发出写请求的线程必须等待发出读请求的线程执行完才能开始执行;若发出写请求的线程正在执行,则发出读请求的线程也必须等待前者执行完后才能开始执行。这样,可以保证多线程场景下,数据读取的正确性。
另外,若根据更新信息确定更新为修改所存储数据的字段,则可以采用上述设置读写锁的方式,在对应内存中原地更新(in-place)。若根据更新信息确定更新为新增或者删除数据,则可以采用上述复制记录树的更新方式。这样,可以均衡数据复制成本和数据读取成本。
在一种可选的实施方式中,上述更新信息可以包括:待新增数据及待新增数据的数据类型;
并且,在上述获取待处理数据,以及待处理数据的数据类型之前,本申请实施例提供的数据处理方法,还可以包括如下步骤:
针对当前记录树中数据表的占用状态,创建用于记录节点空闲状态的空闲链表和用于记录节点占用状态的占用链表;
相应的,上述根据更新信息,利用当前记录树的树形结构,对当前记录树进行更新,具体可以包括如下步骤:
根据待新增数据的数据类型及空闲链表,确定待新增数据的存储位置,将待新增数据存储至当前记录树所存储数据表的待新增数据的存储位置;
从空闲链表中删除待新增数据的存储位置对应的空闲状态记录,在占用链表中增加待新增数据的存储位置对应的占用状态记录。
在具体应用中,空闲链表和占用链表均可为双向链表。双向链表是指链表中的数据查找可以从前往后,或者从后往前。并且,上述双向链表的链表类型即可表征占用状态和空闲状态,例如,空闲链表的链表类型为“空闲”,表征空闲状态,占用链表的链表类型为“占用”,表征占用状态。具体的,双向链表可以包含链表类型标识,如标识“free”为“空闲”类型,标识“used”为“占用”类型。这样,空闲链表和占用链表中存储记录树的各数据表中每一行的位置信息即可。其中,每一行的位置信息具体可以为每一行中数据的标识或者索引值,用于指向该数据的存储位置。在此基础上,待新增数据的存储位置即当前记录树中数据表所处节点的位置信息,以及该数据表中用于存储待新增数据的行的位置信息。
在上述基础上,本实施例的根据待新增数据的数据类型及空闲链表,确定待新增数据的存储位置,具体可以包括:根据待新增数据的数据类型,确定记录树中待新增数据的存储节点,从空闲链表中查找该存储节点存储的数据表的空闲行的位置信息,得到待新增数据的存储位置。并且,从空闲链表中删除待新增数据的存储位置对应的空闲状态记录,在占用链表中增加待新增数据的存储位置对应的占用状态记录,可以包括:从空闲链表中删除待新增数据的存储位置,在占用链表中增加待新增数据的存储位置。这样,存储位置结合链表类型即可实现占用状态信息的作用。
另外,占用链表和空闲链表中记录所有数据表中行的位置,及该位置的占用状态信息。例如,若某一行被占用,则占用链表中该行对应的占用状态信息为1,若某一行空闲,则空闲链表中该行对应的空闲状态信息为1。这样,进行状态信息的删除或增加时,直接处理相应链表中的状态信息即可。
本实施例可以通过空闲链表和占用链表,在无需重新分配数据表占用存储空间的情况下,进行数据的新增,进一步提高数据处理的效率。
在一种可选的实施方式中,上述更新信息可以包括:待删除数据及待删除数据的数据类型;
相应的,上述根据更新信息,利用当前记录树的树形结构,对当前记录树进行更新,具体可以包括如下步骤:
根据待删除数据的数据类型及占用链表,确定待删除数据的存储位置,从预先建立的记录树中数据表的存储位置删除待删除数据;
从占用链表中删除待删除数据的存储位置对应的占用状态记录,在空闲链表中增加待删除数据的存储位置对应的空闲状态记录。
本实施例的各步骤与上述关于在记录树中增加待新增数据的实施例类似,区别在于所处理的数据为待删除数据,以及所针对的链表为占用链表。对于相同部分可以参见上述实施例中确定待新增数据的存储位置的步骤,在此不再赘述。本实施例通过占用链表和空闲链表对记录树中的数据进行准确删除,并且,可以将已删除数据的存储空间直接用于存储新增数据,无需重复划分新的存储空间,因此,可以进一步提高数据处理效率。
示例性的,每个数据表可以通过上述占用链表(free_list)和空闲链表(used_list)维护该数据表也就是管理该数据表的存储空间,例如内存。在此基础上,可以在构建记录树的过程中一次划分完整内存,无需多次进行内存划分也就是内存申请。具体的,可以通过如下代码设置用于管理存储空间的双向链表:
其中,RecordPool代表存储双向链表的内存池,双向链表的结构设置,包括:空闲链表的头free_list_head,空闲链表的尾free_list_tail,占用链表的头used_list_head,占用链表的尾used_list_tail。Record<PayloadType>records[MAX_RECORD_LIMIT_OF_TABLE]代表双向链表所管理的数据表的内存分配。这样,在构建记录树的过程中即可完成对内存的完整分配,每一行记录所需要占用的内存大小是确定的,子数据表的数目已在表定义中,无需多次分配内存。并且,Payload部分可以存储数据表的行记录中可以作为关联数据的数据,Payload中数据的长度可以根据数据表中的Schema信息确定。
并且,结合上述设置,双向链表中的数据具体可以按照如下代码规定的结构进行存储:
其中,针对数据表中每一行,Record包括metadata部分和payload部分,metadata部分存储该行的占用状态和维护上述双向链表中存储的数据。例如,占用链表中存储:前一行中数据的索引值prev_used_idx和下一行中数据的索引值next_used_idx。空闲链表中存储:前一行中数据的索引值prev_free_idx和下一行中数据的索引值next_free_idx。并且,metadata部分还可以存储数据间的层级关系数据,包括:父数据的索引值parent_record_idx,兄弟链中记录的兄弟关系:前一个兄弟数据的索引值prev_brother_idx和下一个兄弟数据的索引值next_brother_idx,以及各子数据表中第一个子记录的索引值的first_child_idx。
在上述基础上,不同的数据表之间有级联关系,不同数据表之间的记录也就是存储的数据之间也会有层级关系,一个数据表中的多个数据可以同时为该数据表的父数据表中一个数据也就是父数据的子数据,即父数据和子数据可以是一对多的关系,父数据在某一子数据表下的多个子数据称为兄弟数据,也就是数据类型相同的兄弟数据。示例性的,如图5本申请另一实施例提供的一种数据处理方法中,记录树中存储的数据表的示例图所示。其中,为了便于表述,前一个兄弟数据的索引值prev_brother_idx未在图中示出,数据表A为父数据表存储在根节点中,父数据PayloadA0不存在父数据及兄弟数据。因此,数据表A的第0行中存储:父节点的索引值parent_record_-1,下一个兄弟数据的索引值next_brother_-1,数据表A的子数据表即数据表B中第一个子记录的索引值first_child_[B]_0,数据表A的子数据表即数据表C中第一个子记录的索引值first_child_[C]_0。类似的,在数据表B和数据表C中每一行内按照上述方式进行数据存储。图5中,n、g、k分别为数据表A、数据表B和数据表C的行数。
另外,在一种情况中,为了进一步提高数据的丰富度和个性化,可以针对不同业务创建该业务对应的记录树。例如,装扮套装推荐业务对应的记录树、商品搜索业务对应的记录树、视频推荐业务对应的记录树等等。这样,在获取到待推荐数据的情况下,可以获取待推荐数据所属的业务标识,并获取该业务标识对应的记录树。在此基础上,可以基于该记录树,确定待推荐数据的关联数据。并且,基于该记录树,确定待推荐数据的关联数据,具体可以包括本申请实施例提供的数据处理方式的各步骤;或者,利用指定的筛选条件从记录树中确定待推荐数据的关联数据;或者,将记录树中存储的数据确定为待推荐数据的关联数据,这都是合理的。
与上述方法实施例相对应,本申请还提供了数据处理装置实施例,图6示出了本申请一实施例提供的一种数据处理装置的结构示意图。如图6所示,该装置包括:
获取模块602,被配置为获取待处理数据,以及所述待处理数据的数据类型;
节点确定模块604,被配置为从预先建立的记录树中,确定所述数据类型对应的目标节点和关联节点,所述记录树根据不同数据类型间的父子关系建立,所述关联节点包括所述目标节点的父节点及兄弟节点;
关联数据确定模块606,被配置为基于所述目标节点和所述关联节点,获得所述待处理数据的关联数据。
本申请一实施例中,记录树根据不同数据的数据类型间的父子关系建立,关联节点包括目标节点的父节点及兄弟节点。因此,基于目标节点和关联节点,获得的数据与待处理数据为关联关系、且与待处理数据的数据类型不同,因此,可以作为待处理数据的关联数据。这样,相当于利用不同数据类型之间的父子关系对一个对象:记录树,进行一次处理即可得到关联数据,无需对不同数据类型对应的多个对象:不同索引,分别进行多次处理。因此,本方案可以减少关联数据的确定中数据的处理次数,提高数据处理效率。
在一种可选的实施方式中,所述装置还包括存储模块,被配置为:
针对各种数据类型,将具有该数据类型的多个数据存储为数据表;
根据不同数据类型间的父子关系,将多个所述数据表分别存储至所述记录树的对应节点中。
在一种可选的实施方式中,所述数据表还存储有子数据的索引值;所述关联数据包括目标父数据及目标子数据;
所述关联数据确定模块606,进一步被配置为:
获取所述待处理数据的目标索引值,根据所述目标索引值,从所述目标节点的父节点存储的数据表中,获得所述待处理数据的目标父数据及所述目标父数据的子数据的索引值;
根据所述目标父数据的子数据的索引值,从所述目标节点及所述目标节点的兄弟节点存储的数据表中,获得所述目标子数据。
在一种可选的实施方式中,所述目标父数据存在多个子数据;
所述关联数据确定模块606,进一步被配置为:
根据所述目标索引值,确定与所述待处理数据具有相同数据类型的兄弟数据的索引值;
对所述目标节点的父节点的数据表存储的索引值与指定索引值进行匹配,确定匹配成功的数据为所述待处理数据的目标父数据,所述指定索引值为所述目标索引值和所述兄弟数据的索引值中的至少一个。
在一种可选的实施方式中,任一数据类型的数据包括定长数据和变长数据;
所述装置还包括存储模块,被配置为:
针对每种数据类型,将该数据类型的定长数据、及该数据类型的变长数据的索引值存储至该数据类型的数据表,并将该数据类型的变长数据存储至第一存储池;
基于各数据类型之间的父子关系,将各数据类型的数据表构建为记录树;从存储空间中划分固定的第二存储池,将所述记录树存储至所述第二存储池。
在一种可选的实施方式中,所述装置还包括更新模块,被配置为:
接收针对当前记录树的更新信息;
根据所述更新信息,利用所述当前记录树的树形结构,对所述当前记录树进行更新。
在一种可选的实施方式中,所述更新模块,进一步被配置为:
复制所述当前记录树,根据所述更新信息,对所复制的记录树进行更新,得到更新记录树,利用所述更新记录树替换所述当前记录树;
在接收到针对所述当前记录树的读写请求的情况下,确定对所复制的记录树进行更新是否已完成,若未完成,则对所述当前记录树执行所述读写请求。
在一种可选的实施方式中,所述更新模块,进一步被配置为:
对所述当前记录树的根节点设置读写锁;
根据所述更新信息,对所述当前记录树进行更新,在对所述当前记录树进行的更新完成的情况下,解除所述读写锁。
在一种可选的实施方式中,所述更新信息包括:待新增数据及所述待新增数据的数据类型;
所述装置还包括存储模块,被配置为:
针对所述当前记录树中数据表的占用状态,创建用于记录节点空闲状态的空闲链表和用于记录节点占用状态的占用链表;
所述更新模块,进一步被配置为:
根据所述待新增数据的数据类型及所述空闲链表,确定所述待新增数据的存储位置,将所述待新增数据存储至所述当前记录树所存储数据表的所述待新增数据的存储位置;
从所述空闲链表中删除所述待新增数据的存储位置对应的空闲状态记录,在所述占用链表中增加所述待新增数据的存储位置对应的占用状态记录。
在一种可选的实施方式中,所述更新信息包括:待删除数据及所述待删除数据的数据类型;
所述更新模块,进一步被配置为:
根据所述待删除数据的数据类型及所述占用链表,确定所述待删除数据的存储位置,从所述预先建立的记录树中数据表的所述存储位置删除所述待删除数据;
从所述占用链表中删除所述待删除数据的存储位置对应的占用状态记录,在所述空闲链表中增加所述待删除数据的存储位置对应的空闲状态记录。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图7示出了根据本申请一实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Networks)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本申请的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720执行所述指令时实现所述的数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
获取待处理数据,以及所述待处理数据的数据类型;
从预先建立的记录树中,确定所述数据类型对应的目标节点和关联节点,所述记录树根据不同数据类型间的父子关系建立,所述关联节点包括所述目标节点的父节点及兄弟节点;
基于所述目标节点和所述关联节点,获得所述待处理数据的关联数据。
2.根据权利要求1所述的方法,其特征在于,在所述获取待处理数据,以及所述待处理数据的数据类型之前,所述方法还包括:
针对各种数据类型,将具有该数据类型的多个数据存储为数据表;
根据不同数据类型间的父子关系,将多个所述数据表分别存储至所述记录树的对应节点中。
3.根据权利要求2所述的方法,其特征在于,所述数据表还存储有子数据的索引值;所述关联数据包括目标父数据及目标子数据;
所述基于所述目标节点和所述关联节点,获得所述待处理数据的关联数据,包括:
获取所述待处理数据的目标索引值,根据所述目标索引值,从所述目标节点的父节点存储的数据表中,获得所述待处理数据的目标父数据及所述目标父数据的子数据的索引值;
根据所述目标父数据的子数据的索引值,从所述目标节点及所述目标节点的兄弟节点存储的数据表中,获得所述目标子数据。
4.根据权利要求3所述的方法,其特征在于,所述目标父数据存在多个子数据;
所述根据所述目标索引值,从所述目标节点的父节点存储的数据表中,获得所述待处理数据的目标父数据,包括:
根据所述目标索引值,确定与所述待处理数据具有相同数据类型的兄弟数据的索引值;
对所述目标节点的父节点的数据表存储的索引值与指定索引值进行匹配,确定匹配成功的数据为所述待处理数据的目标父数据,所述指定索引值为所述目标索引值和所述兄弟数据的索引值中的至少一个。
5.根据权利要求1至4任一项所述的方法,其特征在于,任一数据类型的数据包括定长数据和变长数据;
在所述获取待处理数据,以及所述待处理数据的数据类型之前,所述方法还包括:
针对每种数据类型,将该数据类型的定长数据、及该数据类型的变长数据的索引值存储至该数据类型的数据表,并将该数据类型的变长数据存储至第一存储池;
基于各数据类型之间的父子关系,将各数据类型的数据表构建为记录树;从存储空间中划分固定的第二存储池,将所述记录树存储至所述第二存储池。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
接收针对当前记录树的更新信息;
根据所述更新信息,利用所述当前记录树的树形结构,对所述当前记录树进行更新。
7.根据权利要求6所述的方法,其特征在于,所述根据所述更新信息,利用所述当前记录树的树形结构,对所述当前记录树进行更新,包括:
复制所述当前记录树,根据所述更新信息,对所复制的记录树进行更新,得到更新记录树,利用所述更新记录树替换所述当前记录树;
在接收到针对所述当前记录树的读写请求的情况下,确定对所复制的记录树进行更新是否已完成,若未完成,则对所述当前记录树执行所述读写请求。
8.根据权利要求6所述的方法,其特征在于,所述根据所述更新信息,利用所述当前记录树的树形结构,对所述当前记录树进行更新,包括:
对所述当前记录树的根节点设置读写锁;
根据所述更新信息,对所述当前记录树进行更新,在对所述当前记录树进行的更新完成的情况下,解除所述读写锁。
9.根据权利要求6所述的方法,其特征在于,所述更新信息包括:待新增数据及所述待新增数据的数据类型;
在所述获取待处理数据,以及所述待处理数据的数据类型之前,所述方法还包括:
针对所述当前记录树中数据表的占用状态,创建用于记录节点空闲状态的空闲链表和用于记录节点占用状态的占用链表;
所述根据所述更新信息,利用所述当前记录树的树形结构,对所述当前记录树进行更新,包括:
根据所述待新增数据的数据类型及所述空闲链表,确定所述待新增数据的存储位置,将所述待新增数据存储至所述当前记录树所存储数据表的所述待新增数据的存储位置;
从所述空闲链表中删除所述待新增数据的存储位置对应的空闲状态记录,在所述占用链表中增加所述待新增数据的存储位置对应的占用状态记录。
10.根据权利要求9所述的方法,其特征在于,所述更新信息包括:待删除数据及所述待删除数据的数据类型;
所述根据所述更新信息,利用所述当前记录树的树形结构,对所述当前记录树进行更新,包括:
根据所述待删除数据的数据类型及所述占用链表,确定所述待删除数据的存储位置,从所述预先建立的记录树中数据表的所述存储位置删除所述待删除数据;
从所述占用链表中删除所述待删除数据的存储位置对应的占用状态记录,在所述空闲链表中增加所述待删除数据的存储位置对应的空闲状态记录。
11.一种数据处理装置,其特征在于,包括:
获取模块,被配置为获取待处理数据,以及所述待处理数据的数据类型;
节点确定模块,被配置为从预先建立的记录树中,确定所述数据类型对应的目标节点和关联节点,所述记录树根据不同数据类型间的父子关系建立,所述关联节点包括所述目标节点的父节点及兄弟节点;
关联数据确定模块,被配置为基于所述目标节点和所述关联节点,获得所述待处理数据的关联数据。
12.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-10任意一项所述方法的步骤。
13.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-10任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111277396.0A CN113918573A (zh) | 2021-10-29 | 2021-10-29 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111277396.0A CN113918573A (zh) | 2021-10-29 | 2021-10-29 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918573A true CN113918573A (zh) | 2022-01-11 |
Family
ID=79243767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111277396.0A Pending CN113918573A (zh) | 2021-10-29 | 2021-10-29 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918573A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114415971A (zh) * | 2022-03-25 | 2022-04-29 | 阿里云计算有限公司 | 数据处理方法以及装置 |
CN114489497A (zh) * | 2022-01-14 | 2022-05-13 | 深圳市汇川技术股份有限公司 | 数据映射方法、服务端以及计算机可读存储介质 |
CN118606592A (zh) * | 2024-08-12 | 2024-09-06 | 深圳市智慧城市科技发展集团有限公司 | Tab页面的数据加载方法、终端设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130346725A1 (en) * | 2012-06-20 | 2013-12-26 | Microsoft Corporation | Structuring storage based on latch-free b-trees |
US20140279859A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Index record-level locking for file systems using a b+tree structure |
US20150186453A1 (en) * | 2013-12-31 | 2015-07-02 | Anant Agarwal | Tiered index management |
CN110134681A (zh) * | 2019-04-15 | 2019-08-16 | 平安科技(深圳)有限公司 | 数据存储与查询方法、装置、计算机设备及存储介质 |
CN111367947A (zh) * | 2020-03-09 | 2020-07-03 | 北京奇艺世纪科技有限公司 | 一种信息检索方法、装置、电子设备及存储介质 |
-
2021
- 2021-10-29 CN CN202111277396.0A patent/CN113918573A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130346725A1 (en) * | 2012-06-20 | 2013-12-26 | Microsoft Corporation | Structuring storage based on latch-free b-trees |
US20140279859A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Index record-level locking for file systems using a b+tree structure |
US20150186453A1 (en) * | 2013-12-31 | 2015-07-02 | Anant Agarwal | Tiered index management |
CN110134681A (zh) * | 2019-04-15 | 2019-08-16 | 平安科技(深圳)有限公司 | 数据存储与查询方法、装置、计算机设备及存储介质 |
CN111367947A (zh) * | 2020-03-09 | 2020-07-03 | 北京奇艺世纪科技有限公司 | 一种信息检索方法、装置、电子设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114489497A (zh) * | 2022-01-14 | 2022-05-13 | 深圳市汇川技术股份有限公司 | 数据映射方法、服务端以及计算机可读存储介质 |
CN114489497B (zh) * | 2022-01-14 | 2024-05-28 | 深圳市汇川技术股份有限公司 | 数据映射方法、服务端以及计算机可读存储介质 |
CN114415971A (zh) * | 2022-03-25 | 2022-04-29 | 阿里云计算有限公司 | 数据处理方法以及装置 |
CN118606592A (zh) * | 2024-08-12 | 2024-09-06 | 深圳市智慧城市科技发展集团有限公司 | Tab页面的数据加载方法、终端设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11288267B2 (en) | Pluggable storage system for distributed file systems | |
CN113918573A (zh) | 数据处理方法及装置 | |
US11468027B2 (en) | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor | |
US11468103B2 (en) | Relational modeler and renderer for non-relational data | |
CN101189604B (zh) | 使用自动列表的组合查询 | |
CN100468402C (zh) | 一种数据存储及查询方法 | |
US20150293958A1 (en) | Scalable data structures | |
CN111538724B (zh) | 管理索引的方法 | |
EP2924594A1 (en) | Data encoding and corresponding data structure in a column-store database | |
Yang et al. | Pase: Postgresql ultra-high-dimensional approximate nearest neighbor search extension | |
US20200401623A1 (en) | Autolayout of visualizations based on graph data | |
CN103023982A (zh) | 一种云存储客户端的低延迟元数据访问方法 | |
CN113297320A (zh) | 分布式数据库系统及数据处理方法 | |
US8543614B2 (en) | Packing nodes into records to store XML XQuery data model and other hierarchically structured data | |
US11681691B2 (en) | Presenting updated data using persisting views | |
US20230252012A1 (en) | Method for indexing data | |
CN109857833B (zh) | 一种规则引擎实现方法、装置及电子设备 | |
US20220019567A1 (en) | Data storage using vectors of vectors | |
CN112905587B (zh) | 数据库的数据管理方法、装置及电子设备 | |
CN114860727A (zh) | 拉链表更新方法及装置 | |
US11080332B1 (en) | Flexible indexing for graph databases | |
WO2024016789A1 (zh) | 日志数据查询方法、装置、设备和介质 | |
WO2023179784A1 (zh) | 数据处理方法以及装置 | |
CN116010345A (zh) | 一种实现流批一体数据湖的表服务方案的方法、装置及设备 | |
WO2022052586A1 (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 |