CN115794842B - 数据处理方法、装置、电子设备及介质 - Google Patents

数据处理方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN115794842B
CN115794842B CN202211366447.1A CN202211366447A CN115794842B CN 115794842 B CN115794842 B CN 115794842B CN 202211366447 A CN202211366447 A CN 202211366447A CN 115794842 B CN115794842 B CN 115794842B
Authority
CN
China
Prior art keywords
data
updated
identification
clickhouse
marked
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
CN202211366447.1A
Other languages
English (en)
Other versions
CN115794842A (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.)
Beijing Wondersoft Technology Co Ltd
Original Assignee
Beijing Wondersoft 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 Beijing Wondersoft Technology Co Ltd filed Critical Beijing Wondersoft Technology Co Ltd
Priority to CN202211366447.1A priority Critical patent/CN115794842B/zh
Publication of CN115794842A publication Critical patent/CN115794842A/zh
Application granted granted Critical
Publication of CN115794842B publication Critical patent/CN115794842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据处理方法、装置、电子设备及介质,涉及计算机技术领域。该方法包括:获取待更新数据,确定所述待更新数据的标识;确定所述待更新数据的标识是否被标记;在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;在所述Clickhouse数据表中不存在所述待更新数据的标识的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。该方法通过对待更新数据的标识进行两次判断可以保证数据的唯一性,克服了数据更新、删除时的重复、丢失的技术问题,且该方法操作简单,响应迅速,提高了响应率和效率,适用于数据高并发的情况。

Description

