CN106980685A - 数据处理方法及数据处理装置 - Google Patents

数据处理方法及数据处理装置 Download PDF

Info

Publication number
CN106980685A
CN106980685A CN201710207516.7A CN201710207516A CN106980685A CN 106980685 A CN106980685 A CN 106980685A CN 201710207516 A CN201710207516 A CN 201710207516A CN 106980685 A CN106980685 A CN 106980685A
Authority
CN
China
Prior art keywords
data
recommendation
data file
record
mark
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.)
Granted
Application number
CN201710207516.7A
Other languages
English (en)
Other versions
CN106980685B (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.)
Guangdong Shenma Search Technology Co.,Ltd.
Original Assignee
Guangdong Shenma Search 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 Guangdong Shenma Search Technology Co Ltd filed Critical Guangdong Shenma Search Technology Co Ltd
Priority to CN201710207516.7A priority Critical patent/CN106980685B/zh
Publication of CN106980685A publication Critical patent/CN106980685A/zh
Priority to PCT/CN2018/081348 priority patent/WO2018177414A1/zh
Application granted granted Critical
Publication of CN106980685B publication Critical patent/CN106980685B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

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

Abstract

本申请实施例提供一种数据处理方法及数据处理装置,所述方法包括:在存储介质中开辟索引区和数据区,所述索引区包括一一对应的键(Key)字段和值(Value)字段,所述数据区中包括多个数据文件,每个数据文件中包含多个大小相同的数据单元;在所述数据区的一个数据文件的一个数据单元中写入一个用户的推荐记录,所述推荐记录包括指针和至少一条推荐内容标识,其中,所述指针用于保存下一条推荐内容标识的写入地址;在所述Key字段写入所述用户的用户ID,在所述Value字段写入所述推荐记录所在的数据文件的编号以及所述推荐记录在所述数据文件中的偏移地址。

Description

数据处理方法及数据处理装置
技术领域
本发明涉及计算机技术领域,特别涉及一种数据处理方法及数据处理装置。
背景技术
推荐引擎,是主动发现用户当前或潜在需求,并主动推荐信息给用户的信息网络技术。具体来说,推荐引擎综合利用用户的行为、属性,对象的属性、内容、分类,以及用户之间的社交关系等等,挖掘用户的喜好和需求,主动向用户推荐其感兴趣或者需要的对象。
在推荐引擎应用中,不期望将曾经推荐给用户的信息再次推荐给用户。每次推荐信息给用户的时候,需要对推荐的信息进行记录。在下一次推荐列表生成的时候,需要过滤掉近一段时间内推荐过的信息。这就需要在每次推荐信息之前,需要将本次推荐的信息更新到推荐记录中。比如,本次推荐10条文档,则需要将该10条文档的文档ID写入到记录中。在生成推荐列表时,需要读出所有的推荐记录,如果已有5000条推荐记录,则需要将5000条推荐记录全部读取,然后将推荐列表中的文档ID与推荐记录中的文档ID进行比较并去除已经推荐过的文档。
目前的数据库系统均不能很好的支持这种需求。例如,leveldb的值是一个整体,不支持更新值的一部分。Redis的链表结构,虽然支持更新链表的一部分,但链表更新代价很大,还需要定期删除老的记录,操作极不方便。
发明内容
有鉴于此,本申请提供一种数据处理方法及数据处理装置,以实现方便快捷地对推荐记录进行更新。
一方面,本申请提供一种数据处理方法,包括:在存储介质中开辟索引区和数据区,所述索引区包括一一对应的键(Key)字段和值(Value)字段,所述数据区中包括多个数据文件,每个数据文件中包含多个大小相同的数据单元;在所述数据区的一个数据文件的一个数据单元中写入一个用户的推荐记录,所述推荐记录包括指针和至少一条推荐内容标识,其中,所述指针用于保存下一条推荐内容标识的写入地址;在所述Key字段写入所述用户的用户ID,在所述Value字段写入所述推荐记录所在的数据文件的编号以及所述推荐记录在所述数据文件中的偏移地址。
可选地,所述方法还包括:在所述数据文件中写入该数据文件包含的数据单元个数U,每个推荐记录包含的推荐内容标识的条数上限V以及该数据文件中的数据单元的使用标记,其中U和V均为大于2的整数。
可选地,所述U=2m,V=2n,m和n均是大于1的整数。
可选地,所述方法还包括:获取待读取的推荐记录所在的数据文件的编号;获取待读取的推荐记录位于其所在的数据文件中的偏移地址;读取所述推荐记录的指针;判断所述指针保存的地址是否大于所述推荐内容标识的条数上限V,如果大于,则返回所述数据文件中该用户的所有推荐记录;否则,返回所述数据文件中该推荐记录单元从起始区域至指针保存的地址之前的所有推荐内容标识。
可选地,所述方法还包括:获取待写入的推荐内容标识对应的推荐记录所在的数据文件的编号;获取待写入的推荐内容标识对应的推荐记录在其所在的数据文件中的偏移地址;读取所述推荐记录的指针;用该指针保存的地址与推荐记录所包含的推荐内容标识的条数上限V取余得到待写入推荐内容标识的写入地址;从所述写入地址开始逐条写入待写入的推荐内容标识。
可选地,所述方法还包括:遍历所述数据文件中的数据单元的使用标记找到一个可用的数据单元;将该数据单元的使用标记修改为被使用状态;将该数据单元的指针置零并初始化所述数据单元;以所述数据单元所在的数据文件的编号以及所述数据单元在所述数据文件内的偏移为Value字段的值,以新增用户的用户ID为Key字段的值,将所述新增用户信息插入索引区。
可选地,所述方法还包括:根据待删除用户的用户ID在索引区确定待删除的推荐记录对应的数据文件编号和所述推荐记录在所述数据文件中的偏移地址;根据所述数据文件编号加载对应的数据文件,根据所述推荐记录在所述数据文件中的偏移地址确定所述待删除推荐记录对应的数据单元的使用标记;将所述待删除推荐记录对应的数据单元的使用标记修改为未使用状态。
可选地,在所述方法中,将对一个数据单元的操作分配到同一个线程中依次执行。
可选地,在所述方法中,将对一个数据文件的操作分配到同一个线程中依次执行。
另一方面,本申请还提供一种数据处理装置,包括:创建模块,用于在存储介质中开辟索引区和数据区,所述索引区包括一一对应的键(Key)字段和值(Value)字段,所述数据区中包括多个数据文件,每个数据文件中包含多个大小相同的数据单元;第一写入模块,用于在所述数据区的一个数据文件的一个数据单元中写入一个用户的推荐记录,所述推荐记录包括指针和至少一条推荐内容标识,其中,所述指针用于保存下一条推荐内容标识的写入地址;第二写入模块,用于在所述Key字段写入所述用户的用户ID,在所述Value字段写入所述推荐记录所在的数据文件的编号以及所述推荐记录在所述数据文件中的偏移地址。
可选地,所述装置还包括:第三写入模块,用于在所述数据文件中写入该数据文件包含的数据单元个数U,每个推荐记录包含的推荐内容标识的条数上限V以及该数据文件中的数据单元的使用标记,其中U和V均为大于2的整数。
可选地,所述U=2m,V=2n,其中m和n均是大于1的整数。
可选地,所述装置还包括:第一获取模块,用于获取待读取的推荐记录所在的数据文件的编号;第二获取模块,用于获取待读取的推荐记录位于其所在的数据文件中的偏移地址;第一读取模块,用于读取所述推荐记录的指针;第一判断模块,用于判断所述指针保存的地址是否大于所述推荐内容标识的条数上限V;第一反馈模块,用于在所述指针保存的地址大于所述推荐内容标识的条数上限V时,返回所述数据文件中该用户的所有推荐内容标识;第二反馈模块,用于在所述指针保存的地址不大于所述推荐内容标识的条数上限V时,返回所述数据文件中该推荐记录单元从起始区域至指针保存的地址之前的所有推荐内容标识。
可选地,所述装置还包括:第三获取模块,用于获取待写入的推荐内容标识对应的推荐记录所在的数据文件的编号;第四获取模块,用于获取待写入的推荐内容标识对应的推荐记录在其所在的数据文件中的偏移地址;第二读取模块,用于读取所述推荐记录的指针;第一计算模块,用于用该指针保存的地址与推荐记录所包含的推荐内容标识的条数上限V取余得到待写入推荐内容标识的写入地址;第三写入模块,用于从所述写入地址开始逐条写入待写入的推荐内容标识。
可选地,所述装置还包括:第一查找模块,用于遍历所述数据文件中的数据单元的使用标记找到一个可用的数据单元;第一更改模块,用于将该数据单元的使用标记修改为被使用状态;初始化模块,用于将该数据单元的指针置零并初始化所述数据单元;插入模块,用于以所述数据单元所在的数据文件的编号以及所述数据单元在所述数据文件内的偏移为Value字段的值,以新增用户的用户ID为Key字段的值,将所述新增用户信息插入索引区。
可选地,所述装置还包括:第二查找模块,用于根据待删除用户的用户ID在索引区确定待删除的推荐记录对应的数据文件编号和所述推荐记录在所述数据文件中的偏移地址;第三查找模块,用于根据所述数据文件编号加载对应的数据文件,根据所述推荐记录在所述数据文件中的偏移地址确定所述待删除推荐记录对应的数据单元的使用标记;第二更改模块,用于将所述待删除推荐记录对应的数据单元的使用标记修改为未使用状态。
可选地,在所述装置中,将对一个数据单元的操作分配到同一个线程中依次执行。
可选地,在所述装置中,将对一个数据文件的操作分配到同一个线程中依次执行。
本申请实施例提供的数据处理方法及数据处理装置,提前分配数据存储空间,提升了系统效率。此外,本申请提供的技术方案在更新推荐记录时,利用指针保存的地址与用户推荐记录大小取余获取新的推荐记录的写入地址,在写入新推荐记录的同时覆盖掉过期的推荐记录,简化了操作;其次,本申请的技术方案可以将对同一个用户的操作都分配到同一个线程中依次执行,也可以将位于同一个数据文件中的多个用户的操作都分配到同一个线程中依次执行,避免对同一个数据单元或者同一个数据文件的多线程间的同步操作,省去了多线程同步的开销,极大地简化了数据处理的过程。
附图说明
图1为本申请一实施例提供的一种数据处理方法的流程图;
图2为本申请一实施例提供的一种数据处理方法的索引区中的示意图;
图3为本申请一实施例提供的一种数据处理方法中的数据文件的结构示意图;
图4为本申请一实施例提供的一种数据处理方法的部分流程图;
图5为本申请一实施例提供的一种数据处理方法的部分流程图;
图6为本申请一实施例提供的一种数据处理方法的部分流程图;
图7为本申请一实施例提供的一种数据处理方法的部分流程图;
图8为本申请一实施例提供的一种数据处理方法中单一线程处理示意图;
图9为本申请一实施例提供的一种数据处理装置的结构示意图;
图10为本申请一实施例提供的一种数据处理装置的部分结构示意图;
图11为本申请一实施例提供的一种数据处理装置的部分结构示意图;
图12为本申请一实施例提供的一种数据处理装置的部分结构示意图;
图13为本申请一实施例提供的一种数据处理装置的部分结构示意图;
图14为本申请一实施例提供的一种电子设备的结构示意图。
具体实施方式
发明人通过研究发现,在推荐引擎应用中,通常情况下,只需记录最近推荐给用户的一定数量的推荐内容标识即可。比如,记录最近推荐的5000篇文档。超过5000篇之后,可以将最先推荐的历史文档的推荐记录抹去,这样也不影响用户体验。基于这样的构思,本申请提供一种数据处理方法及一种数据处理装置。
参见图1,本申请一实施例提供一种数据处理方法,包括:步骤101至103。
步骤101:在存储介质中开辟索引区和数据区,所述索引区包括一一对应的键(Key)字段和值(Value)字段,所述数据区中包括多个数据文件,每个数据文件中包含多个大小相同的数据单元。
步骤102:在所述数据区的一个数据文件的一个数据单元中写入一个用户的推荐记录,所述推荐记录包括指针和至少一条推荐内容标识,其中,所述指针用于保存下一条推荐内容标识的写入地址。
本申请实施例中,每个数据单元中写入一个用户的推荐记录,每个推荐记录中可以记录相同数量的推荐内容标识,例如可以记录5000条或者8000条,本申请对此不作限定。每个推荐内容对应一个推荐内容标识,通过记录推荐内容标识,就可以对推荐的内容进行记录。每个数据单元中均包括一个指针,所述指针保存的是下一条推荐内容标识的写入地址,每个数据单元可以记录的推荐内容标识的数量是确定的,从而根据指针保存的地址即可确定当前的数据单元所记录的推荐记录是否写满。
步骤103:在所述Key字段写入所述用户的用户ID,在所述Value字段写入所述推荐记录所在的数据文件的编号以及所述推荐记录在所述数据文件中的偏移地址。
图2是所述索引区中Key字段与Value字段的关系图。从图中可以看出,Key字段中写入了用户ID(User ID),Value字段中写入了推荐记录所在的数据文件的编号(Data FileID)以及推荐记录在所述数据文件中的偏移地址(Offset),两者一一对应。这样,通过UserID即可确定对应的Data File ID和Offset。
本申请实施例所提供的数据处理方法,每个数据单元的容量相同且确定,在索引区建立了用户ID与推荐记录所在的数据文件的编号以及所述推荐记录在所述数据文件中的偏移地址的对应关系,通过指针保存了下一条推荐内容标识的写入地址,这些为后续对数据区的实现快速读写操作奠定了基础。
在本申请一实施例中,图1所示的方法可以还包括:
在所述数据文件中写入该数据文件包含的数据单元个数U,每个推荐记录包含的推荐内容标识的条数上限V以及该数据文件中的数据单元的使用标记I,其中U和V均为大于2的正整数。
图3是该实施例中所述数据文件的结构示意图。本申请中为每个用户保存一个推荐记录,该推荐记录保存在一个数据单元中。图中,U表示该数据文件中包含的数据单元的个数,也即该数据文件中记录的用户的个数;V表示每个用户的推荐记录中包含的推荐内容标识的最大条数;P表示一个用户的推荐记录的指针,其中保存的是下一条待写入的推荐内容标识的位置,每个指针P后的R1至RV表示该用户的推荐记录中的V条推荐内容标识;I表示数据文件中各个数据单元的占用情况,对于某个数据单元,占用可用1表示,未被占用可以用0表示,只要能表示数据单元被占用与否的状态即可,本申请对此不做限定。例如以U=5为例,若前三个数据单元被占用,后两个未被占用,则I=11100。
实际应用中,为了计算上的便利,可以设置U=2m,V=2n,m和n均是大于1的自然数。例如U=8,V=16,即数据文件中包括8个数据单元,每个数据单元中记录16条推荐内容标识。若8个数据单元中后面4个未被占用,则I=11110000。
本申请实施例提供的数据处理方法,在图1所示的方法的基础上进一步确定了数据文件中记录的数据单元的个数,从而可以提前分配数据存储空间,提升了系统效率。
在完成如图1或者图3所示的初始创建和记录后,即可向用户推荐已经记录的推荐内容。
本申请一实施例中,在创建了如图3所示的数据空间后,若有新的推荐内容要推荐时,需要先读取已经推荐过的推荐内容的推荐记录,将新的推荐内容标识形成的推荐列表与推荐记录中的推荐内容标识比较并将重复的推荐内容从推荐列表中删除,并将去重后的推荐列表推荐给用户。参见图4,本申请一实施例提供的数据处理方法中,读取已经推荐过的推荐内容的推荐记录包括步骤401-404。
步骤401:获取待读取的推荐记录所在的数据文件的编号。
步骤402:获取待读取的推荐记录位于其所在的数据文件中的偏移地址。
如图2和3所示,用户ID与用户数据文件编号以及用户的推荐记录位于其所在的数据文件中的偏移地址之间是一一对应的,当确定了推荐列表的推荐对象,也即用户后,根据该用户的用户ID即可从索引表中确定该用户的数据文件编号(Data File ID)以及用户的推荐记录位于其所在的数据文件中的偏移地址(Offset)。
步骤403:读取所述推荐记录的指针。
在确定了该用户的Data File ID和Offset后,即可在数据文件中找到该用户对应的数据单元。从图3所示的数据结构中看出,该用户的数据单元中,第一位即该数据单元的指针。
步骤404:判断所述指针保存的地址是否大于所述推荐内容标识的条数上限V,如果大于,则返回所述数据文件中该用户的所有推荐记录;否则,返回所述数据文件中该推荐记录单元从起始区域至指针保存的地址之前的所有推荐记录。
用户数据单元的指针保存的是下一条推荐内容标识的写入地址,如果所述指针保存的地址大于数据单元中记录的推荐内容标识的条数上限,说明该数据单元已经写满,那么该数据单元中记录的所有的推荐内容标识均应返回才能读取到完整的已推荐内容的推荐记录;如果所述指针保存的地址不大于数据单元中记录的推荐内容标识的条数上限,则说明所述数据单元还未写满,那么只需要返回指针保存的地址之前的所有的推荐内容标识即可读取到完整的已推荐内容的推荐记录。
在读取到已推荐内容的推荐记录后,可以将已推荐内容的推荐记录与待推荐的推荐列表比较。所述待推荐列表中记录了待推荐的推荐内容标识。将待推荐的推荐内容标识与推荐记录中的推荐内容标识进行比较,从推荐列表中删除已经推荐过的推荐内容标识,将去重后的推荐列表的推荐内容标识对应的推荐内容推荐给用户。
参见图5,本申请一实施例中,为用户推荐新的推荐内容后,将该推荐内容的标识更新至推荐记录中,包括步骤501-505。
步骤501:获取待写入的推荐内容标识对应的推荐记录所在的数据文件的编号。
步骤502:获取待写入的推荐内容标识对应的推荐记录在其所在的数据文件中的偏移地址。
如前所述,根据图2和图3所创建的数据结构,用户ID与用户数据文件编号以及用户的推荐记录位于其所在的数据文件中的偏移地址之间是一一对应的。本申请实施例中,对同一个用户的推荐内容标识都记录在同一个推荐记录中。可以首先确定接收推荐内容的用户,然后可以根据该用户的用户ID,确定该用户的推荐记录所在的数据文件的编号和所述推荐记录在其所在的数据文件中的偏移地址,从而在数据区找到待写入的推荐内容标识对应的数据单元。
步骤503:读取所述推荐记录的指针。
根据图3所示的数据结构,每个用户的推荐记录占用一个数据单元。该数据单元的第一位就是该数据单元的指针,用于记录该数据单元中下一条推荐记录标识的写入地址。
步骤504:用该指针保存的地址与推荐记录所包含的推荐内容标识的条数上限V取余得到待写入推荐内容标识的写入地址。
步骤505:从所述写入地址开始逐条写入待写入的推荐内容标识。
推荐记录包含的推荐内容标识的条数上限实际上标志着该数据单元的容量。指针保存的是下一条推荐内容标识的写入位置。以每个数据单元最多能够记录32条推荐内容标识为例,如果当前已经记录了20条,那么如果第一条的地址记为0,第20条的地址为19,那么指针中保存的地址为20。用20与32取余,得到的值是20,即从地址20开始写入待写入的推荐内容标识,与之前已经保存的20条记录实现了顺序连接。如果该数据单元中已经写满,即已经写了32条推荐内容标识,那么指针中保存的地址为32,与容量32取余,得到的结果是0,那么就从地址0开始写新的待写入的推荐内容标识,实现写入新数据的同时覆盖旧数据,提高了数据处理效率。
实际应用中,如果有新增的推荐用户,基于图2或者图3所示的数据结构,参见图6,本申请一实施例提供的处理方法还包括步骤601-604。
步骤601:遍历所述数据文件中的数据单元的使用标记找到一个可用的数据单元。
如图3所示,本申请实施例中,通过使用标记I来标记数据文件中各个数据单元的使用状态。通过遍历该使用标记即可找到可用的数据单元。例如,如果该数据文件中,U=4,I=1101,那么说明第三个数据单元未被占用,可以将其作为可用的数据单元。
步骤602:将该数据单元的使用标记修改为被使用状态。
继续上面的例子,可以将I修改为1111,这样,第三个数据单元被标志为被占用状态。
步骤603:将该数据单元的指针置零并初始化所述数据单元。
步骤604:以所述数据单元所在的数据文件的编号以及所述数据单元在所述数据文件内的偏移为Value字段的值,以新增用户的用户ID为Key字段的值,将所述新增用户信息插入索引区。
本申请实施例所提供的数据处理方法,通过数据单元的使用标记可以方便快捷地为新用户找到可用的数据单元,提高了数据区的利用率,同时也提高了数据处理速度。
为回收数据空间,对于长时间不再使用推荐引擎的用户可以删除其对应的数据单元。参见图7,基于图2和图3所示的数据结构,本申请一实施例提供的数据处理方法还包括步骤701-703。
步骤701:根据待删除用户的用户ID在索引区确定待删除的推荐记录对应的数据文件编号和所述推荐记录在所述数据文件中的偏移地址。
步骤702:根据所述数据文件编号加载对应的数据文件,根据所述推荐记录在所述数据文件中的偏移地址确定所述待删除推荐记录对应的数据单元的使用标记。
如前所述,根据图2和图3所创建的数据结构,用户ID与用户数据文件编号以及用户的推荐记录位于其所在的数据文件中的偏移地址之间是一一对应的。当确定了待删除的数据对应的用户ID,那么则可以根据索引表确定该用户的数据单元对应的使用标记。
步骤703:将所述待删除推荐记录对应的数据单元的使用标记修改为未使用状态。
数据单元对应的使用标记是该单元是否被占用的标志,后续应用中,如果需要新增用户,当发现一个数据单元的使用标记为未使用状态,即可在该数据单元中写入新的数据。本申请实施例提供的数据处理方法仅仅通过对数据单元对应的使用标记的更改就可以完成数据空间的回收,在提高数据空间的利用率的同时极大地提高了数据处理的效率。
参见图8,本申请一实施例中,为了减少不同线程之间的同步消耗,可以将对一个数据单元的操作分配到同一个线程中依次执行;可选地,在其他实施例中,也可以对一个数据文件的操作分配到同一个线程中依次执行,这样可以避免对同一个数据单元或者同一个数据文件的多线程间的同步操作,省去了多线程同步的开销,极大地简化了数据处理的过程。
在上述的实施例中,提供了一种数据处理方法,与之相对应的,本申请还提供一种数据处理装置。该装置是与上述数据处理方法的实施例相对应。
图9-图14为本申请实施例提供的数据处理装置的结构示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的说明即可。下述描述的装置实施例仅仅是示意性的。
参见图9,本申请一实施例提供的一种数据处理装置,包括:
创建模块901,用于在存储介质中开辟索引区和数据区,所述索引区包括一一对应的键(Key)字段和值(Value)字段,所述数据区中包括多个数据文件,每个数据文件中包含多个大小相同的数据单元;
第一写入模块902,用于在所述数据区的一个数据文件的一个数据单元中写入一个用户的推荐记录,所述推荐记录包括指针和至少一条推荐内容标识,其中,所述指针用于保存下一条推荐内容标识的写入地址;
第二写入模块903,用于在所述Key字段写入所述用户的用户ID,在所述Value字段写入所述推荐记录所在的数据文件的编号以及所述推荐记录在所述数据文件中的偏移地址。
可选地,所述数据处理装置还可以包括:
第三写入模块,用于在所述数据文件中写入该数据文件包含的数据单元个数U,每个推荐记录包含的推荐内容标识的条数上限V以及该数据文件中的数据单元的使用标记,其中U和V均为大于2的整数。
可选地,为了提高处理速度,实际应用中,可以设置U=2m,V=2n,其中m和n均是大于1的整数。
本申请实施例提供的数据处理装置,确定了数据文件中记录的数据单元的个数,从而可以提前分配数据存储空间,提升了系统效率。
参见图10,本申请一实施例中,所述数据处理装置还可以包括:
第一获取模块1001,用于获取待读取的推荐记录所在的数据文件的编号;
第二获取模块1002,用于获取待读取的推荐记录位于其所在的数据文件中的偏移地址;
第一读取模块1003,用于读取所述推荐记录的指针;
第一判断模块1004,用于判断所述指针保存的地址是否大于所述推荐内容标识的条数上限V;
第一反馈模块1005,用于在所述指针保存的地址大于所述推荐内容标识的条数上限V时,返回所述数据文件中该用户的所有推荐内容标识;
第二反馈模块1006,用于在所述指针保存的地址不大于所述推荐内容标识的条数上限V时,返回所述数据文件中该推荐记录所在的数据单元从起始的推荐内容标识至指针保存的地址之前的所有推荐内容标识。
参见图11,本申请一实施例中,所述数据处理装置还包括:
第三获取模块1101,用于获取待写入的推荐内容标识对应的推荐记录所在的数据文件的编号;
第四获取模块1102,用于获取待写入的推荐内容标识对应的推荐记录在其所在的数据文件中的偏移地址;
第二读取模块1103,用于读取所述推荐记录的指针;
第一计算模块1104,用于用该指针保存的地址与推荐记录所包含的推荐内容标识的条数上限V取余得到待写入推荐内容标识的写入地址;
第三写入模块1105,用于从所述写入地址开始逐条写入待写入的推荐内容标识。
本申请提供的数据处理装置在更新推荐记录时,利用指针保存的地址与用户推荐记录大小取余获取新的推荐记录的写入地址,在写入新推荐记录的同时覆盖掉过期的推荐记录,简化了操作。
参见图12,本申请一实施例中,所述数据处理装置还包括:
第一查找模块1201,用于遍历所述数据文件中的数据单元的使用标记找到一个可用的数据单元;
第一更改模块1202,用于将该数据单元的使用标记修改为被使用状态;
初始化模块1203,用于将该数据单元的指针置零并初始化所述数据单元;
插入模块1204,用于以所述数据单元所在的数据文件的编号以及所述数据单元在所述数据文件内的偏移为Value字段的值,以新增用户的用户ID为Key字段的值,将所述新增用户信息插入索引区。
本申请实施例所提供的数据处理装置,通过数据单元的使用标记可以方便快捷地为新用户找到可用的数据单元,提高了数据区的利用率,同时也提高了数据处理速度。
参见图13,本申请一实施例提供的数据处理装置还包括:
第二查找模块1301,用于根据待删除用户的用户ID在索引区确定待删除的推荐记录对应的数据文件编号和所述推荐记录在所述数据文件中的偏移地址;
第三查找模块1302,用于根据所述数据文件编号加载对应的数据文件,根据所述推荐记录在所述数据文件中的偏移地址确定所述待删除推荐记录对应的数据单元的使用标记;
第二更改模块1303,用于将所述待删除推荐记录对应的数据单元的使用标记修改为未使用状态。
本申请实施例提供的数据处理装置仅仅通过对数据单元对应的使用标记的更改就可以完成数据空间的回收,在提高数据空间的利用率的同时极大地提高了数据处理的效率。
本申请一实施例中,为了减少不同线程之间的同步消耗,在所述数据处理装置中,可以将对一个数据单元的操作分配到同一个线程中依次执行;可选地,在其他实施例中,也可以将对一个数据文件的操作分配到同一个线程中依次执行,这样可以避免对同一个数据单元或者同一个数据文件的多线程间的同步操作,省去了多线程同步的开销,极大地简化了数据处理的过程。
图14是本申请实施例提供的执行数据处理方法的电子设备的硬件结构示意图,如图14所示,该电子设备包括:
一个或多个处理器1410以及存储器1420,图14中以一个处理器1410为例。
执行数据存储方法的设备还可以包括:输入装置1430和输出装置1440。
处理器1410、存储器1420、输入装置1430和输出装置1440可以通过总线或者其他方式连接,图14中以通过总线1450连接为例。
存储器1420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的数据存储方法对应的程序指令/模块(例如,附图9-图13所示的各个模块)。处理器1410通过运行存储在存储器1420中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的数据存储方法。
存储器1420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据存储装置的使用所创建的数据等。此外,存储器1420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器1420可选包括相对于处理器1410远程设置的存储器,这些远程存储器可以通过网络连接至数据存储装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置1430可接收输入的数字或字符信息,以及产生与数据存储装置的用户设置以及功能控制有关的键信号输入。输出装置1440可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器1420中,当被所述一个或者多个处理器1410执行时,执行上述任意方法实施例中的数据处理方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本发明实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:掌上电脑(PDA Personal DigitalAssistant)、移动互联网设备(MID,Mobile Internet Device)和超级移动个人计算机(UMPC,Ultra-mobile Personal Computer)设备等。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
在本申请所提供的多个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的检测装置的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信链接可以是通过一些接口,模块的间接耦合或通信链接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本发明优选实施例只是用于帮助阐述本发明。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

