CN110019210B - 数据写入方法及设备 - Google Patents

数据写入方法及设备 Download PDF

Info

Publication number
CN110019210B
CN110019210B CN201711195546.7A CN201711195546A CN110019210B CN 110019210 B CN110019210 B CN 110019210B CN 201711195546 A CN201711195546 A CN 201711195546A CN 110019210 B CN110019210 B CN 110019210B
Authority
CN
China
Prior art keywords
data
classifying
written
writing
determining
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
CN201711195546.7A
Other languages
English (en)
Other versions
CN110019210A (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 CN201711195546.7A priority Critical patent/CN110019210B/zh
Publication of CN110019210A publication Critical patent/CN110019210A/zh
Application granted granted Critical
Publication of CN110019210B publication Critical patent/CN110019210B/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据写入方案,该方案在接收到待写入的数据之后,对所述数据进行归类,确定归类结果,然后根据所述数据的归类结果,确定所述数据对应的数据块,最终将所述数据写入至对应的数据块中。由于在将数据写入至数据块之前,对数据进行了归类,因此预设的数据块(例如某个或者某组数据块)中都会存储属于某一归类结果的数据,而归类的策略可以根据实际使用的场景进行设定,使得归类结果与用户查询数据的需求相适应,由此在读取数据时,需要的数据集中会分布在数量较少的数据块中,从而提高效率,节约资源。

Description

数据写入方法及设备
技术领域
本申请涉及信息技术领域,尤其涉及一种数据写入方法及设备。
背景技术
在分布式存储的场景中,数据在达到数据库时会被随机写入到各个数据块中。例如,有1万个传感器,每个传感器每秒上传1条数据,因为每秒都有1万条数据写入数据库,每条数据在达到数据库时会被随机写入到各个数据块中,由于数据写入是乱序的,因此每秒的1万条数据会散落到各个不同的数据块中。
在读取数据时的处理过程如图1所示,若需要读取的n条数据100分布在数据块1~n中,那么需要将这所有的n个数据块读取至共享内存区,然后从共享内存区的数据块中需要的n条数据。在此过程中,需要将这n个数据块中的所有内容读入共享内存区,然后检索出其中需要的n条数据。
例如,若需要查询某一秒内10个传感器的数据,很有可能这10条数据会写入到10个不同数据块中,因此读取这10条数据时,需要将这10个数据块的所有内容读入共享内存区,然后在其中检索需要的1条数据。由于每个数据块中还包含其它无关的数据,因此目前的数据写入方式会导致读取数据时效率较低,浪费资源。
申请内容
本申请的一个目的是提供一种数据写入的方案,用以解决现有技术中的数据写入方式会导致读取数据时效率较低,浪费资源的问题。
为实现上述目的,本申请提供了一种数据写入方法,该设备包括:
接收待写入的数据,基于所述数据的内容对所述数据进行归类,确定归类结果;
根据所述数据的归类结果,确定所述数据对应的数据块;
将所述数据写入至对应的数据块。
进一步地,接收待写入的数据,对所述数据进行归类,确定归类结果,包括:
接收待写入的数据,将所述数据写入缓冲存储区;
在满足触发条件时,读取所述缓冲存储区的数据,并对所述数据进行归类,确定归类结果。
进一步地,对所述数据进行归类,确定归类结果,包括:
基于所述数据的内容对所述数据进行归类,确定归类结果。
进一步地,基于所述数据的内容对所述数据进行归类,确定归类结果,包括:
基于所述数据的至少一个字段的内容对所述数据进行归类,确定归类结果。
进一步地,基于所述数据的至少一个字段的内容对所述数据进行归类,确定归类结果,包括:
基于所述数据的至少一个字段的内容计算所述数据的归类值;
根据所述归类值和数据的归类数量,确定归类结果。
进一步地,根据所述数据的归类结果,确定所述数据对应的数据块,包括:
根据所述数据的归类结果,选取该数据的归类结果对应的一个待写入数据块;
判断所述待写入数据块的数据量是否达到阈值,若为是,重新选取所述归类结果对应的另一待写入数据块;
若为否,将选取的待写入数据块确定为所述数据对应的数据块。
进一步地,将所述数据写入至对应的数据块,包括:
将需要写入同一数据块的多条数据根据写入顺序写入该数据块,其中,所述写入顺序基于所述多条数据中的至少一个字段的内容进行排序确定。
基于本申请的另一方面,还包括一种数据写入设备,该设备包括:
传输装置,用于接收待写入的数据;
归类处理装置,用于对所述数据进行归类,确定归类结果,并根据所述数据的归类结果,确定所述数据对应的数据块;
数据写入装置,用于将所述数据写入至对应的数据块。
进一步地,所述数据写入装置,还用于在接收到待写入的数据时,将所述数据写入缓冲存储区;
所述归类处理装置,用于在满足触发条件时,读取所述缓冲存储区的数据,并对所述数据进行归类,确定归类结果。
进一步地,所述归类处理装置,基于所述数据的内容对所述数据进行归类,确定归类结果。
进一步地,所述归类处理装置,用于基于所述数据的至少一个字段的内容对所述数据进行归类,确定归类结果。
进一步地,所述归类处理装置,用于基于所述数据的至少一个字段的内容计算所述数据的归类值,根据所述归类值和数据的归类数量,确定归类结果。
进一步地,所述归类处理装置,用于根据所述数据的归类结果,选取该数据的归类结果对应的一个待写入数据块;以及判断所述待写入数据块的数据量是否达到阈值,若为是,重新选取所述归类结果对应的另一待写入数据块;
若为否,将选取的待写入数据块确定为所述数据对应的数据块。
进一步地,所述数据写入装置,用于将需要写入同一数据块的多条数据根据写入顺序写入该数据块,其中,所述写入顺序基于所述多条数据中的至少一个字段的内容进行排序确定。
此外,本申请还提供一种数据写入设备,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述任一项的方法。
本申请提供的方案中,在接收到待写入的数据后,对所述数据进行归类,确定归类结果,然后根据所述数据的归类结果,确定所述数据对应的数据块,最终将所述数据写入至对应的数据块中。由于在将数据写入至数据块之前,对数据进行了归类,因此预设的数据块(例如某个或者某组数据块)中都会存储属于某一归类结果的数据,而归类的策略可以根据实际使用的场景进行设定,使得归类结果与用户查询数据的需求相适应,由此在读取数据时,需要的数据集中会分布在数量较少的数据块中,从而提高效率,节约资源。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为使用现有的方式写入数据后读取数据时的示意图;
图2为本申请实施例提供的一种数据写入方法的处理流程图;
图3为使用本申请实施例提供的方法在进行数据写入时的原理示意图;
图4为使用本申请实施例提供的方法在进行数据写入时所使用的自定义规则的示意图;
图5为使用现有的方式写入网页数据后读取数据时的示意图;
图6为使用本申请实施例提供的方式写入网页数据后读取数据时的示意图;
图7为本申请实施例提供的一种数据写入设备的结构示意图;
图8为本申请实施例提供的另一种数据写入设备的结构示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何设备或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
在分布式存储的场景中,数据在达到数据库时会被随机写入到各个数据块中,由于数据写入是乱序的,因此容易造成用户在查询数据时,目标数据散落在各个不同的数据块中,使得读取数量较多的数据块,占用的内存过多,查询性能低。
而在数据库中设置分区表可以在一定程度上应对上述问题。分区表的方式是指将一张数据表分成多个子集,每个子集即为一个分区,每一个分区中可以存放特定内容的数据。例如前述传感器数据的场景中,若使用分区表的方式来存放数据,若这10个传感器的数据都会存放在同一个分区内,由于该分区对应的数据块少于整个数据表对应的数据块,虽然每个分区的数据写入仍然是乱序的,但是这10条数据有可能会仅写入到3个或者4个不同数据块中。由此,可以在一定程度上提高读取数据时的效率。但是分区表的方式仍然会有较多的问题。
本申请实施例提供了一种数据写入方法,该设备可以应用于运行有数据库系统中,其执行主体可以是运行有数据库系统的服务器,可以在避免分区表的现有问题的基础上,使得写入后的数据在查询时能够有更高的查询效率。该设备的处理流程如图2所示,包括以下处理步骤:
步骤S201,接收待写入的数据,对所述数据进行归类,确定归类结果。其中,归类是指基于设定的策略对数据进行分类,例如设定的策略可以是与数据的内容相关,即基于所述数据的内容对所述数据进行归类,确定归类结果,或者也可以是基于数据的其它属性,例如接收到数据的时间、生成数据的时间等等。
在实际场景中,可以基于所述数据的至少一个字段的内容对所述数据进行归类,确定归类结果。例如可以基于数据中一个或多个字段的内容进行分类,以传感器上传的数据为例,若数据的字段中包含位置信息,则可以基于传感器所在的地理位置对传感器的数据进行归类,将分布于某一范围内的传感器所上传的数据确定为一个归类结果。
此外,也可以是基于所述数据的至少一个字段的内容计算所述数据的归类值,然后根据所述归类值和数据的归类数量,确定归类结果。在基于所述数据的至少一个字段的内容计算所述数据的归类值时,可以采用各类可以用来进行聚类的函数对字段的内容进行运算,例如对数据的一个或者多个字段采用hash算法或者kmeans算法进行计算之后,根据计算的结果确定数据的归类结果。
以某一数据A为例,该归类的策略主要包括归类的函数运算表达式以及归类的数量,在本实施例中归类的函数运算表达式可以是:kmean(字段1),hash(字段3),归类的数量为:100。其含义为:基于数据的字段1进行kmean归类,计算出kmean函数的计算结果,同时基于字段3进行hash归类,计算出hash函数的计算结果,基于这两个计算结果可以确定归类值,例如本实施例中归类值可以是两个计算结果的乘积,即kmean(字段1)×hash(字段3)。进而根据归类值和归类数量可以确定最终归类结果,例如本实施例确定归类值的计算公式可以是:
mod(abs(kmean(字段1)×hash(字段3)),100)
其中,函数mod(a,b)用于计算a关于b的余数,函数abs(c)用于计算c的绝对值。若本申请实施例中kmean(字段1)=-192,hash(字段3)=10,则归类结果=mod(abs(-192×10),100=mod(1920,100)=20。
步骤S202,根据所述数据的归类结果,确定所述数据对应的数据块。若每个归类结果有特定的数据块与其相对应,那么20的归类结果可以与20号的数据块对应,由此可以确定所述数据对应的数据块为20号数据块。
由于每个数据块可以写入的数据量有限,随着写入的数据量的增长,当数据A写入时,该20号数据块可能已经写满。由此,在确定数据对应的数据块时,首先根据所述数据的归类结果,选取该数据的归类结果对应的一个待写入数据块,然后判断所述待写入数据块的数据量是否达到阈值,若为是,重新选取所述归类结果对应的另一待写入数据块;若为否,将选取的待写入数据块确定为所述数据对应的数据块。
上述方式中,所有可选的待写入数据块可以是与每个归类结果对应的一组数据块,例如当归类的数量为100时,与归类结果20对应的一组数据块的序号可以是20、120、220……,20+100n,当判断出20号数据块写满时,可以尝试写入后一数据块(即120号数据块),若120号数据块也写满了,则可以尝试写入220号数据块,以此类推。
步骤S203,将所述数据写入至对应的数据块。在高并发的场景中,在同一时间接收到的待写入的数据可能会较多,例如同时有20个数据需要写入数据块,在对上述数据进行归类时,可以基于这些数据中的至少一个字段的内容进行排序确定,在写入时数据块时可以根据排序确定的写入顺序进行写入。
由于在将数据写入至数据块之前,对数据进行了归类,因此预设的数据块(例如某个或者某组数据块)中都会存储属于某一归类结果的数据,而归类的策略可以根据实际使用的场景进行设定,使得归类结果与用户查询数据的需求相适应。由此在读取数据时,需要的数据集中会分布在数量较少的数据块中,从而提高效率,节约资源。
若每个数据块可以并行写入,可以仅对需要写入同一数据块的多条数据进行排序,例如同一时间需要向5个数据块写入7条数据,其中1~4号数据块分别需要写入一条数据,5号数据块需要写入3条数据,此时可以仅对需要写入5号数据块的3条数据进行排序,例如根据数据的字段2的内容进行顺序排序,确定写入顺序。在写入时根据写入顺序依次将这3条数据写入5号数据块。
在本申请的另一实施例中,为了不影响数据的写入速度,可以设置一缓冲存储区。在接收到待写入的数据时,先将所述数据写入缓冲存储区,在满足触发条件时,读取所述缓冲存储区的数据,进行后续的归类并写入相应的数据块,如图3所示。其中,触发条件可以根据实际的应用场景的需求来设定,例如触发条件与缓冲存储区的数据量相关,或者也可以与时间相关。在本申请的一种实施例中,触发条件可以是在缓冲存储区的数据量达到阈值,该阈值可以设定为N条数据或者预设的数据量,例如,写入缓冲存储区的数据的达到N条或者写满时,读取所述缓冲存储区中的当前数据,进行后续处理。若触发条件与时间相关,则可以设定为经过一定的时间间隔,例如设定每隔2s从缓冲存储区读取一次数据。
在实际场景中,根据定义的归类策略的不同,本申请的方案可以应用于不同的领域。例如可以应用于如下领域:
金融领域中的股票数据,用户经常需要查询某一只或者某一板块的股票在某个时间段的数据,那么归类时可以按照股票的标识或者股票所属板块的标识对其数据进行归类,同时在写入时可以按照时间进行排序。
物联网领域中,用户经常需要查询指定传感器的数据,那么归类策略可以是根据传感器的标识进行归类,使得每个传感器的数据都写入到同一个或者同一组数据块中,由此在查询该传感器数据时,仅需要从特定的一个或者一组数据块中读取数据。
类似地,在车联网领域中,用户经常需要查询某辆车的行驶轨迹,那么归类策略可以根据车辆的标识对车辆上传的位置数据进行归类。在公安领域中,经常需要查询相似面部特征的人,那么归类策略可以是根据基于人脸的图片中的特征信息进行归类。在搜索引擎中,用户经常需要查询包含某些词的网页,那么归类策略可以是将包含这些词的各个网页尽量归为一类,写入同一个或者同一组数据块中。当归类的策略与用户的查询需求对应时,数据能够按照查询需求分布在相应的数据块中,由此查询时需要读取并搜索数据块更少,性能提升非常明显。
本申请实施例以搜索引擎中搜索网页的场景为例,对本申请提供的数据写入方法进行详细说明。网页数据在写入数据库时,若按照乱序的方式直接写入数据库中时,在数据块较多且数据高并发的情况下,极有可能包含这些关键词的网页数据会分散在各个不同的数据块中。例如,用户搜索的关键词包含:阿里巴巴、支付宝、阿里云、淘宝和天猫,包含这些关键词的网页数据写入的数据块的分布如下表所示:
其中,表格中的内容Yes表示某一数据块中保存有某一关键词的网页数据,例如数据块1中保存有包含“阿里巴巴”这一关键词的网页。反之,No表示某一数据块中未保存某一关键词的网页数据,例如数据块2中未保存包含“阿里巴巴”这一关键词的网页。在上述情况下,若用户查询包含上述关键词的网页,则至少需要读取数据块1~5以及n,如图5所示。
在采用本申请实施例提供的设备写入这些网页数据时,可以将收到的待写入的网页数据先放入缓冲存储区。在缓冲存储区的数据量达到阈值时,根据用户定义的规则对这些数据进行梳理,其中用户定义的规则可以包括归类的策略和排序的策略,如图4所示。归类的策略可以基于地理位置、kmeans、hash或者其它自定义的规则,例如在本申请中可以基于“阿里巴巴、支付宝、阿里云、淘宝和天猫”这些关键词的特点确定一个用于归类的特征,使得包含这些关键词的网页数据都会被确定为一个归类结果或者几个近似的归类结果。而排序的策略可以是基于数据部分内容进行顺序、逆序或者其它自定义的方式排序,例如根据数据生成时间进行顺序排序,从而确定写入数据块的顺序。
假设本申请实施例中,基于上述关键词的特点确定的特征最终将包含上述关键词的网页数据归类为两个种归类结果,这两个归类结果对应的数据块分别为数据块1和数据块2,那么所有在网页数据写入数据库后,其结果如下表所示:
即“阿里巴巴、支付宝、阿里云、淘宝和天猫”这些关键词对应的网页数据都集中保存于数据块1和数据块2中。由此,若用户查询包含上述关键词的网页时,仅需要读取数据块1和2,如图6所示,相较于图5对应的情况,其内存占用较少,搜索效率较高。
基于同一发明构思,本申请实施例中还提供了实现上述数据写入方法的设备,所述设备对应的方法是前述实施例中的方法,并且其解决问题的原理与该方法相似。
图7示出了本申请实施例提供的一种数据写入设备,可以应用于运行有数据库系统中,其具体实现可以是运行有数据库系统的服务器,可以在避免分区表的这些问题的基础上,使得写入后的数据在查询时能够有更高的查询效率。该设备包括传输装置710、归类处理装置720和数据写入装置730,其中,传输装置710用于接收待写入的数据,而在接收到待写入的数据后,归类处理装置720可以对所述数据进行归类,确定归类结果。其中,归类是指基于设定的策略对数据进行分类,例如设定的策略可以是与数据的内容相关,即基于所述数据的内容对所述数据进行归类,确定归类结果,或者也可以是基于数据的其它属性,例如接收到数据的时间、生成数据的时间等等。
在实际场景中,可以基于所述数据的至少一个字段的内容对所述数据进行归类,确定归类结果。例如可以基于数据中一个或多个字段的内容进行分类,以传感器上传的数据为例,若数据的字段中包含位置信息,则可以基于传感器所在的地理位置对传感器的数据进行归类,将分布于某一范围内的传感器所上传的数据确定为一个归类结果。
此外,也可以是基于所述数据的至少一个字段的内容计算所述数据的归类值,然后根据所述归类值和数据的归类数量,确定归类结果。在基于所述数据的至少一个字段的内容计算所述数据的归类值时,可以采用各类可以用来进行聚类的函数对字段的内容进行运算,例如对数据的一个或者多个字段采用hash算法或者kmeans算法进行计算之后,根据计算的结果确定数据的归类结果。
以某一数据A为例,该归类的策略主要包括归类的函数运算表达式以及归类的数量,在本实施例中归类的函数运算表达式可以是:kmean(字段1),hash(字段3),归类的数量为:100。其含义为:基于数据的字段1进行kmean归类,计算出kmean函数的计算结果,同时基于字段3进行hash归类,计算出hash函数的计算结果,基于这两个计算结果可以确定归类值,例如本实施例中归类值可以是两个计算结果的乘积,即kmean(字段1)×hash(字段3)。进而根据归类值和归类数量可以确定最终归类结果,例如本实施例确定归类值的计算公式可以是:
mod(abs(kmean(字段1)×hash(字段3)),100)
其中,函数mod(a,b)用于计算a关于b的余数,函数abs(c)用于计算c的绝对值。若本申请实施例中kmean(字段1)=-192,hash(字段3)=10,则归类结果=mod(abs(-192×10),100=mod(1920,100)=20。
在确定归类结果后,归类处理装置720可以根据所述数据的归类结果,确定所述数据对应的数据块。若每个归类结果有特定的数据块与其相对应,那么20的归类结果可以与20号的数据块对应,由此可以确定所述数据对应的数据块为20号数据块。
由于每个数据块可以写入的数据量有限,随着写入的数据量的增长,当数据A写入时,该20号数据块可能已经写满。由此,在确定数据对应的数据块时,首先根据所述数据的归类结果,选取该数据的归类结果对应的一个待写入数据块,然后判断所述待写入数据块的数据量是否达到阈值,若为是,重新选取所述归类结果对应的另一待写入数据块;若为否,将选取的待写入数据块确定为所述数据对应的数据块。
上述方式中,所有可选的待写入数据块可以是与每个归类结果对应的一组数据块,例如当归类的数量为100时,与归类结果20对应的一组数据块的序号可以是20、120、220……,20+100n,当判断出20号数据块写满时,可以尝试写入后一数据块(即120号数据块),若120号数据块也写满了,则可以尝试写入220号数据块,以此类推。
数据写入装置730用于将所述数据写入至对应的数据块。在高并发的场景中,在同一时间接收到的待写入的数据可能会较多,例如同时有20个数据需要写入数据块,在对上述数据进行归类时,可以基于这些数据中的至少一个字段的内容进行排序确定,在写入时数据块时可以根据排序确定的写入顺序进行写入。
由于在将数据写入至数据块之前,归类处理装置720对数据进行了归类,因此预设的数据块(例如某个或者某组数据块)中都会存储属于某一归类结果的数据,而归类的策略可以根据实际使用的场景进行设定,使得归类结果与用户查询数据的需求相适应。由此在读取数据时,需要的数据集中会分布在数量较少的数据块中,从而提高效率,节约资源。
若每个数据块可以并行写入,可以仅对需要写入同一数据块的多条数据进行排序,例如同一时间需要向5个数据块写入7条数据,其中1~4号数据块分别需要写入一条数据,5号数据块需要写入3条数据,此时可以仅对需要写入5号数据块的3条数据进行排序,例如根据数据的字段2的内容进行顺序排序,确定写入顺序。在写入时根据写入顺序依次将这3条数据写入5号数据块。
在本申请的另一实施例中,为了不影响数据的写入速度,可以设置一缓冲存储区。在接收到待写入的数据时,数据写入装置730先将所述数据写入缓冲存储区,在满足触发条件时,归类处理装置720可以读取所述缓冲存储区的数据,进行后续的归类并写入相应的数据块,如图3所示。其中,触发条件可以根据实际的应用场景的需求来设定,例如触发条件与缓冲存储区的数据量相关,或者也可以与时间相关。在本申请的一种实施例中,触发条件可以是在缓冲存储区的数据量达到阈值,该阈值可以设定为N条数据或者预设的数据量,例如,写入缓冲存储区的数据的达到N条或者写满时,读取所述缓冲存储区中的当前数据,进行后续处理。若触发条件与时间相关,则可以设定为经过一定的时间间隔,例如设定每隔2s从缓冲存储区读取一次数据。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个如图8所示的设备,该设备包括用于存储计算机程序指令的存储器810和用于执行程序指令的处理器820,其中,当该计算机程序指令被该处理器执行时,触发该设备运行基于前述根据本申请的多个实施例的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机的存储器中,所述存储器可以是任意计算机可读介质,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (9)

1.一种数据写入方法,其中,该方法包括:
接收待写入的数据,对所述数据进行归类,确定归类结果;所述归类结果为根据所述待写入的数据的至少一个字段的内容计算得到的;所述归类结果与查询数据的需求相适应,以使得在读取数据时,需要的数据集中分布在数量少于设定阈值的数据块中;
根据所述数据的归类结果,确定所述数据对应的数据块;
将所述数据写入至对应的数据块;
其中,对所述数据进行归类,确定归类结果,包括:
基于所述数据的至少一个字段的内容计算所述数据的归类值;
根据所述归类值和数据的归类数量,确定归类结果;
其中,根据所述归类值和数据的归类数量,确定归类结果,包括:
计算所述归类值关于所述归类数量的余数,将所述余数确定为归类结果。
2.根据权利要求1所述的方法,其中,接收待写入的数据,对所述数据进行归类,确定归类结果,包括:
在接收到待写入的数据时,将所述数据写入缓冲存储区;
在满足触发条件时,读取所述缓冲存储区的数据,并对所述数据进行归类,确定归类结果。
3.根据权利要求1所述的方法,其中,根据所述数据的归类结果,确定所述数据对应的数据块,包括:
根据所述数据的归类结果,选取该数据的归类结果对应的一个待写入数据块;
判断所述待写入数据块的数据量是否达到阈值,若为是,重新选取所述归类结果对应的另一待写入数据块;
若为否,将选取的待写入数据块确定为所述数据对应的数据块。
4.根据权利要求1所述的方法,其中,将所述数据写入至对应的数据块,包括:
将需要写入同一数据块的多条数据根据写入顺序写入该数据块,其中,所述写入顺序基于所述多条数据中的至少一个字段的内容进行排序确定。
5.一种数据写入设备,其中,该设备包括:
传输装置,用于接收待写入的数据;
归类处理装置,用于对所述数据进行归类,确定归类结果,并根据所述数据的归类结果,确定所述数据对应的数据块;所述归类结果为根据所述待写入的数据的至少一个字段的内容计算得到的;所述归类结果与查询数据的需求相适应,以使得在读取数据时,需要的数据集中分布在数量少于设定阈值的数据块中;
数据写入装置,用于将所述数据写入至对应的数据块;
其中,所述归类处理装置,用于基于所述数据的至少一个字段的内容计算所述数据的归类值,根据所述归类值和数据的归类数量,确定归类结果;
其中,所述归类处理装置,用于计算所述归类值关于所述归类数量的余数,将所述余数确定为归类结果。
6.根据权利要求5所述的设备,其中,所述数据写入装置,还用于在接收到待写入的数据时,将所述数据写入缓冲存储区;
所述归类处理装置,用于在满足触发条件时,读取所述缓冲存储区的数据,并对所述数据进行归类,确定归类结果。
7.根据权利要求5所述的设备,其中,所述归类处理装置,用于根据所述数据的归类结果,选取该数据的归类结果对应的一个待写入数据块;以及判断所述待写入数据块的数据量是否达到阈值,若为是,重新选取所述归类结果对应的另一待写入数据块;
若为否,将选取的待写入数据块确定为所述数据对应的数据块。
8.根据权利要求5所述的设备,其中,所述数据写入装置,用于将需要写入同一数据块的多条数据根据写入顺序写入该数据块,其中,所述写入顺序基于所述多条数据中的至少一个字段的内容进行排序确定。
9.一种数据写入设备,其中,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至4中任一项所述的方法。
CN201711195546.7A 2017-11-24 2017-11-24 数据写入方法及设备 Active CN110019210B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711195546.7A CN110019210B (zh) 2017-11-24 2017-11-24 数据写入方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711195546.7A CN110019210B (zh) 2017-11-24 2017-11-24 数据写入方法及设备

Publications (2)

Publication Number Publication Date
CN110019210A CN110019210A (zh) 2019-07-16
CN110019210B true CN110019210B (zh) 2024-01-09

Family

ID=67186832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711195546.7A Active CN110019210B (zh) 2017-11-24 2017-11-24 数据写入方法及设备

Country Status (1)

Country Link
CN (1) CN110019210B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104066B (zh) * 2019-12-17 2021-07-27 华中科技大学 数据写入方法、装置及存储服务器和计算机可读存储介质
CN113297232B (zh) * 2020-07-31 2024-03-01 阿里巴巴集团控股有限公司 一种基于数据库分区的数据更新方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123300A (zh) * 2013-04-26 2014-10-29 上海云人信息科技有限公司 数据分布式存储系统及方法
CN106528841A (zh) * 2016-11-24 2017-03-22 简极科技有限公司 智能足球赛事成绩记录分析系统及方法
CN107045531A (zh) * 2017-01-20 2017-08-15 郑州云海信息技术有限公司 一种优化hdfs小文件存取的系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123300A (zh) * 2013-04-26 2014-10-29 上海云人信息科技有限公司 数据分布式存储系统及方法
CN106528841A (zh) * 2016-11-24 2017-03-22 简极科技有限公司 智能足球赛事成绩记录分析系统及方法
CN107045531A (zh) * 2017-01-20 2017-08-15 郑州云海信息技术有限公司 一种优化hdfs小文件存取的系统及方法

Also Published As

Publication number Publication date
CN110019210A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
US8290927B2 (en) Method and apparatus for rating user generated content in search results
US9147154B2 (en) Classifying resources using a deep network
US7769740B2 (en) Systems and methods of ranking attention
TWI652584B (zh) 文本資訊的匹配、業務對象的推送方法和裝置
US20150199433A1 (en) Method and system for search engine indexing and searching using the index
US9311406B2 (en) Discovering trending content of a domain
WO2019169978A1 (zh) 资源推荐方法及装置
US20080065602A1 (en) Selecting advertisements for search results
US20080082485A1 (en) Personalized information retrieval search with backoff
CN110858210B (zh) 数据查询方法及装置
CN110019210B (zh) 数据写入方法及设备
CN106878242B (zh) 一种确定用户身份类别的方法及装置
US20140105509A1 (en) Systems and methods for comparing images
Guan et al. dpSmart: a flexible group based recommendation framework for digital repository systems
US10147095B2 (en) Chain understanding in search
CN108073356B (zh) 一种数据存储、查找方法、装置及数据处理系统
Chung et al. Multiple k nearest neighbor search
CN107729547A (zh) 检索朋友圈消息的方法与设备
CN110188301B (zh) 用于网站的信息聚合方法及装置
CN111368616B (zh) 从车的识别方法、装置及设备
Ahmed et al. Reverse spatial top-k keyword queries
US11748656B1 (en) Decision tree learning with missing data
CN114491197B (zh) 一种基于大数据的数据库扩展方法和装置
CN108399254B (zh) 关联词调整方法及调整系统
US11838597B1 (en) Systems and methods for content discovery by automatic organization of collections or rails

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40010866

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20210914

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

Applicant after: Alibaba (China) 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
TA01 Transfer of patent application right

Effective date of registration: 20211123

Address after: 310000 No. 12, Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

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

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

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant