CN109522311A - 数据存储方法、装置、服务器和存储介质 - Google Patents
数据存储方法、装置、服务器和存储介质 Download PDFInfo
- Publication number
- CN109522311A CN109522311A CN201811385702.0A CN201811385702A CN109522311A CN 109522311 A CN109522311 A CN 109522311A CN 201811385702 A CN201811385702 A CN 201811385702A CN 109522311 A CN109522311 A CN 109522311A
- Authority
- CN
- China
- Prior art keywords
- data
- written
- opentsdb
- unique identification
- response
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据存储方法、装置、服务器和存储介质。该方法包括:确定批量数据中各条数据关联的响应实例;其中,所述响应实例是将数据库的逻辑表分解为至少两个物理表,并构建各物理表的主从OpenTSDB实例得到的;向各响应实例发送关联的待写入数据,且采用各响应实例将关联的待写入数据写入关联的物理表中。本发明实施例通过主从实例的部署方式以及物理表的横向扩展,在OpenTSDB数据读写服务中规避参数标识的同步锁控制机制,实现了批量数据的并行写入,提高了批量数据的写入速度和存储结构的可扩展性,优化了OpenTSDB数据读写服务性能。
Description
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种数据存储方法、装置、服务器和存储介质。
背景技术
随着信息时代的快速发展,越来越多的行业逐步利用大量的业务数据进行数据的存储、分析和处理,以在海量业务数据的基础上提高行业与市场的兼容性。
现有技术中,OpenTSDB(Open Time Series Database,开源时间序列数据库)作为建立在数据库上一层的数据读写服务,可支持时序数据的秒级存储以及数据的永久存储,可以从大规模的集群中获取数据指标进行存储、索引以及服务。传统OpenTSDB的缺省工作状态中,为了保证数据中各参数标识的全局唯一性,采用同步锁控制机制对参数标识进行控制,进而OpenTSDB实例只有在获取参数标识的同步锁之后,才能对参数进行处理,并将同步锁释放,以备后续处理操作时使用。进而实现逐条将数据写入数据库中。
然而,虽然单个OpenTSDB实例的数据写入能力约为每秒2000条,但是现有技术无法实现数据写入的并发性。当需要写入的数据量急剧增加时,现有技术难以应对海量数据的写入,导致数据写入的不及时或无法写入,影响数据的有效存储。
发明内容
本发明实施例提供了一种数据存储方法、装置、服务器和存储介质,能够提高批量数据的写入速度和存储结构的可扩展性,优化OpenTSDB数据读写服务性能。
第一方面,本发明实施例提供了一种数据存储方法,包括:
确定批量数据中各条数据关联的响应实例;其中,所述响应实例是将数据库的逻辑表分解为至少两个物理表,并构建各物理表的主从OpenTSDB实例得到的;
向各响应实例发送关联的待写入数据,且采用各响应实例将关联的待写入数据写入关联的物理表中。
第二方面,本发明实施例提供了一种数据存储装置,包括:
实例分配模块,用于确定批量数据中各条数据关联的响应实例;其中,所述响应实例是将数据库的逻辑表分解为至少两个物理表,并构建各物理表的主从OpenTSDB实例得到的;
数据写入模块,用于向各响应实例发送关联的待写入数据,且采用各响应实例将关联的待写入数据写入关联的物理表中。
第三方面,本发明实施例提供了一种服务器,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的数据存储方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的数据存储方法。
本发明实施例通过对OpenTSDB数据读写服务的配置进行改进,采用主从OpenTSDB实例的配置模式;并结合分表技术,预先将数据库的逻辑表分解为多个物理表,以使各主从OpenTSDB实例与各物理表一一对应;从而在批量数据写入时,通过确定批量数据的响应实例,利用各响应实例向对应的物理表写入批量数据。本发明实施例通过主从实例的部署方式以及物理表的横向扩展,在OpenTSDB数据读写服务中规避参数标识的同步锁控制机制,实现了批量数据的并行写入,提高了批量数据的写入速度和存储结构的可扩展性,优化了OpenTSDB数据读写服务性能。
附图说明
图1为本发明实施例一提供的一种数据存储方法的流程图;
图2为本发明实施例一提供的分布式数据存储模式的结构示例图;
图3为本发明实施例二提供的一种数据存储方法的流程图;
图4为本发明实施例二提供的确定响应实例的示例图;
图5为本发明实施例二提供的主OpenTSDB实例进行数据写入的流程图;
图6为本发明实施例三提供的一种数据存储装置的结构示意图;
图7为本发明实施例四提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据存储方法的流程图,本实施例可适用于批量数据写入数据库的情况,该方法可由一种数据存储装置来执行。该方法具体包括如下步骤:
步骤110、确定批量数据中各条数据关联的响应实例;其中,响应实例是将数据库的逻辑表分解为至少两个物理表,并构建各物理表的主从OpenTSDB实例得到的。
在本发明具体实施例中,采用OpenTSDB数据存储服务对底层的Hbase数据库进行时序数据的存储。其中,时序数据是指按照时间的顺序生成的数据,也可以是带有时间标签的数据。随着各行业的高速发展,业务数据量急剧增加,导致短时间内需要存储的时序数据量增多,数据存储服务势必面对大批量数据进行存储。基于OpenTSDB数据存储服务进行数据存储时,采用OpenTSDB实例执行数据的读写处理。其中,实例是指数据读写服务中能够执行数据读写的进程,相应的,响应实例是指依据各条数据和各实例,基于算法确定的能够读写某一具体数据的实例。
本实施例中,对OpenTSDB数据读写服务的配置进行改进。首先在单个实例集群数据写入能力饱和的情况下,通过分库、分表技术进行数据写入的横向扩展,加大数据写入能力,即将数据库的逻辑表分解为多个物理表。其次在OpenTSDB数据读写服务中,为每个物理表对应构建一个主从OpenTSDB实例,即主从OpenTSDB实例与物理表是一一对应的关系。其中,主从OpenTSDB实例中的主OpenTSDB实例支持数据写入服务,从OpenTSDB实例支持数据查询服务。进而在OpenTSDB客户端下形成多OpenTSDB实例并列,并与Hbase数据库中各物理表对应的批量数据存储布局,实现分布式的数据存储模式。
本实施例中,在改进的批量数据存储布局下,路由客户端依据获取的批量数据,为各条数据分配响应实例。具体的,基于业务数据的分类规则,依据批量数据中各条数据的数据特征,确定各条数据的数据类型;依据各条数据的数据类型,确定各条数据的候选响应实例;采用一致性哈希算法,从候选响应实例中确定各条数据关联的响应实例。
示例性的,图2为分布式数据存储模式的结构示例图。由图2可以看出,在底层Hbase数据库中,本实施例将Hbase数据库的逻辑表分解为多个物理表Tsdb。在OpenTSDB数据存储服务下,为每个物理表Tsdb对应构建一个主从OpenTSDB实例,其中主OpenTSDB实例支持数据写入服务,从OpenTSDB实例支持数据查询服务。在Route客户端获取到批量数据之后,为批量数据中的各条数据分配响应实例,用于批量数据的写入。
步骤120、向各响应实例发送关联的待写入数据,且采用各响应实例将关联的待写入数据写入关联的物理表中。
在本发明具体实施例中,各主从OpenTSDB实例与各物理表具有关联的关系,在确定了批量数据中各条数据关联的响应实例之后,各条数据与各响应实例也具有关联的关系。相应的,将确定了响应实例的数据作为待写入数据,分别发送至关联的响应实例,且采用各响应实例将关联的待写入数据写入关联的物理表中。
本实施例中,响应实例在进行数据写入处理时,首先确定待写入数据中各标签名的唯一标识以及各标签值的唯一标识。具体的,依据待写入数据中各标签名和各标签值查找关联的物理表,并批量读取物理表中记录的各标签名的唯一标识以及各标签值的唯一标识;若确定物理表中不存在待写入数据中的至少一个标签名的唯一标识和/或至少一个标签值的唯一标识,则对至少一个标签名和/或所述至少一个标签值进行唯一化标识处理。其中,可以采用SnowFlake算法生成至少一个标签名的唯一标识和/或至少一个标签值的唯一标识,以确保生成标识的全局唯一性,从而规避同步锁的控制机制。其次,依据待写入数据中各标签名与各标签值的关联关系,利用响应实例中的主OpenTSDB实例,将各标签名的唯一标识与各标签值的唯一标识之间的双向映射关系写入关联的物理表中。
本实施例的技术方案,通过对OpenTSDB数据读写服务的配置进行改进,采用主从OpenTSDB实例的配置模式;并结合分表技术,预先将数据库的逻辑表分解为多个物理表,以使各主从OpenTSDB实例与各物理表一一对应;从而在批量数据写入时,通过确定批量数据的响应实例,利用各响应实例向对应的物理表写入批量数据。本发明实施例通过主从实例的部署方式以及物理表的横向扩展,在OpenTSDB数据读写服务中规避参数标识的同步锁控制机制,实现了批量数据的并行写入,提高了批量数据的写入速度和存储结构的可扩展性,优化了OpenTSDB数据读写服务性能。
实施例二
本实施例在上述实施例一的基础上,提供了数据存储方法的一个优选实施方式,能够生成批量数据中各参数的全局唯一标识。图3为本发明实施例二提供的一种数据存储方法的流程图,如图3所示,该方法包括以下具体步骤:
步骤310、依据批量数据中各条数据的数据特征,确定各条数据的数据类型。
在本发明具体实施例中,鉴于跨平台技术的广泛应用,程序语言、软件或硬件设备可以在多种作业系统或不同的硬件架构的电脑上运作,进而导致不同业务场景下或不同终端下生成的数据的类型多种多样。为了将海量的数据进行合理存储,本实施例中路由客户端在获取批量数据之后,首先依据业务数据的分类规则和批量数据中各条数据的数据特征,识别各条数据的数据类型。
本实施例中,数据特征是指能够描述数据特性并进行数据区分的信息,数据特征可以包括数据的项目特征、数据源特征、参数特征等特征信息,可以通过对数据进行信息提取、分析或计算来获得。相应的,业务数据的分类规则中可以预先规定各类业务数据中包含的数据指标或标签等项目特征,也可以预先规定各类业务数据的数据源等特征,从而通过数据特征的提取与比对来确定数据的数据类型。或者预先构建数据类型的识别模型,利用模型进行数据类型的确定。
示例性的,假设路由客户端有权限获得多种应用软件产生的业务数据,相应的,业务数据的分类规则中预先规定源于相同数据源的数据即为一类数据,进而每类数据源对应了一种数据类型。在路由客户端获得批量数据后,通过对批量数据中各条数据的数据源特征进行提取,假设依据数据源特征确定某条或多条数据来源于应用软件A,则该某条或多条数据的数据类型为A。
值得注意的是,上述对于数据特征及数据类型的确定方式只是示例性的解释说明,但数据特征不局限于本实施例中的项目特征和数据源特征,数据类型确定方式不局限于本实施例中的特征比对,本实施例不对数据特征及其确定方式进行限定,任何能够识别数据类型的数据特征及其确定方式都可以应用于本实施例中。
步骤320、依据各条数据的数据类型,确定各条数据的候选响应实例。
在本发明具体实施例中,为了数据的合理性写入,可以将数据进行分类存储,即不同物理表中存储有相同或相近类型的数据,便于数据的归纳存储和快速查询。相应的,在OpenTSDB数据存储服务中,可以预先为各个主从OpenTSDB实例配置关联的数据处理类型,每类数据类型可以关联有一个或多个主从OpenTSDB实例。从而当路由客户端确定批量数据中各条数据的数据类型之后,可以根据各条数据的数据类型,将数据类型关联的至少一个主从OpenTSDB实例确定为各条数据的候选响应实例。
示例性的,在上述示例中,假设OpenTSDB数据存储服务中包含多个主从OpenTSDB实例,其中配置有5个主从OpenTSDB实例用于处理数据类型为A的数据。由于某条或多条数据的数据类型为A,因此将该5个主从OpenTSDB实例确定为该某条或多条数据的候选响应实例。
步骤330、采用一致性哈希算法,从候选响应实例中确定各条数据关联的响应实例。
在本发明具体实施例中,一致性哈希算法(Consistent Hashing)主要是解决在数据类型识别的基础上,依据数据特征将数据映射到具体的主从OpenTSDB实例上,避免对每个物理表均进行查找,降低集群系统资源占用,提高系统并发度。一致性哈希算法是将整个哈希值空间组织映射成一个虚拟的封闭圆环,整个空间按顺时针方向组织,首尾重合相连。例如,假设某哈希函数的值空间为[0,232-1],即哈希值是一个32位无符号整形,0和232-1在时钟零点方向重合。
在一致性哈希算法的基础上,首先依据候选响应实例中各个主从OpenTSDB实例节点的IP地址或主机号等信息作为关键字进行哈希计算,从而根据各个主从OpenTSDB实例的哈希值确定各个主从OpenTSDB实例在哈希圆环上的位置。其次对候选响应实例关联的各条数据进行哈希计算,依据各条数据的哈希值确定各条数据在哈希环上的位置。最终依据哈希环上候选响应实例中各个主从OpenTSDB实例的位置与候选实例关联的各条数据的位置之间的相对位置关系,以各条数据的位置为起点,按照顺时针方向,将距离各条数据的位置最近的主从OpenTSDB实例确定为该条数据的响应实例。
示例性的,图4为确定响应实例的示例图。在上述示例中,假设候选实例中的5个主从OpenTSDB实例在哈希环上的位置入图4所示,同时假设候选实例关联有4条数据,各条数据在哈希环上的位置入图4所示。依据哈希环上候选响应实例中各个主从OpenTSDB实例的位置与候选实例关联的各条数据的位置之间的相对位置关系,以各条数据的位置为起点,按照顺时针方向,确定数据1和4的响应实例为候选实例5,数据2的响应实例为候选实例4,数据3的响应实例为候选实例3。一致性哈希算法可以保障在扩容节点的情况下,大部分数据依然能够被找到。
步骤340、向各响应实例发送关联的待写入数据。
在本发明具体实施例中,各主从OpenTSDB实例与各物理表具有关联的关系,在确定了批量数据中各条数据关联的响应实例之后,各条数据与各响应实例也具有关联的关系。相应的,将确定了响应实例的数据作为待写入数据,分别发送至关联的响应实例,且采用各响应实例将关联的待写入数据写入关联的物理表中。
步骤350、在各响应实例的主OpenTSDB实例中,确定待写入数据中各标签名的唯一标识以及各标签值的唯一标识。
在本发明具体实施例中,时序数据通常由Metric、Timestamp以及多个Tag组合而成。其中,Metric表示时序数据指标的名称;Timestamp表示秒级或毫秒级的时间戳,代表该时间点的具体时间;Tag表示一个或多个标签,即描述数据主体的不同维度。Tag由TagKey和TagValue组成,其中TagKey为标签名,TagValue为对应标签名TagKey下的具体标签值。
在进行时序数据写入时,需要将数据的各指标、各标签名及标签值以全局唯一标识UID之间的映射关系的形式进行存储,以减少数据对存储空间的占用。相应的,在各响应实例的主OpenTSDB实例进行数据写入时,首先需要确定待写入数据中各标签名的UID以及各标签值的UID。
可选的,依据待写入数据中各标签名和各标签值查找物理表,并批量读取物理表中记录的各标签名的唯一标识以及各标签值的唯一标识;若确定物理表中不存在待写入数据中的至少一个标签名的唯一标识和/或至少一个标签值的唯一标识,则对至少一个标签名和/或至少一个标签值进行唯一化标识处理。
在本发明具体实施例中,图5为主OpenTSDB实例进行数据写入的流程图。如图5所示,当主OpenTSDB实例接收到待写入数据时,首先批量读取关联物理表中记录的所有数据的各标签名的UID以及各标签值的UID。其中,实例作为一个进程,其中可以包含多个线程,线程可以执行数据的批量读取。因此为了避免数据的读取错误,在实例进行数据的批量读取时,当实例中包含多个线程时,可以为各个线程配置同步锁,以保障只有一个线程进行物理表中数据的批量读取。
同时依据待写入数据的数据内容,在关联的物理表中查找是否存在待写入数据中各标签名的UID以及各标签值的UID。若存在,则直接采用匹配的UID作为对应的标签名或标签值的UID进行数据的写入。若确定物理表中不存在待写入数据中的至少一个标签名的UID和/或至少一个标签值的UID,则根据ID生成器随机生成至少一个标签名的UID和/或至少一个标签值的UID。
可选的,采用SnowFlake算法生成至少一个标签名的唯一标识和/或至少一个标签值的唯一标识。
在本发明具体实施例中,在分布式存储系统中,ID生成器可以采用SnowFlake算法进行UID的生成,以确保生成ID的全局唯一性。SnowFlake算法生成的ID为64比特的长整型,由符号位、时间戳、工作机器ID以及序列号组成。其中,符号位为1为,同常用0来表示,即正数;时间戳由41为来记录;工作机器ID由10为来记录;其余12为用来记录序列号,表示同毫秒内产生的不同ID。
值得注意的是,本实施例中的唯一标识的生成算法不局限于上述算法,任何能够在分布式存储系统中生成全局唯一标识的算法都可以应用于本实施例中。本实施例基于能够生成全局唯一标识的算法,进而规避了ID的同步锁控制机制,提高多实例时数据的并行写入能力。
步骤360、依据待写入数据中各标签名与各标签值的关联关系,利用响应实例中的主OpenTSDB实例,将各标签名的唯一标识与各标签值的唯一标识之间的双向映射关系写入关联的物理表中。
在本发明具体实施例中,如图5所示,在确定了待写入数据中各标签名的UID和各标签值的UID之后,即可将依据待写入数据中各标签名与各标签值的关联关系,将各标签名的UID与各标签值的UID之间的双向映射关系写入关联的物理表中。若将数据中Metric、TagKey和TagValue共同进行存储,则将Metric的UID、TagKey的UID以及TagValue的UID两两之间的双向映射关系写入物理表中。
本实施例的技术方案,通过对OpenTSDB数据读写服务的配置进行改进,采用主从OpenTSDB实例的配置模式;并结合分表技术,预先将数据库的逻辑表分解为多个物理表,以使各主从OpenTSDB实例与各物理表一一对应;在批量数据写入时,确定批量数据的响应实例;并利用各响应实例对数据中的各标签名和各标签值的唯一标识进行查找,以确定或生成全局唯一标识,向对应的物理表写入批量数据。从而规避唯一标识的同步锁控制机制,并结合分表技术确定横向扩展的多个物理表,对应配置主从OpenTSDB实例,整体上实现了批量数据的并行写入,提高了批量数据的写入速度和存储结构的可扩展性,优化了OpenTSDB数据读写服务性能。
实施例三
图6为本发明实施例三提供的一种数据存储装置的结构示意图,本实施例可适用于批量数据写入数据库的情况,该装置可实现本发明任意实施例所述的数据存储方法。该装置具体包括:
实例分配模块610,用于确定批量数据中各条数据关联的响应实例;其中,所述响应实例是将数据库的逻辑表分解为至少两个物理表,并构建各物理表的主从OpenTSDB实例得到的;
数据写入模块620,用于向各响应实例发送关联的待写入数据,且采用各响应实例将关联的待写入数据写入关联的物理表中。
可选的,主从OpenTSDB实例中的主OpenTSDB实例支持数据写入服务,从OpenTSDB实例支持数据查询服务。
可选的,所述实例分配模块610,包括:
数据类型确定单元6101,用于依据批量数据中各条数据的数据特征,确定各条数据的数据类型;
候选实例确定单元6102,用于依据所述各条数据的数据类型,确定各条数据的候选响应实例;
响应实例确定单元6103,用于采用一致性哈希算法,从所述候选响应实例中确定各条数据关联的响应实例。
可选的,所述数据写入模块620,包括:
唯一标识确定单元6201,用于确定待写入数据中各标签名的唯一标识以及各标签值的唯一标识;
数据写入单元6202,用于依据待写入数据中各标签名与各标签值的关联关系,利用响应实例中的主OpenTSDB实例,将所述各标签名的唯一标识与所述各标签值的唯一标识之间的双向映射关系写入关联的物理表中。
可选的,所述唯一标识确定单元6201,包括:
标识查找子单元,用于依据待写入数据中各标签名和各标签值查找所述物理表,并批量读取所述物理表中记录的各标签名的唯一标识以及各标签值的唯一标识;
标识生成子单元,用于若确定所述物理表中不存在待写入数据中的至少一个标签名的唯一标识和/或至少一个标签值的唯一标识,则对所述至少一个标签名和/或所述至少一个标签值进行唯一化标识处理。
可选的,所述标识生成子单元具体用于:
采用SnowFlake算法生成所述至少一个标签名的唯一标识和/或所述至少一个标签值的唯一标识。
本实施例的技术方案,通过各个功能模块之间的相互配合,实现物理表的扩展、主从OpenTSDB实例的构建、批量数据的获取、数据类型的识别、实例的分配、唯一标识的查找、唯一标识的生成、批量数据的并行写入以及查询等功能。本发明实施例通过主从实例的部署方式以及物理表的横向扩展,在OpenTSDB数据读写服务中规避参数标识的同步锁控制机制,实现了批量数据的并行写入,提高了批量数据的写入速度和存储结构的可扩展性,优化了OpenTSDB数据读写服务性能。
实施例四
图7为本发明实施例四提供的一种服务器的结构示意图。如图7所示,该服务器具体包括:一个或多个处理器710,图7中以一个处理器710为例;存储器720,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器710执行,使得一个或多个处理器710实现本发明任意实施例所述的数据存储方法。处理器710与存储器720可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器720,作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据存储方法对应的程序指令(例如,主从OpenTSDB实例的构建与关联以及唯一标识的生成和写入)。处理器710通过运行存储在存储器720中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的数据存储方法。
存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种数据存储方法,该方法包括:
确定批量数据中各条数据关联的响应实例;其中,所述响应实例是将数据库的逻辑表分解为至少两个物理表,并构建各物理表的主从OpenTSDB实例得到的;
向各响应实例发送关联的待写入数据,且采用各响应实例将关联的待写入数据写入关联的物理表中。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据存储方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
确定批量数据中各条数据关联的响应实例;其中,所述响应实例是将数据库的逻辑表分解为至少两个物理表,并构建各物理表的主从OpenTSDB实例得到的;
向各响应实例发送关联的待写入数据,且采用各响应实例将关联的待写入数据写入关联的物理表中。
2.根据权利要求1所述的方法,其特征在于,主从OpenTSDB实例中的主OpenTSDB实例支持数据写入服务,从OpenTSDB实例支持数据查询服务。
3.根据权利要求1所述的方法,其特征在于,所述确定批量数据中各条数据关联的响应实例,包括:
依据批量数据中各条数据的数据特征,确定各条数据的数据类型;
依据所述各条数据的数据类型,确定各条数据的候选响应实例;
采用一致性哈希算法,从所述候选响应实例中确定各条数据关联的响应实例。
4.根据权利要求1所述的方法,其特征在于,所述采用各响应实例将关联的待写入数据写入关联的物理表中,包括:
确定待写入数据中各标签名的唯一标识以及各标签值的唯一标识;
依据待写入数据中各标签名与各标签值的关联关系,利用响应实例中的主OpenTSDB实例,将所述各标签名的唯一标识与所述各标签值的唯一标识之间的双向映射关系写入关联的物理表中。
5.根据权利要求4所述的方法,其特征在于,所述确定待写入数据中各标签名的唯一标识以及各标签值的唯一标识,包括:
依据待写入数据中各标签名和各标签值查找所述物理表,并批量读取所述物理表中记录的各标签名的唯一标识以及各标签值的唯一标识;
若确定所述物理表中不存在待写入数据中的至少一个标签名的唯一标识和/或至少一个标签值的唯一标识,则对所述至少一个标签名和/或所述至少一个标签值进行唯一化标识处理。
6.根据权利要求5所述的方法,其特征在于,所述对所述至少一个标签名和/或所述至少一个标签值进行唯一化标识处理,包括:
采用SnowFlake算法生成所述至少一个标签名的唯一标识和/或所述至少一个标签值的唯一标识。
7.一种数据存储装置,其特征在于,包括:
实例分配模块,用于确定批量数据中各条数据关联的响应实例;其中,所述响应实例是将数据库的逻辑表分解为至少两个物理表,并构建各物理表的主从OpenTSDB实例得到的;
数据写入模块,用于向各响应实例发送关联的待写入数据,且采用各响应实例将关联的待写入数据写入关联的物理表中。
8.根据权利要求7所述的装置,其特征在于,所述数据写入模块,包括:
唯一标识确定单元,用于确定待写入数据中各标签名的唯一标识以及各标签值的唯一标识;
数据写入单元,用于依据待写入数据中各标签名与各标签值的关联关系,利用响应实例中的主OpenTSDB实例,将所述各标签名的唯一标识与所述各标签值的唯一标识之间的双向映射关系写入关联的物理表中。
9.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一项所述的数据存储方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811385702.0A CN109522311B (zh) | 2018-11-20 | 2018-11-20 | 数据存储方法、装置、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811385702.0A CN109522311B (zh) | 2018-11-20 | 2018-11-20 | 数据存储方法、装置、服务器和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109522311A true CN109522311A (zh) | 2019-03-26 |
CN109522311B CN109522311B (zh) | 2021-08-20 |
Family
ID=65778126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811385702.0A Active CN109522311B (zh) | 2018-11-20 | 2018-11-20 | 数据存储方法、装置、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522311B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144696A (zh) * | 2019-11-28 | 2020-05-12 | 国电南瑞科技股份有限公司 | 一种基于大数据的轨道交通数据分析方法 |
CN113221543A (zh) * | 2021-05-07 | 2021-08-06 | 中国医学科学院医学信息研究所 | 一种医学术语整合方法及系统 |
CN116361397A (zh) * | 2022-12-07 | 2023-06-30 | 国电南瑞科技股份有限公司 | 一种电力物联网时序数据分库分表方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353873A (zh) * | 2013-06-07 | 2013-10-16 | 携程计算机技术(上海)有限公司 | 基于时间度量数据实时查询服务的优化实现方法及系统 |
CN104731896A (zh) * | 2015-03-18 | 2015-06-24 | 北京百度网讯科技有限公司 | 一种数据处理方法及系统 |
WO2015145536A1 (ja) * | 2014-03-24 | 2015-10-01 | 株式会社日立製作所 | データベース管理システム及びデータベース間の同期制御方法 |
US20160232208A1 (en) * | 2009-04-30 | 2016-08-11 | International Business Machines Corporation | Method and system for database partition |
CN106055678A (zh) * | 2016-06-07 | 2016-10-26 | 国网河南省电力公司电力科学研究院 | 一种基于hadoop的全景大数据分布式存储方法 |
US20170316074A1 (en) * | 2016-04-10 | 2017-11-02 | Pekama Ltd. | Document syncing |
CN108052551A (zh) * | 2017-11-28 | 2018-05-18 | 北京航天云路有限公司 | 一种在redis上实现的存储大量时序数据的方法 |
-
2018
- 2018-11-20 CN CN201811385702.0A patent/CN109522311B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160232208A1 (en) * | 2009-04-30 | 2016-08-11 | International Business Machines Corporation | Method and system for database partition |
CN103353873A (zh) * | 2013-06-07 | 2013-10-16 | 携程计算机技术(上海)有限公司 | 基于时间度量数据实时查询服务的优化实现方法及系统 |
WO2015145536A1 (ja) * | 2014-03-24 | 2015-10-01 | 株式会社日立製作所 | データベース管理システム及びデータベース間の同期制御方法 |
CN104731896A (zh) * | 2015-03-18 | 2015-06-24 | 北京百度网讯科技有限公司 | 一种数据处理方法及系统 |
US20170316074A1 (en) * | 2016-04-10 | 2017-11-02 | Pekama Ltd. | Document syncing |
CN106055678A (zh) * | 2016-06-07 | 2016-10-26 | 国网河南省电力公司电力科学研究院 | 一种基于hadoop的全景大数据分布式存储方法 |
CN108052551A (zh) * | 2017-11-28 | 2018-05-18 | 北京航天云路有限公司 | 一种在redis上实现的存储大量时序数据的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144696A (zh) * | 2019-11-28 | 2020-05-12 | 国电南瑞科技股份有限公司 | 一种基于大数据的轨道交通数据分析方法 |
CN113221543A (zh) * | 2021-05-07 | 2021-08-06 | 中国医学科学院医学信息研究所 | 一种医学术语整合方法及系统 |
CN113221543B (zh) * | 2021-05-07 | 2023-10-10 | 中国医学科学院医学信息研究所 | 一种医学术语整合方法及系统 |
CN116361397A (zh) * | 2022-12-07 | 2023-06-30 | 国电南瑞科技股份有限公司 | 一种电力物联网时序数据分库分表方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109522311B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731896B (zh) | 一种数据处理方法及系统 | |
US20060069677A1 (en) | Apparatus and method for searching structured documents | |
US8484108B2 (en) | Tracking entities during identity resolution | |
CN110597852B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN109522311A (zh) | 数据存储方法、装置、服务器和存储介质 | |
CN109542861B (zh) | 一种文件管理方法、装置和系统 | |
CN107807787B (zh) | 一种分布式数据存储方法和系统 | |
CN103970902A (zh) | 一种大量数据情况下的可靠即时检索方法及系统 | |
CN112445889A (zh) | 存储数据、检索数据的方法及相关设备 | |
KR101744892B1 (ko) | 시계열 계층 인덱싱을 이용한 데이터 검색 시스템 및 데이터 검색 방법 | |
JP6782275B2 (ja) | データカタログ自動生成システム及びその自動生成方法 | |
CN113297171A (zh) | 数据库迁移方法及装置、数据库集群 | |
CN112434027A (zh) | 多维度数据的索引方法、装置、计算机设备和存储介质 | |
CN109189759A (zh) | Kv存储系统中的数据读取方法、数据查询方法、装置及设备 | |
CN111274004B (zh) | 进程实例管理方法、装置及计算机存储介质 | |
US9430521B2 (en) | Query expansion through searching content identifiers | |
CN117609181A (zh) | 一种用于TChouse数据库迁移方法和系统 | |
CN111859042A (zh) | 一种检索方法、装置及电子设备 | |
CN112527813A (zh) | 业务系统的数据处理方法及装置、电子设备、存储介质 | |
CN116126619A (zh) | 数据库节点信息的处理方法及装置 | |
CN109977113A (zh) | 一种用于医疗影像数据的基于布隆过滤器的HBase索引设计方法 | |
CN101609462B (zh) | 一种个人数据空间环境下的任务识别系统和方法 | |
CN109241098B (zh) | 一种分布式数据库的查询优化方法 | |
CN110321435B (zh) | 一种数据源划分方法、装置、设备和存储介质 | |
Abdalla et al. | NoSQL: Robust and efficient data management on deduplication process by using a mobile application |
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 |