Claims (18)

1.一种数据处理方法,其特征在于,包括:
在存储介质中开辟索引区和数据区,所述索引区包括一一对应的键(Key)字段和值(Value)字段,所述数据区中包括多个数据文件,每个数据文件中包含多个大小相同的数据单元;
在所述数据区的一个数据文件的一个数据单元中写入一个用户的推荐记录,所述推荐记录包括指针和至少一条推荐内容标识,其中,所述指针用于保存下一条推荐内容标识的写入地址;
在所述Key字段写入所述用户的用户ID,在所述Value字段写入所述推荐记录所在的数据文件的编号以及所述推荐记录在所述数据文件中的偏移地址。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述数据文件中写入该数据文件包含的数据单元个数U,每个推荐记录包含的推荐内容标识的条数上限V以及该数据文件中的数据单元的使用标记,其中U和V均为大于2的整数。
3.根据权利要求2所述的方法,其特征在于,所述U=2m,V=2n,m和n均是大于1的整数。
4.根据权利要求2所述的方法,其特征在于,还包括:
获取待读取的推荐记录所在的数据文件的编号;
获取待读取的推荐记录位于其所在的数据文件中的偏移地址;
读取所述推荐记录的指针;
判断所述指针保存的地址是否大于所述推荐内容标识的条数上限V,如果大于,则返回所述数据文件中该用户的所有推荐记录;否则,返回所述数据文件中该推荐记录所在的数据单元中从起始的推荐内容标识至指针保存的地址之前的所有推荐内容标识。
5.根据权利要求2所述的方法,其特征在于,还包括:
获取待写入的推荐内容标识对应的推荐记录所在的数据文件的编号;
获取待写入的推荐内容标识对应的推荐记录在其所在的数据文件中的偏移地址;
读取所述推荐记录的指针;
用该指针保存的地址与推荐记录所包含的推荐内容标识的条数上限V取余,得到待写入推荐内容标识的写入地址;
从所述写入地址开始逐条写入待写入的推荐内容标识。
6.根据权利要求2所述的方法,其特征在于,还包括:
遍历所述数据文件中的数据单元的使用标记,找到一个可用的数据单元;
将该数据单元的使用标记修改为被使用状态;
将该数据单元的指针置零并初始化所述数据单元;
以所述数据单元所在的数据文件的编号以及所述数据单元在所述数据文件内的偏移为Value字段的值,以新增用户的用户ID为Key字段的值,将所述新增用户信息插入索引区。
7.根据权利要求2所述的方法,其特征在于,还包括:
根据待删除用户的用户ID在索引区确定待删除的推荐记录对应的数据文件编号和所述推荐记录在所述数据文件中的偏移地址;
根据所述数据文件编号加载对应的数据文件,根据所述推荐记录在所述数据文件中的偏移地址确定所述待删除推荐记录对应的数据单元的使用标记;
将所述待删除推荐记录对应的数据单元的使用标记修改为未使用状态。
8.根据权利要求1-6任意一项所述的方法,其特征在于,将对一个数据单元的操作分配到同一个线程中依次执行。
9.根据权利要求1-6任意一项所述的方法,其特征在于,将对一个数据文件的操作分配到同一个线程中依次执行。
10.一种数据处理装置,其特征在于,包括:
创建模块,用于在存储介质中开辟索引区和数据区,所述索引区包括一一对应的键(Key)字段和值(Value)字段,所述数据区中包括多个数据文件,每个数据文件中包含多个大小相同的数据单元;
第一写入模块,用于在所述数据区的一个数据文件的一个数据单元中写入一个用户的推荐记录,所述推荐记录包括指针和至少一条推荐内容标识,其中,所述指针用于保存下一条推荐内容标识的写入地址;
第二写入模块,用于在所述Key字段写入所述用户的用户ID,在所述Value字段写入所述推荐记录所在的数据文件的编号以及所述推荐记录在所述数据文件中的偏移地址。
11.根据权利要求10所述的装置,其特征在于,还包括:
第三写入模块,用于在所述数据文件中写入该数据文件包含的数据单元个数U,每个推荐记录包含的推荐内容标识的条数上限V以及该数据文件中的数据单元的使用标记,其中U和V均为大于2的整数。
12.根据权利要求11所述的装置,其特征在于,U=2m,V=2n,其中m和n均是大于1的整数。
13.根据权利要求11所述的装置,其特征在于,还包括:
第一获取模块,用于获取待读取的推荐记录所在的数据文件的编号;
第二获取模块,用于获取待读取的推荐记录位于其所在的数据文件中的偏移地址;
第一读取模块,用于读取所述推荐记录的指针;
第一判断模块,用于判断所述指针保存的地址是否大于所述推荐内容标识的条数上限V;
第一反馈模块,用于在所述指针保存的地址大于所述推荐内容标识的条数上限V时,返回所述数据文件中该用户的所有推荐内容标识;
第二反馈模块,用于在所述指针保存的地址不大于所述推荐内容标识的条数上限V时,返回所述数据文件中该推荐记录单元从起始区域至指针保存的地址之前的所有推荐内容标识。
14.根据权利要求11所述的装置,其特征在于,还包括:
第三获取模块,用于获取待写入的推荐内容标识对应的推荐记录所在的数据文件的编号;
第四获取模块,用于获取待写入的推荐内容标识对应的推荐记录在其所在的数据文件中的偏移地址;
第二读取模块,用于读取所述推荐记录的指针;
第一计算模块,用于用该指针保存的地址与推荐记录所包含的推荐内容标识的条数上限V取余得到待写入推荐内容标识的写入地址;
第三写入模块,用于从所述写入地址开始逐条写入待写入的推荐内容标识。
15.根据权利要求11所述的装置,其特征在于,还包括:
第一查找模块,用于遍历所述数据文件中的数据单元的使用标记找到一个可用的数据单元;
第一更改模块,用于将该数据单元的使用标记修改为被使用状态;
初始化模块,用于将该数据单元的指针置零并初始化所述数据单元;
插入模块,用于以所述数据单元所在的数据文件的编号以及所述数据单元在所述数据文件内的偏移为Value字段的值,以新增用户的用户ID为Key字段的值,将所述新增用户信息插入索引区。
16.根据权利要求11所述的装置,其特征在于,还包括:
第二查找模块,用于根据待删除用户的用户ID在索引区确定待删除的推荐记录对应的数据文件编号和所述推荐记录在所述数据文件中的偏移地址;
第三查找模块,用于根据所述数据文件编号加载对应的数据文件,根据所述推荐记录在所述数据文件中的偏移地址确定所述待删除推荐记录对应的数据单元的使用标记;
第二更改模块,用于将所述待删除推荐记录对应的数据单元的使用标记修改为未使用状态。
17.根据权利要求10-16任意一项所述的装置,其特征在于,将对一个数据单元的操作分配到同一个线程中依次执行。
18.根据权利要求10-16任意一项所述的装置,其特征在于,将对一个数据文件的操作分配到同一个线程中依次执行。
CN201710207516.7A 2017-03-31 2017-03-31 数据处理方法及数据处理装置 Active CN106980685B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710207516.7A CN106980685B (zh) 2017-03-31 2017-03-31 数据处理方法及数据处理装置
PCT/CN2018/081348 WO2018177414A1 (zh) 2017-03-31 2018-03-30 数据处理方法及数据处理装置、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710207516.7A CN106980685B (zh) 2017-03-31 2017-03-31 数据处理方法及数据处理装置

Publications (2)

Publication Number Publication Date
CN106980685A true CN106980685A (zh) 2017-07-25
CN106980685B CN106980685B (zh) 2020-04-17

Family

ID=59339087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710207516.7A Active CN106980685B (zh) 2017-03-31 2017-03-31 数据处理方法及数据处理装置

Country Status (2)

Country Link
CN (1) CN106980685B (zh)
WO (1) WO2018177414A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108052290A (zh) * 2017-12-13 2018-05-18 北京百度网讯科技有限公司 用于存储数据的方法和装置
WO2018177414A1 (zh) * 2017-03-31 2018-10-04 广东神马搜索科技有限公司 数据处理方法及数据处理装置、计算设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103353887A (zh) * 2013-06-28 2013-10-16 贵阳朗玛信息技术股份有限公司 用户数据查找方法及装置
CN103797770A (zh) * 2012-12-31 2014-05-14 华为技术有限公司 一种共享存储资源的方法和系统
CN105608117A (zh) * 2015-12-14 2016-05-25 微梦创科网络科技(中国)有限公司 一种信息推荐方法及装置
CN105808618A (zh) * 2014-12-31 2016-07-27 阿里巴巴集团控股有限公司 Feed 数据的存储和查询方法及其装置
CN106445416A (zh) * 2016-09-22 2017-02-22 飞天诚信科技股份有限公司 一种数据记录的存储、查询和检索的方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101533408B (zh) * 2009-04-21 2015-02-04 北京四维图新科技股份有限公司 一种海量数据的处理方法及处理装置
CN104133661B (zh) * 2014-07-30 2017-01-18 西安电子科技大学 基于列存储的多核并行哈希分区优化方法
EP3113038B1 (en) * 2015-06-29 2023-08-16 Broadridge Financial Solutions Limited A data handling method
CN105912687B (zh) * 2016-04-19 2019-05-24 江苏物联网研究发展中心 海量分布式数据库存储单元
CN106980685B (zh) * 2017-03-31 2020-04-17 广东神马搜索科技有限公司 数据处理方法及数据处理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103797770A (zh) * 2012-12-31 2014-05-14 华为技术有限公司 一种共享存储资源的方法和系统
CN103353887A (zh) * 2013-06-28 2013-10-16 贵阳朗玛信息技术股份有限公司 用户数据查找方法及装置
CN105808618A (zh) * 2014-12-31 2016-07-27 阿里巴巴集团控股有限公司 Feed 数据的存储和查询方法及其装置
CN105608117A (zh) * 2015-12-14 2016-05-25 微梦创科网络科技(中国)有限公司 一种信息推荐方法及装置
CN106445416A (zh) * 2016-09-22 2017-02-22 飞天诚信科技股份有限公司 一种数据记录的存储、查询和检索的方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018177414A1 (zh) * 2017-03-31 2018-10-04 广东神马搜索科技有限公司 数据处理方法及数据处理装置、计算设备及存储介质
CN108052290A (zh) * 2017-12-13 2018-05-18 北京百度网讯科技有限公司 用于存储数据的方法和装置
US10860478B2 (en) 2017-12-13 2020-12-08 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and device for storing data