数据处理方法、装置、电子设备及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及介质。
背景技术
Clickhouse是开源的列式存储数据库(Column-oriented DBMS),主要用于在线分析处理查询(OLAP),能够使用结构化查询语句(Structured Query Language,SQL)查询,实时生成分析数据报告。Clickhouse具备很多特性,例如:它是一个真正的列式数据库管理系统,Clickhouse不单单是一个数据库,它还是一个数据库管理系统。因为它允许在运行时创建表和数据库、加载数据和运行查询,而无需重新配置或重启服务,具备数据压缩、数据磁盘存储特性。Clickhouse被设计用于工作在传统磁盘上的系统,而且数据压缩特性使它每GB数据量消耗更低的存储成本;还支持多核并行处理以及实时数据更新等特性,而且具有多种库引擎和表引擎。然而,Clickhouse的删除操作、更新操作是异步执行的,相关技术方案对待更新的每一条数据都会查询Clickhouse表,效率较低,在并发较高的情况下,不能完全保证Clickhouse表中数据的唯一性,也会出现偶发性数据丢失现象,从而导致数据混乱引发错误。
发明内容
为解决上述技术问题或至少部分地解决上述技术问题,本发明实施例提供一种数据处理方法、装置、电子设备及介质。
第一方面,本发明实施例提供了一种数据处理方法,包括:
获取待更新数据,确定所述待更新数据的标识;
确定所述待更新数据的标识是否被标记;
在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;
在所述Clickhouse数据表中不存在所述待更新数据的标识的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。
在可选的实施例中,所述方法还包括:
在所述待更新数据的标识未被标记,且所述Clickhouse数据表中存在所述待更新数据的标识的情况下,删除所述Clickhouse数据表中与所述待更新数据的标识对应的数据;
确定是否删除成功;
在删除成功的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。
在可选的实施例中,所述方法还包括:在所述待更新数据的标识被标记的情况下,基于所述待更新数据更新所述Clickhouse数据表中相应的数据。
在可选的实施例中,所述确定所述待更新数据的标识是否被标记,包括:
基于所述待更新数据的标识查询预设的Redis数据库,确定所述Redis数据库中是否存在所述待更新数据的标识,以确定所述待更新数据的标识是否被标记。
第二方面,本发明实施例还提供了一种数据处理装置,包括:
获取模块,用于获取待更新数据,确定所述待更新数据的标识;
第一确定模块,用于确定所述待更新数据的标识是否被标记;
第二确定模块,用于在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;
处理模块,用于在所述Clickhouse数据表中不存在所述待更新数据的标识的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。
在可选的实施例中,所述处理模块还用于:
在所述待更新数据的标识未被标记,且所述Clickhouse数据表中存在所述待更新数据的标识的情况下,删除所述Clickhouse数据表中与所述待更新数据的标识对应的数据;
确定是否删除成功;
在删除成功的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。
在可选的实施例中,所述处理模块还用于:在所述待更新数据的标识被标记的情况下,基于所述待更新数据更新所述Clickhouse数据表中相应的数据。
在可选的实施例中,所述第一确定模块还用于:基于所述待更新数据的标识查询预设的Redis数据库,确定所述Redis数据库中是否存在所述待更新数据的标识,以确定所述待更新数据的标识是否被标记。
第三方面,本发明实施例还提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任一实施例所述的数据处理方法。
第四方面,本发明实施例还提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明任一实施例所述的数据处理方法。
上述发明中的一个实施例具有如下优点或有益效果:
本发明实施例的数据处理方法,通过确定待更新数据的标识是否被标记首次判断待更新数据的唯一性,通过查询Clickhouse数据表中是否存在所述待更新数据的标识二次判断待更新数据的唯一性,在待更新数据的标识未被标记且Clickhouse数据表中不存在待更新数据的标识的情况下,确定待更新数据具备唯一性,则可以将待更新数据插入Clickhouse数据表中,本实施例通过两次判断操作,可以保证数据的唯一性,避免出现偶发性数据丢失现象,克服了Clickhouse数据异步更新出现数据重复、异步删除出现数据丢失的技术问题,并且克服了因特殊原因导致已获取到的数据未被标记或标记丢失的技术问题;且,该方法操作简单,响应迅速,提高了响应率和效率,适用于数据高并发的情况。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1示出了本发明实施例的数据处理方法的流程示意图;
图2示出了本发明另一实施例的数据处理方法的流程示意图;
图3示出了本发明又一实施例的数据处理方法的流程示意图;
图4示出了本发明实施例的数据处理装置的结构示意图;
图5示出了本发明实施例的电子设备的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在相关技术中,通过查询、删除、新增的方式来确保写入Clickhouse数据表中数据的唯一性的具体方式为:先根据欲要写入的数据记录的唯一标识查找Clickhouse数据表中是否存在,如果存在,则删除,再将该条数据插入表中,如果不存在,直接将该条数据插入表中。这种方案存在一些缺陷,如:当同时(或者间隔时间很短)对相同两条数据(这里指数据的唯一标识相同)进行操作时,对表的操作始终是有先后顺序的,当操作第一条数据时,查找Clickhouse后,发现表中没有该数据,此时执行插入操作,因为Clickhouse的更新、删除、新增都是异步执行的,且不支持事务,这就会出现第一条数据更新到数据表中还未生效,此时开始操作第二条数据进行查询,依然会发现没有该唯一标识的数据,会再次执行插入操作,这样就会导致最终Clickhouse表中会出现两条相同数据(唯一标识相同),因此无法真正保证表中数据唯一性;当操作某条数据时,查询Clickhouse表中数据,发现表中有该数据,则执行删除操作,删除该条数据,上述所言,删除也是一种异步操作,执行完删除操作后,会执行插入操作,当插入操作先于删除操作在Clickhouse表中生效,这种情况下,表中就会有两条唯一标识相同的数据,待删除操作生效后,两条数据就会都被删除,导致表中没有想要写入的那条数据记录,即偶发性数据丢失,因此这种情况无法保证数据被更新的目的,更无法保证数据的唯一。而且上述方案的响应效率不高。
为解决上述技术问题,本发明实施例的数据处理方法,通过确定待更新数据的标识是否被标记首次判断待更新数据的唯一性,通过查询Clickhouse数据表中是否存在所述待更新数据的标识二次判断待更新数据的唯一性,在待更新数据的标识未被标记且Clickhouse数据表中不存在待更新数据的标识的情况下,确定待更新数据具备唯一性,则可以将待更新数据插入Clickhouse数据表中,本实施例通过两次判断操作,可以保证数据的唯一性,克服了Clickhouse数据异步更新出现重复、异步删除出现丢失的技术问题,并且克服了因特殊原因导致已获取到的数据未被标记或标记丢失的技术问题;且,该方法操作简单,响应迅速,提高了响应率和效率,适用于数据高并发的情况。
图1示出了本发明实施例的数据处理方法的流程示意图,如图1所示,该方法包括:
步骤S101:获取待更新数据,确定所述待更新数据的标识。
在本步骤中可以接收数据源或消息队列推送的待更新数据,也可以接收浏览器请求的待更新数据,本发明在此不做限制。
待更新数据的标识可以唯一指示该数据,不同的数据对应不同的标识。该标识可以是全局唯一的ID,也可以是包含字母、数字或符号的字符串,本发明在此不做限制。该标识可以是按某种规则有序的,以便于数据库插入及排序。在数据源生产待更新数据时,可以将唯一指示待更新数据的标识添加至待更新数据中(可以将唯一标识作为待更新数据的某个字段),从而在获取到待更新数据之后,通过解析该待更新数据得到相应的标识。例如,可以将UUID作为待更新数据的标识,其中,UUID(Universally Unique Identifier,通用唯一识别码)是基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的MAC地址)等数据计算生成的。
在可选的实施例中,可以根据预设的标识生成规则策略,生成待更新数据的标识。作为示例,可以利用雪花算法或改进的雪花算法,生成待更新数据的标识。其中,雪花算法(Snow Flake)能够生成一个的64位比特位的long类型的唯一ID。在其他可选的实施例中,还可以根据预设的规则策略对待更新数据进行计算,将计算结果作为待更新数据的标识。
步骤S102:确定所述待更新数据的标识是否被标记。
在本实施例中,若待更新数据的标识被标记则可以说明之前获取到过待更新数据,待更新数据不是唯一的。若待更新数据的标识未被标记则可以初步说明之前未获取过待更新数据,是首次获取,待更新数据是唯一的。
在本步骤中可以通过查询预设的数据表中是否存在待更新数据的标识,来确定待更新数据的标识是否被标记。其中,该预设的数据表用于记录获取的数据的标识,而不记录数据本身,且该数据表中的元素各不相同。若该数据表中不存在待更新数据的标识,则确定待更新数据的标识未被标记。
步骤S103:在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识。
Clickhouse数据表是用于记录数据本身的数据表。该Clickhouse数据表可以记录数据的标识、数据本身以及数据写入的时间、数据的来源等信息。
在本实施例中,通过确定待更新数据的标识是否被标记可以判断待更新数据是否唯一,若待更新数据的标识未被标记则可以说明待更新数据是唯一的,此时将待更新数据插入Clickhouse数据表可以保证Clickhouse数据表中数据的唯一性。但本实施例考虑到因为某些原因导致已获取的数据未被标记或丢失标记的情况,在确定待更新数据的标识未被标记的情况下进一步判断Clickhouse数据表中是否存在待更新数据的标识,若Clickhouse数据表中不存在待更新数据的标识,则说明待更新数据是唯一的,此时将该更新数据写入Clickhouse数据表可以保证数据的唯一性。若Clickhouse数据表中存在待更新数据的标识,则出现了已获取的数据未被标记的情况,待更新数据不是唯一的。
步骤S104:在所述Clickhouse数据表中不存在所述待更新数据的标识的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。
在Clickhouse数据表中不存在待更新数据的标识的情况下,先标记该待更新数据的标识,然后执行Clickhouse插入操作,将待更新数据插入Clickhouse数据表中。
本发明实施例通过两次判断操作,可以保证数据的唯一性,克服了Clickhouse数据异步更新出现重复、异步删除出现丢失的技术问题;且,该方法操作简单,响应迅速,提高了响应率和效率,适用于数据高并发的情况。
在可选的实施例中,该数据处理方法还可以包括:在待更新数据的标识被标记的情况下,基于待更新数据更新Clickhouse数据表中相应的数据。即,利用待更新数据替换Clickhouse数据表中与待更新数据的标识对应的数据在其他可选的实施例中,该数据处理方法还可以在待更新数据的标识被标记的情况下,丢弃待更新数据。
图2示出了本发明另一实施例的数据处理方法的流程示意图,如图2所示,该数据处理方法包括:
步骤S201:获取待更新数据,确定所述待更新数据的标识;
步骤S202:确定所述待更新数据的标识是否被标记;
步骤S203:在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;
步骤S204:在所述待更新数据的标识未被标记,且所述Clickhouse数据表中存在所述待更新数据的标识的情况下,删除所述Clickhouse数据表中与所述待更新数据的标识对应的数据;
步骤S205:确定是否删除成功;在删除成功的情况下,执行步骤S206;
步骤S206:标记所述待更新数据的标识,并将所述待更新数据插入所述Clickhouse数据表中;
步骤S207:在所述待更新数据的标识被标记的情况下,基于所述待更新数据更新所述Clickhouse数据表中相应的数据。
其中,步骤S201-S203以及S206-S207可以参考图1所示的实施例,本发明在此不做限制。
对于步骤S204-S205,当出现了待更新数据的标识未被标记,但Clickhouse数据表中存在待更新数据的标识的情况,则说明出现了已获取的数据的标识未被标记或丢失标记的情况。对于这一情况,本发明实施例先根据待更新数据的标识,进行Clickhouse删除操作,删除Clickhouse数据表中与待更新数据的标识对应的数据。由于Clickhouse删除操作是异步执行的,因此需要做删除成功的检查,当成功删除后(在未成功删除时可以循环查询是否删除成功直至删除成功),先对待更新数据的标识进行标记,再执行Clickhouse插入操作,将待更新数据插入Clickhouse数据表中。
本发明实施例的数据处理方法,通过两次判断操作,可以保证数据的唯一性,克服了Clickhouse数据异步更新出现重复、异步删除出现丢失的技术问题,并且克服了因特殊原因导致已获取到的数据未被标记或标记丢失的技术问题;在待更新数据的标识未被标记,但Clickhouse数据表中存在待更新数据的标识的情况下,删除Clickhouse数据表中相应的数据并做是否删除成功的查询,直至成功删除,在成功删除的情况下将待更新数据插入Clickhouse数据表中,可以保证数据的唯一性。
图3示出了本发明又一实施例的数据处理方法的流程示意图。该数据处理方法将已获取到的数据的标识记录在Redis数据库中。Redis数据库(Remote Dictionary Server)是一个key-value(键-值)存储系统。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用它;Redis不仅仅支持简单的key-value类型的数据,同时还提供包括string(字符串)、list(链表)、set(集合)、zset(sorted set,有序集合)和hash(哈希类型)等数据结构的存储。这些数据类型都支持push/pop(推进/弹出)、add/remove(添加/删除)及取交集、并集和差集及更丰富的操作,而且这些操作都是原子性的。作为示例,可以将已获取到的数据的标识记录在Redis数据库的set集合或zset集合中。set集合和zset集合中的元素是唯一的,不能出现重复的元素,也可以将已获取到的数据的标识记录在Redis数据库的数据表中。
如图3所示,在本实施例中涉及到业务处理层、Redis数据存储层以及Clickhouse应用服务端。业务处理层可以用于执行本实施例的数据处理方法,Redis数据存储层用于存储数据的唯一标识,Clickhouse应用服务端用于存储数据。如图3所示,该方法包括:
步骤S301:获取待更新数据,确定所述待更新数据的标识;
步骤S302:基于所述待更新数据的标识查询预设的Redis数据库,确定所述Redis数据库中是否存在所述待更新数据的标识,以确定所述待更新数据的标识是否被标记;
步骤S303:在所述Redis数据库中不存在所述待更新数据的标识的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;
步骤S304:在所述Redis数据库中存在所述待更新数据的标识,且所述Clickhouse数据表中存在所述待更新数据的标识的情况下,删除所述Clickhouse数据表中与所述待更新数据的标识对应的数据;
步骤S305:确定是否删除成功;在删除成功的情况下,执行步骤S306,在删除不成功的情况下,执行步骤S305;
步骤S306:将所述待更新数据的标识写入Redis数据库,并将所述更新数据插入所述Clickhouse数据表中。
步骤S307:在所述待更新数据的标识被标记的情况下,基于所述待更新数据更新所述Clickhouse数据表中相应的数据。
对于步骤S302,在本实施例中,可以将已获取到的数据的标识记录在Redis数据库的数据表中,则可以通过查询语句查询Redis数据库,确定Redis数据库中是否存在待更新数据的标识。在本实施例中,也可以将已获取到的数据的标识记录在Redis数据库的set集合或zset集合中,则可以通过向set集合或zset集合写入该待更新数据的标识来确定Redis数据库中是否存在待更新数据的标识。若写入成功,则说明Redis数据库中不存在待更新数据的标识,若写入失败,则说明Redis数据库中不存在待更新数据的标识。
本发明实施例的数据处理方法,首先利用Redis读写快速响应的特性来校验Clickhouse表中数据是否存在,以此代替现有解决方案中通过查询Clickhouse表来校验数据是否存在,因此提高了方案的响应率,尤其当数据量较大的情况下。其次,通过Redis校验数据是否存在后,当某一条数据存在(数据的唯一标识),使用Clickhouse更新操作,更新数据,当不存在时,使用Clickhouse的插入操作,写入数据。正常情况下,这已经达到了Clickhouse表中数据唯一性的目的,但是Redis宕机恢复后会以极小的概率出现某条数据的标识丢失的情况,当这种情况出现,该条数据再次需要更新时,Clickhouse表中的数据就会出现重复,唯一性得不到保证,针对该异常场景,本实施例在当待更新数据的标识在Redis中不存在时,根据该待更新数据的唯一标识查询Clickhouse数据表中数据,此时如果没有查询到,则执行Clickhouse的插入操作,将数据写入表中,如果查询到,则表明Redis缓存被击穿,此时,根据该数据的唯一标识删除Clickhouse数据表中数据,因为Clickhouse删除操作是一个异步执行的,因此本实施例做了是否删除成功的检查,当成功删除后,先将待更新数据的标识写入Redis,再执行Clickhouse插入操作,将待更新数据写入到Clickhouse数据表中。
图4示出了本发明实施例的数据处理装置400的结构示意图。如图4所示,该数据处理装置400包括:
获取模块401,用于获取待更新数据,确定所述待更新数据的标识;
第一确定模块402,用于确定所述待更新数据的标识是否被标记;
第二确定模块403,用于在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;
处理模块404,用于在所述Clickhouse数据表中不存在所述待更新数据的标识的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。
本发明实施例的数据处理装置,通过确定待更新数据的标识是否被标记首次判断待更新数据的唯一性,通过查询Clickhouse数据表中是否存在所述待更新数据的标识二次判断待更新数据的唯一性,在待更新数据的标识未被标记且Clickhouse数据表中不存在待更新数据的标识的情况下,确定待更新数据具备唯一性,则可以将待更新数据插入Clickhouse数据表中,本实施例通过两次判断操作,可以保证数据的唯一性,克服了Clickhouse数据异步更新出现重复、异步删除出现丢失的技术问题,并且克服了因特殊原因导致已获取到的数据未被标记或标记丢失的技术问题;且,该方法操作简单,响应迅速,提高了响应率和效率,适用于数据高并发的情况。
在可选的实施例中,所述处理模块还用于:在所述待更新数据的标识未被标记,且所述Clickhouse数据表中存在所述待更新数据的标识的情况下,删除所述Clickhouse数据表中与所述待更新数据的标识对应的数据;确定是否删除成功;在删除成功的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。
在可选的实施例中,所述处理模块还用于:在所述待更新数据的标识被标记的情况下,基于所述待更新数据更新所述Clickhouse数据表中相应的数据。
在可选的实施例中,所述第一确定模块还用于:基于所述待更新数据的标识查询预设的Redis数据库,确定所述Redis数据库中是否存在所述待更新数据的标识,以确定所述待更新数据的标识是否被标记。
上述装置可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
获取待更新数据,确定所述待更新数据的标识;
确定所述待更新数据的标识是否被标记;
在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;
在所述Clickhouse数据表中不存在所述待更新数据的标识的情况下,标记所述待更新数据的标识,并将所述更新数据插入所述Clickhouse数据表中。
上述终端提到的通信总线504可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线504可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口502用于上述终端与其他设备之间的通信。
存储器503可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器501的存储装置。
上述的处理器501可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读介质,该计算机可读介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据处理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (4)

