CN112988741A - 实时业务数据合并方法、装置及电子设备 - Google Patents
实时业务数据合并方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112988741A CN112988741A CN202110157033.7A CN202110157033A CN112988741A CN 112988741 A CN112988741 A CN 112988741A CN 202110157033 A CN202110157033 A CN 202110157033A CN 112988741 A CN112988741 A CN 112988741A
- Authority
- CN
- China
- Prior art keywords
- data
- real
- service
- management system
- service data
- 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 62
- 238000003860 storage Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 13
- 230000008676 import Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 6
- 238000007726 management method Methods 0.000 description 62
- 238000012545 processing Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013486 operation strategy Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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/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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/221—Column-oriented storage; 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/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
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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种实时业务数据合并方法、装置、***电子设备及计算机可读介质。该方法包括:实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;对所述二进制日志文件进行解析,生成业务数据;将所述业务数据实时写入分布式发布订阅消息***生成集群数据;基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;通过所述列式数据库管理***对所述业务数据进行合并。本公开涉及的实时业务数据合并方法、装置、***电子设备及计算机可读介质,在保证原有实时数据回溯的准确性、及时性、有序性的基础上,能够提升数据回溯效率,降低数据产出时间,降低资源消耗。
Description
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种实时业务数据合并方法、装置、***电子设备及计算机可读介质。
背景技术
随着各个公司业务的发展,为了给用户提供更好的服务,应对突然数据,也为了对实时的运营策略进行监控,越来越多的运营人员将数据分析工作由线下提到了线上实时处理。运营人员可通过实时、准实时指标监控运营策略和调整策略布局。
为了满足这种需求,现有及时中常常使用Canal(数据库增量日志解析)框架实时从业务mysql中拉取二进制日志文件数据,然后实时写入kafka(分布式发布订阅消息***)中,再导入clickhouse(列式数据库管理***)。在clickhouse对二进制日志文件进行合并去重,对数据进行归因,达到和mysql最新数据一致的状态。在此之上再完成各个实时、准实时指标计算,实时标签生成,达到促进业务发展、加快业务感知的目的。
但是目前随着mysql中个别表数据量越来越大,需要合并的数据也越来越多,原有通过普通视图合并数据的方案存在执行速度慢、消耗资源多、导致Clickhouse集群不稳定等诸多问题。
因此,需要一种新的实时业务数据合并方法、装置、***电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开提供一种实时业务数据合并方法、装置、***电子设备及计算机可读介质,在保证原有实时数据回溯的准确性、及时性、有序性的基础上,能够提升数据回溯效率,降低数据产出时间,降低资源消耗。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提出一种实时业务数据合并方法,该方法包括:实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;对所述二进制日志文件进行解析,生成业务数据;将所述业务数据实时写入分布式发布订阅消息***生成集群数据;基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;通过所述列式数据库管理***对所述业务数据进行合并。
可选地,还包括:实时由合并后的集群数据中提取业务数据;基于所述业务数据实时生成业务指标和/或业务标签。
可选地,实时由业务数据库中获取二进制日志文件,包括:通过增量日志解析方式实时由所述业务数据库中获取所述二进制日志文件。
可选地,基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***,包括:以实时消费的方式由所述分布式发布订阅消息***中获取集群数据;提取所述集群数据中包含的多个业务数据的主键;基于所述主键将所述多个业务数据导入所述列式数据库管理***。
可选地,基于所述主键将所述多个业务数据导入所述列式数据库管理***之前,包括:基于所述主键的数量在所述列式数据库管理***中创建多个本地表。
可选地,基于所述主键将所述多个业务数据导入所述列式数据库管理***,包括:分别计算所述主键的哈希值;基于所述哈希值将所述多个业务数据分别存储在列式数据库管理***的多个本地表中。
可选地,通过所述列式数据库管理***对所述业务数据进行合并,包括:所述列式数据库管理***的物化视图获取所述集群数据;基于所述多个本地表将所述集群数据中的所述业务数据进行合并。
可选地,所述列式数据库管理***的物化视图获取所述集群数据之前,包括:基于所述列式数据库管理***的多个本地表创建物化视图,所述物化视图用于进行集群数据合并;基于所述物化视图创建集群分布式表;基于所述集群分布式表生成所述普通视图。
可选地,所述列式数据库管理***的物化视图获取所述集群数据,包括:所述列式数据库管理***的物化视图通过异步方式处理所述集群数据。
可选地,基于所述多个本地表将所述集群数据中的所述业务数据进行合并,包括:基于普通视图功能对所述业务数据进行去重操作;将去重操作之后的所述业务数据进行合并。
根据本公开的一方面,提出一种实时业务数据合并装置,该装置包括:日志模块,用于实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;解析模块,用于对所述二进制日志文件进行解析,生成业务数据;写入模块,用于将所述业务数据实时写入分布式发布订阅消息***生成集群数据;导入模块,用于基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;合并模块,用于通过所述列式数据库管理***对所述业务数据进行合并。
可选地,还包括:业务模块,用于实时由合并后的集群数据中提取业务数据;基于所述业务数据实时生成业务指标和/或业务标签。
可选地,所述日志模块,还用于通过增量日志解析方式实时由所述业务数据库中获取所述二进制日志文件。
可选地,所述导入模块,包括:获取单元,用于以实时消费的方式由所述分布式发布订阅消息***中获取集群数据;主键单元,用于提取所述集群数据中包含的多个业务数据的主键;导入单元,用于基于所述主键将所述多个业务数据导入所述列式数据库管理***。
可选地,所述导入模块,还包括:本地表单元,用于基于所述主键的数量在所述列式数据库管理***中创建多个本地表。
可选地,所述导入单元,还用于分别计算所述主键的哈希值;基于所述哈希值将所述多个业务数据分别存储在列式数据库管理***的多个本地表中。
可选地,所述合并模块,包括:集群单元,用于所述列式数据库管理***的物化视图获取所述集群数据;合并单元,用于基于所述多个本地表将所述集群数据中的所述业务数据进行合并。
可选地,所述合并模块,还包括:创建单元,用于基于所述列式数据库管理***的多个本地表创建物化视图,所述物化视图用于进行集群数据合并;基于所述物化视图创建集群分布式表;基于所述集群分布式表生成所述普通视图。
可选地,所述集群单元,还用于所述列式数据库管理***的物化视图通过异步方式处理所述集群数据。
可选地,所述合并单元,还用于基于普通视图功能对所述业务数据进行去重操作;将去重操作之后的所述业务数据进行合并。
根据本公开的一方面,提出一种实时业务数据合并***,该***包括:业务数据库,用于存储实时业务数据,所述业务数据为二进制日志文件,所述业务数据通过主键进行区别;增量日志解析服务器,用于对所述二进制日志文件进行解析,生成业务数据;分布式发布订阅消息***,用于实时写入所述业务数据的集群中,生成集群数据;列式数据库管理***,用于基于主键获取所述集群数据,并对所述业务数据进行合并。
根据本公开的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本公开的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本公开的实时业务数据合并方法、装置、***电子设备及计算机可读介质,实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;对所述二进制日志文件进行解析,生成业务数据;将所述业务数据实时写入分布式发布订阅消息***生成集群数据;基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;通过所述列式数据库管理***对所述业务数据进行合并的方式,在保证原有实时数据回溯的准确性、及时性、有序性的基础上,能够提升数据回溯效率,降低数据产出时间,降低资源消耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种实时业务数据合并***的示意图。
图2是根据一示例性实施例示出的一种实时业务数据合并方法的流程图。
图3是根据另一示例性实施例示出的一种实时业务数据合并方法的流程图。
图4是根据另一示例性实施例示出的一种实时业务数据合并方法的流程图。
图5是根据另一示例性实施例示出的一种实时业务数据合并方法的示意图。
图6是根据一示例性实施例示出的一种实时业务数据合并装置的框图。
图7是根据另一示例性实施例示出的一种实时业务数据合并***的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
图9是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、***实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
图1是根据一示例性实施例示出的一种实时业务数据合并***的示意图。
如图1所示,***架构10可以包括业务数据库101、增量日志解析服务器102、分布式发布订阅消息***03,列式数据库管理***104。网络用以在业务数据库101、增量日志解析服务器102、分布式发布订阅消息***03,列式数据库管理***104之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
业务数据库101上可存储实时业务数据,具体可包括用户数据和用户产生的实时的行为数据,业务数据通过主键进行区别;增量日志解析服务器102可例如对所述二进制日志文件进行解析,生成业务数据;分布式发布订阅消息***103可例如实时写入所述业务数据的集群中,生成集群数据;列式数据库管理***104可例如基于主键获取所述集群数据,并对所述业务数据进行合并。
更具体的,在一个实际应用场景中,在以上处理之后,为了保证列式数据库管理***104使用ReplacingMergeTree由集群数据合并变成本地数据合并,首先要保证同一主键的数据只写入到列式数据库管理***104同一个本地表中,然后通过创建ReplacingMergeTree引擎的物化视图,在视图内部实现数据本地合并后留下最新时间戳的数据。但是由于ReplacingMergeTree只有在相同分区内的数据才能合并,而设置分区一般是按照日期来划分,导致不同日志的主键的数据不能合并。所以在本公开实施例中通过创建集群表和相应的普通视图来实现在集群上面所有主键只保留最新一份。
通过上述处理方式,在底层数据合并的时候尽可能的把相同主键的数据进行合并,减少数据量,然后通过普通视图进行集群合并的时候,把每个本地表的数据进行汇聚合并就相当于本地数据先合并再汇聚。极大的降低了内存消耗,极大提升了普通视图数据合并的速度。
图2是根据一示例性实施例示出的一种实时业务数据合并方法的流程图。实时业务数据合并方法20至少包括步骤S202至S210。
如图2所示,在S202中,实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别。包括:通过增量日志解析方式实时由所述业务数据库中获取所述二进制日志文件。
其中,二进制日志文件可为binlog文件,binlog是记录所有数据库表结构变更(例如CREATE、ALTERTABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。binlog不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改。
其中,通过增量日志解析方式可由Canal实现,Canal可基于MySQL数据库增量日志解析,提供增量数据订阅和消费。更具体的,Canal可模拟MySQLslave的交互协议,将自己伪装为MySQLslave,向MySQLmaster发送dump协议;MySQLmaster收到dump请求,开始推送binlog给slave(即Canal);Canal解析binlog对象(原始为byte流)。
在S204中,对所述二进制日志文件进行解析,生成业务数据。
在S206中,将所述业务数据实时写入分布式发布订阅消息***生成集群数据。
其中,分布式发布订阅消息***可为Kafka,Kafka是由Scala和Java编写的一种高吞吐量的分布式发布订阅消息***,它可以处理消费者在网站中的所有动作流数据。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析***,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
在S208中,基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***。可例如,以实时消费的方式由所述分布式发布订阅消息***中获取集群数据;提取所述集群数据中包含的多个业务数据的主键;基于所述主键将所述多个业务数据导入所述列式数据库管理***。
“基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***”的详细内容将在图3对应的实施例中进行描述。
其中,列式数据库管理***可为ClickHouse,在ClickHouse中,数据始终是按列存储的,包括矢量(向量或列块)执行的过程。只要有可能,操作都是基于矢量进行分派的,而不是单个的值,这被称为《矢量化查询执行》,它有利于降低实际的数据处理开销。
在一个实施例中,可通过Gohangout将数据由分布式发布订阅消息系导入列式数据库管理***,Gohangout是用golang编写的一套数据传输管道工具。支持从kafka消费数据到ES,Clickhouse等操作,同时用户可以使用Filter来筛选数据解析不同类型数据,然后通过Convert对数据类型进行转换。
需要注意的是:由于clickHouse不支持事务操作,顾不能作为传统数据库来使用(OLTP),以及高请求率的键值访问,Blob或文档存储,超标准化数据。
更具体的,可通过clickHouse中的ReplacingMergeTree并结合argMax方式进行数据合并。其中,ReplacingMergeTree指Clickhouse提供的一种用于数据合并的表引擎,此种引擎可以通过配置主键和合并条件来合并数据。但是要实现集群全局数据合并,还需要通过集群表argMax全局去重的操作。在本公开中,通过的ReplacingMergeTree并结合argMax方式对Clickhouse集群表数据进行全局去重。
在S210中,通过所述列式数据库管理***对所述业务数据进行合并。可例如,所述列式数据库管理***的物化视图获取所述集群数据;基于所述多个本地表将所述集群数据中的所述业务数据进行合并。
“通过所述列式数据库管理***对所述业务数据进行合并”的详细内容将在图4对应的实施例中进行描述。
在一个实施例中,还包括:实时由合并后的集群数据中提取业务数据;基于所述业务数据实时生成业务指标和/或业务标签。可通过ods_view.prd_apv_ap_apply_real_mv_view命令获取业务数据并进行后续的分析处理。
本公开的实时业务数据合并方法,为了解决随着mysql中个别表数据量越来越大,需要合并的数据也越来越多,原有通过普通视图合并数据的方案存在执行速度慢、消耗资源多、导致Clickhouse集群不稳定等诸多问题。通过对数据同步端数据流向的定向设计,更好的使用了ReplacingMergeTree引擎,把集群去重实现变成近似于本地去重集群合并的实现,使用Clickhouse的物化视图功能,把数据去重由批处理变成流处理,削峰填谷,极大的减少了同一时间内由于任务集中执行普通视图对数据进行去重导致资源大量消耗的问题。在保证原有实时数据回溯的准确性、及时性、有序性的基础上,提升数据回溯效率,降低数据产出时间,降低资源消耗。
根据本公开的实时业务数据合并方法,实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;对所述二进制日志文件进行解析,生成业务数据;将所述业务数据实时写入分布式发布订阅消息***生成集群数据;基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;通过所述列式数据库管理***对所述业务数据进行合并的方式,在保证原有实时数据回溯的准确性、及时性、有序性的基础上,能够提升数据回溯效率,降低数据产出时间,降低资源消耗。
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。
图3是根据另一示例性实施例示出的一种实时业务数据合并方法的流程图。图3所示的流程30是对图2所示的流程中S208“基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***”的详细描述。
如图3所示,在S302中,基于所述主键的数量在所述列式数据库管理***中创建多个本地表。由业务数据中提取的主键数量确定本地表的数量,本地表的数量大于等于主键数量。
在S304中,以实时消费的方式由所述分布式发布订阅消息***中获取集群数。
在S306中,提取所述集群数据中包含的多个业务数据的主键。
在S308中,分别计算所述主键的哈希值。
在S310中,基于所述哈希值将所述多个业务数据分别存储在列式数据库管理***的多个本地表中。把主键相同的数据通过hash算法放到同一个本地表中。
为了保证同个表相同主键下数据从Mysql到Clickhouse的有序性,可使用Canal解析Mysql binlog并发送给kafka相应topic,对应于partition的主键数据的有序性。但是通过gohangout消费kafka数据到clickhouse本地表的时候,由于gohangout写入数据是轮询,打破了这种有序性。所以本发明提出了一种新的kafka到clickhouse的数据流转过程,由轮询写入clickhouse改为通过hash算法的方式,保证同一主键的数据均进入同一个clickhouse本地表,只有这样才能最大化的让数据在本地合并完成,提升效率。在现有技术中,kafka到clickhouse的数据流转时,会把相同主键的数据打散到不同本地表,然后再在最后的合并过程中把所有数据通过集群网络传输放到一个节点上面进行全局合并。
图4是根据另一示例性实施例示出的一种实时业务数据合并方法的流程图。图4所示的流程40是对图2所示的流程中S210“通过所述列式数据库管理***对所述业务数据进行合并”的详细描述。
如图4所示,在S402中,基于所述列式数据库管理***的多个本地表创建物化视图,所述物化视图用于进行集群数据合并。
其中,物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图。一些大的耗时的表连接用物化视图实现,会提高查询的效率。
在S404中,基于所述物化视图创建集群分布式表。物化视图创建后,此时如果本地表有数据写入,物化视图就会有数据写入,物化视图的合并不是即时性的,是异步合并的,会在分区数据合并时启动。
在S406中,基于所述集群分布式表生成所述普通视图。图5是clickhouse内部数据流转过程图。在clickhouse内部,能保证同个表相同主键下数据从Mysql到Clickhouse的有序性。
在S408中,所述列式数据库管理***的物化视图获取所述集群数据以进行业务数据合并。可基于所述多个本地表将所述集群数据中的所述业务数据进行合并。其中,所述列式数据库管理***的物化视图通过异步方式处理所述集群数据。
在一个实施例中,可例如基于普通视图功能对所述业务数据进行去重操作;将去重操作之后的所述业务数据进行合并。可在分布式表上层再搭建普通视图进行argMax去重。
本公开中的方法中,通过Clickhouse ReplacingMergeTree引擎的数据合并功能,在保证同一主键数据都存储在同一节点并有序后,通过表引擎进行快速有效的数据合并和全局去重,还原mysql数据的功能。保证clickhouse中的数据和mysql中的数据保持一致的基础上进行数据分析。同时减少集群资源挤兑情况,减少峰值,提升集群稳定性。
本公开中的方法中,通过空间换时间的方式,利用clickhouse自身引擎内部实现的数据合并计算,可以极大的减少资源消耗和提升合并速度。
值得一提的是,对于gohangout消费数据写到相应本地表的过程,虽然可以通过flink实现。而且,对于clickhouse中全局数据合并,虽然也可以使用flink实现,但是成本比较高,数据校验数据质量监控都比较困难。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图6是根据另一示例性实施例示出的一种实时业务数据合并装置的框图。如图6所示,实时业务数据合并装置60包括:日志模块602,解析模块604,写入模块606,导入模块608,合并模块610。
日志模块602用于实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;所述日志模块602还用于通过增量日志解析方式实时由所述业务数据库中获取所述二进制日志文件。
解析模块604用于对所述二进制日志文件进行解析,生成业务数据;
写入模块606用于将所述业务数据实时写入分布式发布订阅消息***生成集群数据;
导入模块608用于基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;所述导入模块608包括:获取单元,用于以实时消费的方式由所述分布式发布订阅消息***中获取集群数据;主键单元,用于提取所述集群数据中包含的多个业务数据的主键;导入单元,用于基于所述主键将所述多个业务数据导入所述列式数据库管理***。所述导入单元,还用于分别计算所述主键的哈希值;基于所述哈希值将所述多个业务数据分别存储在列式数据库管理***的多个本地表中。本地表单元,用于基于所述主键的数量在所述列式数据库管理***中创建多个本地表。
合并模块610用于通过所述列式数据库管理***对所述业务数据进行合并。所述合并模块610包括:集群单元,用于所述列式数据库管理***的物化视图获取所述集群数据;所述集群单元,还用于所述列式数据库管理***的物化视图通过异步方式处理所述集群数据。合并单元,用于基于所述多个本地表将所述集群数据中的所述业务数据进行合并。所述合并单元,还用于基于普通视图功能对所述业务数据进行去重操作;将去重操作之后的所述业务数据进行合并。创建单元,用于基于所述列式数据库管理***的多个本地表创建物化视图,所述物化视图用于进行集群数据合并;基于所述物化视图创建集群分布式表;基于所述集群分布式表生成所述普通视图。
实时业务数据合并装置60还可包括:业务模块,用于实时由合并后的集群数据中提取业务数据;基于所述业务数据实时生成业务指标和/或业务标签。
图7是根据一示例性实施例示出的一种实时业务数据合并装置的框图。如图7所示,实时业务数据合并装置70包括:业务数据库702,增量日志解析服务器704,分布式发布订阅消息***706,列式数据库管理***708。
业务数据库702用于存储实时业务数据,所述业务数据为二进制日志文件,所述业务数据通过主键进行区别;
增量日志解析服务器704用于对所述二进制日志文件进行解析,生成业务数据;
分布式发布订阅消息***706用于实时写入所述业务数据的集群中,生成集群数据;
列式数据库管理***708用于基于主键获取所述集群数据,并对所述业务数据进行合并。
根据本公开的实时业务数据合并装置,实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;对所述二进制日志文件进行解析,生成业务数据;将所述业务数据实时写入分布式发布订阅消息***生成集群数据;基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;通过所述列式数据库管理***对所述业务数据进行合并的方式,在保证原有实时数据回溯的准确性、及时性、有序性的基础上,能够提升数据回溯效率,降低数据产出时间,降低资源消耗。
图8是根据一示例性实施例示出的一种电子设备的框图。
下面参照图8来描述根据本公开的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同***组件(包括存储单元820和处理单元810)的总线830、显示单元840等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书中的根据本公开各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图2,图3,图4中所示的步骤。
所述存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
所述存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备800’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备800交互的设备通信,和/或该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器860可以通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图9所示,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;对所述二进制日志文件进行解析,生成业务数据;将所述业务数据实时写入分布式发布订阅消息***生成集群数据;基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;通过所述列式数据库管理***对所述业务数据进行合并。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (10)
1.一种实时业务数据合并方法,其特征在于,包括:
实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;
对所述二进制日志文件进行解析,生成业务数据;
将所述业务数据实时写入分布式发布订阅消息***生成集群数据;
基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;
通过所述列式数据库管理***对所述业务数据进行合并。
2.如权利要求1所述的方法,其特征在于,还包括:
实时由合并后的集群数据中提取业务数据;
基于所述业务数据实时生成业务指标和/或业务标签。
3.如权利要求1-2中任一所述的方法,其特征在于,实时由业务数据库中获取二进制日志文件,包括:
通过增量日志解析方式实时由所述业务数据库中获取所述二进制日志文件。
4.如权利要求1-3中任一所述的方法,其特征在于,基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***,包括:
以实时消费的方式由所述分布式发布订阅消息***中获取集群数据;
提取所述集群数据中包含的多个业务数据的主键;
基于所述主键将所述多个业务数据导入所述列式数据库管理***。
5.如权利要求1-4中任一所述的方法,其特征在于,基于所述主键将所述多个业务数据导入所述列式数据库管理***之前,包括:
基于所述主键的数量在所述列式数据库管理***中创建多个本地表。
6.如权利要求1-5中任一所述的方法,其特征在于,基于所述主键将所述多个业务数据导入所述列式数据库管理***,包括:
分别计算所述主键的哈希值;
基于所述哈希值将所述多个业务数据分别存储在列式数据库管理***的多个本地表中。
7.如权利要求1-6中任一所述的方法,其特征在于,通过所述列式数据库管理***对所述业务数据进行合并,包括:
所述列式数据库管理***的物化视图获取所述集群数据;
基于所述多个本地表将所述集群数据中的所述业务数据进行合并。
8.一种实时业务数据合并装置,其特征在于,包括:
日志模块,用于实时由业务数据库中获取二进制日志文件,所述业务数据通过主键进行区别;
解析模块,用于对所述二进制日志文件进行解析,生成业务数据;
写入模块,用于将所述业务数据实时写入分布式发布订阅消息***生成集群数据;
导入模块,用于基于主键将所述集群数据以实时消费的方式由所述分布式发布订阅消息***导入列式数据库管理***;
合并模块,用于通过所述列式数据库管理***对所述业务数据进行合并。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110157033.7A CN112988741A (zh) | 2021-02-04 | 2021-02-04 | 实时业务数据合并方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110157033.7A CN112988741A (zh) | 2021-02-04 | 2021-02-04 | 实时业务数据合并方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988741A true CN112988741A (zh) | 2021-06-18 |
Family
ID=76347199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110157033.7A Pending CN112988741A (zh) | 2021-02-04 | 2021-02-04 | 实时业务数据合并方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988741A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596117A (zh) * | 2021-07-14 | 2021-11-02 | 北京淇瑀信息科技有限公司 | 实时数据处理方法、***、设备及介质 |
CN114841570A (zh) * | 2022-05-07 | 2022-08-02 | 金腾科技信息(深圳)有限公司 | 用于客户关系管理***的数据处理方法、装置、设备及介质 |
CN115934846A (zh) * | 2023-02-06 | 2023-04-07 | 北京仁科互动网络技术有限公司 | 列式储存数据库clickhouse的数据同步方法 |
CN117149914A (zh) * | 2023-10-27 | 2023-12-01 | 成都优卡数信信息科技有限公司 | 一种基于ClickHouse的存储方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107169083A (zh) * | 2017-05-11 | 2017-09-15 | 聚龙融创科技有限公司 | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 |
US20170277616A1 (en) * | 2016-03-25 | 2017-09-28 | Linkedin Corporation | Replay-suitable trace recording by service container |
CN108965355A (zh) * | 2017-05-18 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 用于数据传输的方法、装置及计算机可读存储介质 |
CN109992469A (zh) * | 2017-12-29 | 2019-07-09 | 北京奇虎科技有限公司 | 一种合并日志的方法及装置 |
US20200204557A1 (en) * | 2018-12-19 | 2020-06-25 | International Business Machines Corporation | Decentralized database identity management system |
CN112163048A (zh) * | 2020-09-23 | 2021-01-01 | 常州微亿智造科技有限公司 | 基于ClickHouse实现OLAP分析的方法、装置 |
-
2021
- 2021-02-04 CN CN202110157033.7A patent/CN112988741A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170277616A1 (en) * | 2016-03-25 | 2017-09-28 | Linkedin Corporation | Replay-suitable trace recording by service container |
CN107169083A (zh) * | 2017-05-11 | 2017-09-15 | 聚龙融创科技有限公司 | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 |
CN108965355A (zh) * | 2017-05-18 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 用于数据传输的方法、装置及计算机可读存储介质 |
CN109992469A (zh) * | 2017-12-29 | 2019-07-09 | 北京奇虎科技有限公司 | 一种合并日志的方法及装置 |
US20200204557A1 (en) * | 2018-12-19 | 2020-06-25 | International Business Machines Corporation | Decentralized database identity management system |
CN112163048A (zh) * | 2020-09-23 | 2021-01-01 | 常州微亿智造科技有限公司 | 基于ClickHouse实现OLAP分析的方法、装置 |
Non-Patent Citations (2)
Title |
---|
FANGJIN YANG等: "Druid: a real-time analytical data store", SIGMOD \'14: PROCEEDINGS OF THE 2014 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA,JUNE 2014,PAGES 157–168, 30 June 2014 (2014-06-30), pages 157, XP055389304, DOI: 10.1145/2588555.2595631 * |
张波: "基于大数据技术的公安移动通信数据处理平台设计与实现", 中国优秀硕士学位论文全文数据库 (信息科技辑), 15 January 2017 (2017-01-15), pages 138 - 228 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596117A (zh) * | 2021-07-14 | 2021-11-02 | 北京淇瑀信息科技有限公司 | 实时数据处理方法、***、设备及介质 |
CN113596117B (zh) * | 2021-07-14 | 2023-09-08 | 北京淇瑀信息科技有限公司 | 实时数据处理方法、***、设备及介质 |
CN114841570A (zh) * | 2022-05-07 | 2022-08-02 | 金腾科技信息(深圳)有限公司 | 用于客户关系管理***的数据处理方法、装置、设备及介质 |
CN115934846A (zh) * | 2023-02-06 | 2023-04-07 | 北京仁科互动网络技术有限公司 | 列式储存数据库clickhouse的数据同步方法 |
CN117149914A (zh) * | 2023-10-27 | 2023-12-01 | 成都优卡数信信息科技有限公司 | 一种基于ClickHouse的存储方法 |
CN117149914B (zh) * | 2023-10-27 | 2024-01-26 | 成都优卡数信信息科技有限公司 | 一种基于ClickHouse的存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yaqoob et al. | Big data: From beginning to future | |
CN112988741A (zh) | 实时业务数据合并方法、装置及电子设备 | |
CN110807067B (zh) | 关系型数据库和数据仓库的数据同步方法、装置及设备 | |
Begoli et al. | Design principles for effective knowledge discovery from big data | |
Samadi et al. | Performance comparison between Hadoop and Spark frameworks using HiBench benchmarks | |
CN111209352B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111339073A (zh) | 实时数据处理方法、装置、电子设备及可读存储介质 | |
Narkhede et al. | HMR log analyzer: Analyze web application logs over Hadoop MapReduce | |
Sehgal et al. | Sentiment analysis of big data applications using Twitter Data with the help of HADOOP framework | |
TW201740294A (zh) | 一種模型的訓練方法和裝置 | |
Jeong et al. | Anomaly teletraffic intrusion detection systems on hadoop-based platforms: A survey of some problems and solutions | |
CN110781197B (zh) | 一种hive离线同步校验方法、装置及电子设备 | |
CN109522341A (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
CN112948486A (zh) | 批量数据同步方法、***及电子设备 | |
Nagesh et al. | High performance computation of big data: performance optimization approach towards a parallel frequent item set mining algorithm for transaction data based on hadoop MapReduce framework | |
CN113010607A (zh) | ***间数据同步方法、装置、计算机***、存储介质 | |
CN114416868B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
Zhou et al. | Sfmapreduce: An optimized mapreduce framework for small files | |
CN107679096B (zh) | 数据集市间指标共享的方法和装置 | |
CN115809311A (zh) | 知识图谱的数据处理方法、装置及计算机设备 | |
CN115391286A (zh) | 一种链路追踪数据管理方法、装置、设备及存储介质 | |
CN113010399A (zh) | 日志数据处理方法、***、设备及介质 | |
Abead et al. | A comparative study of HDFS replication approaches | |
CN112416865A (zh) | 基于大数据的文件处理方法和装置 | |
CN111597201A (zh) | 一种基于Greenplum大规模并行处理数据库的内容快速压缩方法 |
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 |