Also Published As

Publication number Publication date
WO2018177414A1 (zh) 2018-10-04
CN106980685B (zh) 2020-04-17

Similar Documents

Publication Publication Date Title
CN110941740B (zh) 视频推荐方法及计算机可读存储介质
KR102122373B1 (ko) 사용자 포트레이트를 획득하는 방법 및 장치
US11636341B2 (en) Processing sequential interaction data
CN105094707B (zh) 一种数据存储、读取方法及装置
CN110413888B (zh) 一种书籍推荐方法及装置
CN108765052A (zh) 电商推荐/推送方法及装置、存储介质及计算设备
CN108346107A (zh) 一种社交内容风险识别方法、装置以及设备
CN110955659A (zh) 处理数据表的方法及系统
CN113934851A (zh) 用于文本分类的数据增强方法、装置及电子设备
CN110209875A (zh) 用户内容画像确定方法、访问对象推荐方法和相关装置
CN108133357A (zh) 一种人才推荐方法及计算设备
CN103366013B (zh) 一种数据处理的方法及服务器
CN108959453A (zh) 基于文本聚类的信息提取方法、装置及可读存储介质
CN111291125A (zh) 一种数据处理方法及相关设备
CN105164672A (zh) 内容分类
CN106980685A (zh) 数据处理方法及数据处理装置
CN113626443B (zh) 索引的数据处理方法、装置、计算机设备和存储介质
CN110851708B (zh) 负样本的抽取方法、装置、计算机设备和存储介质
CN110389714A (zh) 用于数据输入输出的方法、装置和计算机存储介质
CN108804491A (zh) 项目推荐方法、装置、计算设备及存储介质
CN108563648A (zh) 数据显示方法和装置、存储介质及电子装置
CN108304469A (zh) 用于字符串模糊匹配的方法和装置
CN110334064A (zh) 一种日志文件的处理方法及相关装置
CN102722543B (zh) 一种用于文件储存的方法
CN110134943A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200528

Address after: 310051 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 13 layer self unit 01

Patentee before: GUANGZHOU SHENMA MOBILE INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210302

Address after: 510335 room 2501, 83 Pazhou Avenue, Haizhu District, Guangzhou City, Guangdong Province

Patentee after: Guangdong Shenma Search Technology Co.,Ltd.

Address before: Room 508, 5 / F, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Alibaba (China) Co.,Ltd.