CN117149784A - 一种高性能更新clickhouse数据库的方法及装置 - Google Patents
一种高性能更新clickhouse数据库的方法及装置 Download PDFInfo
- Publication number
- CN117149784A CN117149784A CN202310922515.6A CN202310922515A CN117149784A CN 117149784 A CN117149784 A CN 117149784A CN 202310922515 A CN202310922515 A CN 202310922515A CN 117149784 A CN117149784 A CN 117149784A
- Authority
- CN
- China
- Prior art keywords
- data
- clickhouse
- attack
- database
- distributed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 239000012634 fragment Substances 0.000 claims abstract description 22
- 238000003780 insertion Methods 0.000 claims abstract description 14
- 230000037431 insertion Effects 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 4
- 230000001131 transforming effect Effects 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 abstract description 5
- 238000005192 partition Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/2255—Hash tables
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种高性能更新clickhouse数据库的方法及装置,方法包括:S01、基于大数据环境下clickhouse数据库多台分布式部署,在clickhouse数据库建立攻击摘要的本地表和分布式表,本地表和分布式表中分别添加version字段;S02、改造clickhouse数据库程序。本发明采用转循环更新的操作为批量插入的操作,在新旧记录同时存在的情况下,引入版本号这一属性作为确认最新记录的方式,改变clickhouse数据库表本地表的建表引擎,以版本号字段作为数据合并关系字段,同时改变分布式表的hash方式,使同一条攻击摘要的信息始终处在同一分片中。
Description
技术领域
本发明涉及通信领域,尤其是一种高性能更新clickhouse数据库的方法及装置。
背景技术
Clickhouse是一种大数据分布式数据库,有个非常高的查询性能,但是更新性能不理想,且并未提供批量更新的方法,故大量数据的更新操作往往需要很长时间。
抗D攻击检测的程序需要更新攻击摘要信息,在攻击并发较高的时候,往往需要每次更新几千甚至几万个摘要信息,而这些更新需要10分钟左右的时间才能完成,导致页面数据回显异常,后台任务执行的积压,故急需一种能够满足页面秒级响应的更新数据的方案。
Clickhouse并未提供批量update的性能较高的方式,原先采用循环记录更新攻击摘要的方式,在数据量不大的时候不容易发现这个问题,因为在数据量较小的情况下往往也只需要几秒-几十秒的时间,但是如果攻击的并发突然升高,每次更新的数据达到几千甚至几万的时候,就会出现数据延迟较大,页面显示不及时等异常情况。
业务上有一张攻击摘要表,攻击告警每两分钟上报一次,也就是说每两分钟需要根据上报的攻击id更新攻击摘要表的流速、包速、持续时间、状态、攻击类型等业务字段。在并发的攻击较少的情况下,循环操作UPDATE攻击摘要信息延迟情况并不明显,但是一旦流量增大或者攻击阈值调低,导致并发的攻击告警的数量成倍的增长,这种方式的弊端就很明显,页面上的信息得不到及时的刷新,数据对应不上等问题就出现了,所以在设计层面就不能采用这种低效率的更新方式,需要更换思路。
发明内容
为解决现有技术存在的问题,本发明提供一种高性能更新clickhouse数据库的方法及装置,采用转循环更新的操作为批量插入的操作,在新旧记录同时存在的情况下,引入版本号这一属性作为确认最新记录的方式,改变clickhouse数据库表本地表的建表引擎,以版本号字段作为数据合并关系字段,同时改变分布式表的hash方式,使同一条攻击摘要的信息始终处在同一分片中。
为实现上述目的,本发明采用下述技术方案:
在本发明一实施例中,提出了一种高性能更新clickhouse数据库的方法,该方法包括:
S01、基于大数据环境下clickhouse数据库多台分布式部署,在clickhouse数据库建立攻击摘要的本地表和分布式表,本地表和分布式表中分别添加version(版本号)字段;
进一步地,所述S01包括:
S011、本地表使用合并引擎ReplicatedReplacingMergeTree,并以版本号字段作为合并关键字(合并依据字段);
S012、分布式表的建立以业务字段攻击id作为hash的关键字段,确保同一个攻击ID的数据落在同一个分片上;
S02、改造clickhouse数据库程序;
原有程序的核心逻辑为:攻击告警上报的记录需要根据攻击id分别去数据库做更新数据操作。改造后的程序比先前需要多维护一个版本号字段,将版本号字段设置为clickhouse数据库合并的依据字段,摒弃轮询更新的方式,转为一次性批量插入,降低数据库以及程序的开销。
进一步地,所述S02包括:
S021、将数据直接插入clickhouse的分布式表;
S022、根据分布式表所指定的hash方式,将不同攻击ID的数据路由到攻击摘要的本地表的各个分片,确保同一个相同攻击ID的数据落在同一个分片上;
S023、clickhouse在空闲的时间去自己合并相同数据。
在本发明一实施例中,还提出了一种高性能更新clickhouse数据库的装置,该装置包括:
数据库建表模块、基于大数据环境下clickhouse数据库多台分布式部署,在clickhouse数据库建立攻击摘要的本地表和分布式表,本地表和分布式表中分别添加version字段;
数据库改造模块、改造clickhouse数据库程序。
进一步地,所述数据库建表模块包括:
本地表建立模块、本地表使用合并引擎ReplicatedReplacingMe rgeTree,并以版本号字段作为合并关键字;
分布式表建立模块、分布式表的建立以业务字段攻击id作为hash的关键字段,确保同一个攻击ID的数据落在同一个分片上。
进一步地,所述数据库改造模块包括:
数据直插模块、将数据直接插入clickhouse的分布式表;
哈希模块、根据分布式表所指定的hash方式,将不同攻击ID的数据路由到攻击摘要的本地表的各个分片,确保同一个相同攻击ID的数据落在同一个分片上;
合并数据模块、clickhouse在空闲的时间去自己合并相同数据。
在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述高性能更新clickhouse数据库的方法。
在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行高性能更新clickhouse数据库的方法的计算机程序。
有益效果:
本发明一种高性能更新clickhouse数据库的方法及装置没有在update效率低下的情况下选择去优化update操作语句亿提高效率,而是开辟了一条新的思路,把更新数据的操作巧妙的转化成了数据插入操作。
本发明利用clickhouse携带的ReplacingMergeTree的特性,联系自身业务需求,巧妙地与clickhouse合并引擎(ReplicatedRepla cingMergeTree)结合,将业务设计和数据库设计相结合,转换解决问题的思路,引入版本号变量控制数据的一致性和实时性。
本发明没有使用optimize去在每次插入后强制合并相同记录,而是采用查询时合并的方式,降低了系统的性能损耗,让clickhous e在空闲的时候去做合并,不占用业务时间段。
附图说明
图1是本发明高性能更新clickhouse数据库的方法流程示意图;
图2是本发明高性能更新clickhouse数据库的方法数据流图;
图3是本发明高性能更新clickhouse数据库的装置结构示意图;
图4是本发明一实施例的计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
本发明涉及的各个术语释义:
ClickHouse提供了大约28种表引擎,各有各的用途,比如有Log系列用来做小表数据分析,MergeTree系列用来做大数据量分析,而Integration系列则多用于外表数据集成。再考虑复制表Replicated系列,分布式表Distributed等。
ClickHouse表引擎一共分为四个系列,分别是Log、MergeTree、Integration、Special。其中包含了两种特殊的表引擎Replicated、Distributed,功能上与其他表引擎正交,根据场景组合使用。
分布式表(DistributedTable):分布式表是ClickHouse中用于存储数据的逻辑表。它将数据分布在集群中的多个节点上,每个节点都存储表的一部分数据。分布式表可以横向扩展,使得系统可以处理大规模的数据集。
本地表(LocalTable):本地表是ClickHouse中的一个概念,它是指在一个节点上存储的实际数据表。分布式表由多个本地表组成,每个本地表存储部分数据。本地表可以在不同的节点上进行复制,以提供数据冗余和故障恢复能力。
分区(Partition):分区是指将表数据按照某个规则划分成不同的逻辑分区。分区可以基于时间、字段值等进行划分。通过使用分区,可以更有效地管理和查询大型数据集,同时提高查询性能。
节点(Node):节点是ClickHouse集群中的一个物理或虚拟机器,负责存储和处理数据。一个节点可以包含多个本地表,每个本地表存储分布式表的一部分数据。节点之间通过网络进行通信和数据交换。
根据本发明的实施方式,提出了一种高性能更新clickhouse数据库的方法及装置,采用转循环更新的操作为批量插入的操作,在新旧记录同时存在的情况下,引入版本号这一属性作为确认最新记录的方式,改变clickhouse数据库表本地表的建表引擎,以版本号字段作为数据合并关系字段,同时改变分布式表的hash方式,使同一条攻击摘要的信息始终处在同一分片中。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
本发明涉及的一种高性能更新clickhouse数据库的方法,该方法包括:
S01、基于大数据环境下clickhouse数据库多台分布式部署,在clickhouse数据库建立攻击摘要的本地表和分布式表,本地表和分布式表中分别添加version(版本号)字段;
进一步地,所述S01包括:
S011、本地表使用合并引擎ReplicatedReplacingMergeTree,并以版本号字段作为合并关键字(合并依据字段);
S012、分布式表的建立以业务字段攻击id作为hash的关键字段,确保同一个攻击ID的数据落在同一个分片上。
S02、改造clickhouse数据库程序;
原有程序的核心逻辑为:攻击告警上报的记录需要根据攻击id分别去数据库做更新数据操作。改造后的程序比先前需要多维护一个版本号字段,将版本号字段设置为clickhouse数据库合并的依据字段,摒弃轮询更新的方式,转为一次性批量插入,降低数据库以及程序的开销。
进一步地,所述S02包括:
S021、将数据直接插入clickhouse的分布式表;
S022、根据分布式表所指定的hash方式,将不同攻击ID的数据路由到攻击摘要的本地表的各个分片,确保同一个相同攻击ID的数据落在同一个分片上;
S023、clickhouse在空闲的时间去自己合并相同数据。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述高性能更新clickhouse数据库的方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
如图1、图2所示,该方法包括:
S01、基于大数据环境下clickhouse数据库多台分布式部署,在clickhouse数据库建立攻击摘要的本地表和分布式表,本地表和分布式表中分别添加version(版本号)字段;
所述S01包括:
S011、本地表使用合并引擎ReplicatedReplacingMergeTree,并以版本号字段作为合并关键字(合并依据字段);
本地表示例如下:
S012、分布式表的建立以业务字段攻击id作为hash的关键字段,确保同一个攻击ID的数据落在同一个分片上;分布式表示例如下:
S02、改造clickhouse数据库程序;
原有程序的核心逻辑为:攻击告警上报的记录需要根据攻击id分别去数据库做更新数据操作。改造后的程序比先前需要多维护一个版本号字段,将版本号字段设置为clickhouse数据库合并的依据字段,摒弃轮询更新的方式,转为一次性批量插入,降低数据库以及程序的开销。
原有的程序核心逻辑如下,参数填充:(并发几万条数据)
循环更新本地表:
所述S02包括:
S021、将数据直接插入clickhouse的分布式表;
改造后的程序核心逻辑如下,参数构造:(加入版本号字段)
批量插入分布式表:
S022、根据分布式表所指定的hash方式,将不同攻击ID的数据路由到攻击摘要的本地表的各个分片,确保同一个相同攻击ID的数据落在同一个分片上;
S023、clickhouse在空闲的时间去自己合并相同数据。
攻击检测程序检测到攻击告警,并发较高的情况下,现在要将攻击告警的记录插入clickhouse数据库,以便于查询和使用,摒弃以前循环更新的方式,换而采用在业务侧控制版本号和攻击ID字段(这些都是在代码侧控制,clickhouse不做业务处理),将一次上报的攻击告警条目执行批量插入分布式表的操作;
由于clickhouse只能对于本分区的数据做合并,为了保证相同攻击ID的数据在攻击摘要表仅存在一条记录,所以需要将插入分布式表的数据根据cityHash的原则路由到各自的分区即本地表,保证相同攻击ID(不同版本号)的攻击摘要条目存在于同一分区中;
clickhouse提供了一种立刻合并的函数optimize,此函数显示调用会根据我们设定的规则(相同攻击ID的数据只保留版本号最新的条目)立刻执行合并,但是会造成数据库的拥塞,故在此我们不显式调用optimize函数,而采用在查询之后添加“final”关键字(主动取版本号最新的条目),使得在查询调用的时候去取最新版本号的数据并返回,防止数据发生抖动,而合并操作则交由clickhouse自己在数据库空闲的时候去完成,如此便实现了我们的业务需求,即保证同一攻击告警ID的数据始终处于同一分区之中,还有就是每次查询只获取版本号最新的攻击摘要条目。
由于改变了更新的方式,结合ReplacingMergeTree的合并时机和避免使用optimize强制立即合并所带来的性能损耗,为了避免出现数据抖动的现象,所以需要对查询进行修改,在涉及到攻击摘要的查询后加上final关键字,如:select*from detect_attack_dist final whereattack_id=‘xxxxxxxxx’,在查询时执行合并,确保每次查询的都是版本号最新的数据,保证数据的一致性。
本发明并未使用clickhouse对数据进行分析和聚合,只是使用了ReplicatedReplacingMergeTree这个引擎的数据合并机制(并非聚合,聚合是指有依据的数据变化,本发明未涉及使用clickhouse使数据发生变化),合并意为根据业务字段的控制(也就是版本号和攻击的ID)将老的数据合并到新的数据并且只保留最新的数据,在本方案中所有的数据均由业务控制,不存在clickhouse的自主变更。
基于同一发明构思,本发明还提出一种高性能更新clickhouse数据库的装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是本发明高性能更新clickhouse数据库的装置结构示意图。如图3所示,该装置包括:
数据库建表模块110、基于大数据环境下clickhouse数据库多台分布式部署,在clickhouse数据库建立攻击摘要的本地表和分布式表,本地表和分布式表中分别添加version字段;
数据库改造模块120、改造clickhouse数据库程序。
所述数据库建表模块110包括:
本地表建立模块、本地表使用合并引擎ReplicatedReplacingMe rgeTree,并以版本号字段作为合并关键字;
分布式表建立模块、分布式表的建立以业务字段攻击id作为hash的关键字段,确保同一个攻击ID的数据落在同一个分片上。
所述数据库改造模块120包括:
数据直插模块、将数据直接插入clickhouse的分布式表;
哈希模块、根据分布式表所指定的hash方式,将不同攻击ID的数据路由到攻击摘要的本地表的各个分片,确保同一个相同攻击ID的数据落在同一个分片上;
合并数据模块、clickhouse在空闲的时间去自己合并相同数据。
应当注意,尽管在上文详细描述中提及了高性能更新clickhouse数据库的装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于前述发明构思,如图4所示,本发明还提出一种计算机设备200,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序230,处理器220执行计算机程序230时实现前述高性能更新clickhouse数据库的方法。
基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述高性能更新clickhouse数据库的方法的计算机程序。
本发明一种高性能更新clickhouse数据库的方法及装置没有在update效率低下的情况下选择去优化update操作语句亿提高效率,而是开辟了一条新的思路,把更新数据的操作巧妙的转化成了数据插入操作。
本发明利用clickhouse携带的ReplacingMergeTree的特性,联系自身业务需求,巧妙地与clickhouse合并引擎(ReplicatedRepla cingMergeTree)结合,将业务设计和数据库设计相结合,转换解决问题的思路,引入版本号变量控制数据的一致性和实时性。
本发明没有使用optimize去在每次插入后强制合并相同记录,而是采用查询时合并的方式,降低了系统的性能损耗,让clickhouse在空闲的时候去做合并,不占用业务时间段。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (8)
1.一种高性能更新clickhouse数据库的方法,其特征在于,该方法包括:
S01、基于大数据环境下clickhouse数据库多台分布式部署,在clickhouse数据库建立攻击摘要的本地表和分布式表,本地表和分布式表中分别添加version字段;
S02、改造clickhouse数据库程序。
2.根据权利要求1所述的高性能更新clickhouse数据库的方法,其特征在于,所述S01包括:
S011、本地表使用合并引擎ReplicatedReplacingMergeTree,并以版本号字段作为合并关键字;
S012、分布式表的建立以业务字段攻击id作为hash的关键字段,确保同一个攻击ID的数据落在同一个分片上。
3.根据权利要求1所述的高性能更新clickhouse数据库的方法,其特征在于,所述S02包括:
S021、将数据直接插入clickhouse的分布式表;
S022、根据分布式表所指定的hash方式,将不同攻击ID的数据路由到攻击摘要的本地表的各个分片,确保同一个相同攻击ID的数据落在同一个分片上;
S023、clickhouse在空闲的时间去自己合并相同数据。
4.一种高性能更新clickhouse数据库的装置,其特征在于,该装置包括:
数据库建表模块、基于大数据环境下clickhouse数据库多台分布式部署,在clickhouse数据库建立攻击摘要的本地表和分布式表,本地表和分布式表中分别添加version字段;
数据库改造模块、改造clickhouse数据库程序。
5.根据权利要求4所述的高性能更新clickhouse数据库的装置,其特征在于,所述数据库建表模块包括:
本地表建立模块、本地表使用合并引擎ReplicatedReplacingMe rgeTree,并以版本号字段作为合并关键字;
分布式表建立模块、分布式表的建立以业务字段攻击id作为hash的关键字段,确保同一个攻击ID的数据落在同一个分片上。
6.根据权利要求4所述的高性能更新clickhouse数据库的装置,其特征在于,所述数据库改造模块包括:
数据直插模块、将数据直接插入clickhouse的分布式表;
哈希模块、根据分布式表所指定的hash方式,将不同攻击ID的数据路由到攻击摘要的本地表的各个分片,确保同一个相同攻击ID的数据落在同一个分片上;
合并数据模块、clickhouse在空闲的时间去自己合并相同数据。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-3任一项所述方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-3任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310922515.6A CN117149784A (zh) | 2023-07-26 | 2023-07-26 | 一种高性能更新clickhouse数据库的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310922515.6A CN117149784A (zh) | 2023-07-26 | 2023-07-26 | 一种高性能更新clickhouse数据库的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149784A true CN117149784A (zh) | 2023-12-01 |
Family
ID=88907008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310922515.6A Pending CN117149784A (zh) | 2023-07-26 | 2023-07-26 | 一种高性能更新clickhouse数据库的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149784A (zh) |
-
2023
- 2023-07-26 CN CN202310922515.6A patent/CN117149784A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11310313B2 (en) | Multi-threaded processing of search responses returned by search peers | |
US11184467B2 (en) | Multi-thread processing of messages | |
US9817858B2 (en) | Generating hash values | |
US8396852B2 (en) | Evaluating execution plan changes after a wakeup threshold time | |
US10936559B1 (en) | Strongly-consistent secondary index for a distributed data set | |
CN111221791A (zh) | 一种多源异构数据导入数据湖的方法 | |
US20140181144A1 (en) | Stream data processing method on recursive query of graph data | |
CN113568938B (zh) | 数据流处理方法、装置、电子设备及存储介质 | |
CN113364877B (zh) | 数据处理方法、装置、电子设备和介质 | |
CN111221785A (zh) | 一种多源异构数据的语义数据湖构建方法 | |
WO2017107130A1 (zh) | 数据查询方法和数据库系统 | |
CN113220710B (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
US20220067047A1 (en) | Method, apparatus, device and storage medium for generating and processing a distributed graph database | |
KR20230096107A (ko) | 빅 메타데이터 관리를 위한 열 기반 기법들 | |
CN111666302A (zh) | 用户排名的查询方法、装置、设备及存储介质 | |
CN117149784A (zh) | 一种高性能更新clickhouse数据库的方法及装置 | |
US10621199B2 (en) | Two phase retrieval using named graphs | |
US11947490B2 (en) | Index generation and use with indeterminate ingestion patterns | |
US11222003B1 (en) | Executing transactions for a hierarchy of data objects stored in a non-transactional data store | |
CN113051244B (zh) | 数据访问方法和装置、数据获取方法和装置 | |
US11803568B1 (en) | Replicating changes from a database to a destination and modifying replication capacity | |
US11789971B1 (en) | Adding replicas to a multi-leader replica group for a data set | |
US10684992B1 (en) | Causally ordering distributed file system events | |
CN117931805A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
US20240095246A1 (en) | Data query method and apparatus based on doris, storage medium and device |
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 |