1.一种数据处理方法,其特征在于,包括:
获取待更新数据,确定所述待更新数据的标识;
确定所述待更新数据的标识是否被标记;
在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;
在所述Clickhouse数据表中不存在所述待更新数据的标识的情况下,标记所述待更新数据的标识,并将所述待更新数据插入所述Clickhouse数据表中;
所述确定所述待更新数据的标识是否被标记,包括:
基于所述待更新数据的标识查询预设的Redis数据库,确定所述Redis数据库中是否存在所述待更新数据的标识,以确定所述待更新数据的标识是否被标记;将所述待更新数据的标识记录在所述Redis数据库的set集合或zset集合中,所述set集合和所述zset集合中的元素是唯一的或将所述待更新数据的标识记录在所述Redis数据库的数据表中,所述数据表中的元素各不相同;其中所述Redis数据库为键-值存储系统,所述Redis数据库用于将内存中的数据保存在磁盘;
在所述待更新数据的标识未被标记,且所述Clickhouse数据表中存在所述待更新数据的标识的情况下,删除所述Clickhouse数据表中与所述待更新数据的标识对应的数据;
确定是否删除成功;
在删除成功的情况下,标记所述待更新数据的标识,并将所述待更新数据插入所述Clickhouse数据表中;其中,在未成功删除时以循环查询是否删除成功直至删除成功;
在所述待更新数据的标识被标记的情况下,基于所述待更新数据更新所述Clickhouse数据表中相应的数据;
其中,将UUID作为所述待更新数据的标识,所述UUID是基于当前时间、计数器和硬件标识计算生成或使用雪花算法生成所述待更新数据的标识,所述雪花算法可生成64位比特位的long类型的唯一ID。
2.一种数据处理装置,其特征在于,包括:
获取模块,用于获取待更新数据,确定所述待更新数据的标识;其中,将UUID作为所述待更新数据的标识,所述UUID是基于当前时间、计数器和硬件标识计算生成或使用雪花算法生成所述待更新数据的标识,所述雪花算法可生成64位比特位的long类型的唯一ID;
第一确定模块,用于确定所述待更新数据的标识是否被标记;
第二确定模块,用于在所述待更新数据的标识未被标记的情况下,查询Clickhouse数据表中是否存在所述待更新数据的标识;
处理模块,用于在所述Clickhouse数据表中不存在所述待更新数据的标识的情况下,标记所述待更新数据的标识,并将所述待更新数据插入所述Clickhouse数据表中;
所述第一确定模块还用于:
基于所述待更新数据的标识查询预设的Redis数据库,确定所述Redis数据库中是否存在所述待更新数据的标识,以确定所述待更新数据的标识是否被标记;其中所述Redis数据库为键-值存储系统,所述Redis数据库用于将内存中的数据保存在磁盘;
所述处理模块还用于:
在所述待更新数据的标识未被标记,且所述Clickhouse数据表中存在所述待更新数据的标识的情况下,删除所述Clickhouse数据表中与所述待更新数据的标识对应的数据;
确定是否删除成功;
在删除成功的情况下,标记所述待更新数据的标识,并将所述待更新数据插入所述Clickhouse数据表中;其中,在未成功删除时以循环查询是否删除成功直至删除成功;
所述处理模块还用于:
在所述待更新数据的标识被标记的情况下,基于所述待更新数据更新所述Clickhouse数据表中相应的数据。
3.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1中所述的方法。
4.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1中所述的方法。
CN202211366447.1A 2022-11-02 2022-11-02 数据处理方法、装置、电子设备及介质 Active CN115794842B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211366447.1A CN115794842B (zh) 2022-11-02 2022-11-02 数据处理方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211366447.1A CN115794842B (zh) 2022-11-02 2022-11-02 数据处理方法、装置、电子设备及介质

Publications (2)

Publication Number Publication Date
CN115794842A CN115794842A (zh) 2023-03-14
CN115794842B true CN115794842B (zh) 2024-04-05

Family

ID=85435077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211366447.1A Active CN115794842B (zh) 2022-11-02 2022-11-02 数据处理方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN115794842B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710729A (zh) * 2018-12-14 2019-05-03 麒麟合盛网络技术股份有限公司 一种文本数据的采集方法及装置
WO2019128318A1 (zh) * 2017-12-29 2019-07-04 华为技术有限公司 数据处理方法、装置和系统
CN111143899A (zh) * 2018-11-06 2020-05-12 中兴通讯股份有限公司 存储数据的方法、装置、存储介质及电子装置
CN114398372A (zh) * 2022-01-13 2022-04-26 北京沃东天骏信息技术有限公司 一种数据缓存方法和装置
CN114780292A (zh) * 2022-04-19 2022-07-22 北京凝思软件股份有限公司 基于Linux的用户标识唯一性实现方法、装置、设备及介质
CN115269713A (zh) * 2022-07-19 2022-11-01 康键信息技术(深圳)有限公司 一种数据的可视化方法、系统、计算机设备及介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019128318A1 (zh) * 2017-12-29 2019-07-04 华为技术有限公司 数据处理方法、装置和系统
CN111143899A (zh) * 2018-11-06 2020-05-12 中兴通讯股份有限公司 存储数据的方法、装置、存储介质及电子装置
CN109710729A (zh) * 2018-12-14 2019-05-03 麒麟合盛网络技术股份有限公司 一种文本数据的采集方法及装置
CN114398372A (zh) * 2022-01-13 2022-04-26 北京沃东天骏信息技术有限公司 一种数据缓存方法和装置
CN114780292A (zh) * 2022-04-19 2022-07-22 北京凝思软件股份有限公司 基于Linux的用户标识唯一性实现方法、装置、设备及介质
CN115269713A (zh) * 2022-07-19 2022-11-01 康键信息技术(深圳)有限公司 一种数据的可视化方法、系统、计算机设备及介质

Also Published As

Publication number Publication date
CN115794842A (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
US10019536B2 (en) Snapshot-consistent, in-memory graph instances in a multi-user database
US8793288B2 (en) Online access to database snapshots
CN111046034A (zh) 管理内存数据及在内存中维护数据的方法和系统
US10776345B2 (en) Efficiently updating a secondary index associated with a log-structured merge-tree database
CN111241108B (zh) 基于键值对kv系统的索引方法、装置、电子设备和介质
CN111309720A (zh) 时序数据的存储、读取方法、装置、电子设备及存储介质
US11151081B1 (en) Data tiering service with cold tier indexing
US9514170B1 (en) Priority queue using two differently-indexed single-index tables
US11775480B2 (en) Method and system for deleting obsolete files from a file system
CN115599807A (zh) 一种数据存取方法、装置、应用服务器及存储介质
US10019483B2 (en) Search system and search method
WO2020192663A1 (zh) 一种数据管理方法及相关设备
US10691757B1 (en) Method and system for cached document search
CN115794842B (zh) 数据处理方法、装置、电子设备及介质
CN116303267A (zh) 数据访问方法、装置、设备以及存储介质
CN115469810A (zh) 一种数据获取方法、装置、设备及存储介质
CN113986921A (zh) 一种黑名单查询方法、系统、电子设备及存储介质
CN108984720B (zh) 基于列存储的数据查询方法、装置、服务器及存储介质
US9442948B2 (en) Resource-specific control blocks for database cache
CN110968267A (zh) 数据管理方法、装置、服务器及系统
US20230153184A1 (en) Automated dynamic payload testing of odata apis
CN113407462A (zh) 一种数据处理的方法、装置、电子设备及介质
CN116860700A (zh) 处理分布式文件系统中元数据的方法、装置、设备及介质
CN116126620A (zh) 数据库日志处理方法、数据库变更查询方法及相关装置
CN118132572A (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