一种从OLTP到OLAP的数据同步方法与流程

文档序号:28427900发布日期:2022-01-12 00:37阅读:277来源:国知局
一种从oltp到olap的数据同步方法
技术领域
:1.本发明涉及数据处理
技术领域
:,具体的说是一种从oltp到olap的数据同步方法。
背景技术
::2.联机事务处理(oltp)系统通常定期或持续的将数据同步至联机分析处理(olap)系统中,处理数百亿条记录、pb级数据量已经成为常见规模,这对数据同步性能以及稳定性提出了很高的要求。另一方面,表(table)的数量可能达到数万,为了同时进行多个表的同步,数据同步能支持多个表的并发。3.大数据领域的数据查询引擎一般可用定义外部表的方式直接使用hdfs存储的数据文件,可选的文件格式包括csv、parquet、orc等,不同的文件格式在写入速度、查询速度、文件大小方面各有侧重。这使得有可能通过设计方案并配合适当文件的格式同时满足高性能和低内存占用的需求。4.数据同步产品通常使用记录(record)作为中间对象,目的端收到源端发来的数据后重建出符合目的端的记录对象,在内存中缓存多条记录再批量处理,这会重复占用内存,影响整体入库性能。技术实现要素:5.本发明针对目前技术发展的需求和不足之处,提供一种从oltp到olap的数据同步方法。6.本发明的一种从oltp到olap的数据同步方法,解决上述技术问题采用的技术方案如下:7.一种oltp到olap的数据同步方法,其实现内容包括:8.在oltp中部署采集单元、编码单元和传输单元一,采集单元采集oltp的数据,编码单元将采集数据编码为消息,并通过传输单元一传送至olap;9.在olap中部署传输单元二、解码单元和写入单元,传输单元二接收传输单元一输出的消息,并通过解码单元将消息解码成数据,解码单元将解码后的数据进一步构建成一个个任务,随后通过写入单元批量同步至olap;10.上述过程中,采集单元将采集数据转换为olap支持的格式后通过编码单元编码为消息,或者,写入单元将解码单元输出任务所包含的数据转换为olap所支持的格式后批量同步至olap。11.优选的,所涉及olap支持csv、orc以及parquet格式的数据。12.具体的,所涉及采集单元包含非独立存在的转换单元,转换单元作为采集单元的扩展插件。13.具体的,所涉及写入单元包含非独立存在的转换单元,转换单元作为写入单元的扩展插件。14.具体的,所涉及传输单元一和传输单元二中分别具有消息队列;15.传输单元一的消息队列接收编码单元输出的消息,并传送至传输单元二的消息队列。16.更具体的,所涉及传输单元一和传输单元二的消息队列分别具有强顺序性和弱顺序性两种发送接收模型,其中:17.强顺序性模型针对的是增量场景下拥有前后依赖关系的数据传输,在牺牲吞吐量的情况下,保证顺序的一致性;18.弱顺序性适用于对记录同步不敏感的场景,一般为存量数据,便于提升并发处理能力。19.更具体的,在增量场景下,传输单元一和传输单元二的消息队列之间使用订阅模型进行消息传输;20.在存量数据同步中,使用拉模式以及消息队列提供的背压能力,平滑整个消息传输过程。21.更具体的,所涉及写入模块针对增量场景下数据量较少的情况,首先定义处理窗口时间,随后以单位窗口时间作为调度时间片,使用传统的操作模式进行相关的增量变更,即完整回放交换数据中的具体操作。22.更具体的,所涉及写入模块针对增量场景下单位时间内数据量较多的情况,对任务中同一条记录的多条中间操作进行归并,最终在操作窗口中将同一条记录的多条操作归并为单一操作,实现同步效率的优化。23.本发明的一种从oltp到olap的数据同步方法,与现有技术相比具有的有益效果是:24.(1)本发明利用采集单元将oltp数据采集后转换为交换格式,通过写入单元转换为olap所支持的csv、orc或parquet格式,再批量导入olap中,减少了传输和转换时间,提高了数据同步的性能,同时可以保持恒定的内存用量而不随数据量增长;25.(2)本发明可以减少数据同步工作流程的环节和数据流转层次,减少本地数据缓存以及后期数据库内的转换过程,减少中间对象开销和内存垃圾回收耗时,实现了高同步性能和低内存消耗的目的。附图说明26.附图1是本发明实施例一的实现单元连接框图;27.附图2是本发明实施例二的实现单元连接框图。具体实施方式28.为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。29.实施例一:30.结合附图1,本实施例提出一种oltp到olap的数据同步方法,其实现内容包括:31.在oltp中部署采集单元、编码单元和传输单元一,采集单元采集oltp的数据,编码单元将采集数据编码为消息,并通过传输单元一传送至olap;32.在olap中部署传输单元二、解码单元和写入单元,传输单元二接收传输单元一输出的消息,并通过解码单元将消息解码成数据,解码单元将解码后的数据进一步构建成一个个任务,随后通过写入单元批量同步至olap;33.上述过程中,采集单元包含非独立存在的转换单元,转换单元作为采集单元的扩展插件,转换单元将采集数据转换为olap支持的csv、orc以及parquet格式后通过编码单元编码为消息。34.传输单元一和传输单元二中分别具有消息队列。传输单元一的消息队列接收编码单元输出的消息,并传送至传输单元二的消息队列。35.传输单元一和传输单元二的消息队列分别具有强顺序性和弱顺序性两种发送接收模型,其中:36.强顺序性模型针对的是增量场景下拥有前后依赖关系的数据传输,在牺牲吞吐量的情况下,保证顺序的一致性;37.弱顺序性适用于对记录同步不敏感的场景,一般为存量数据,便于提升并发处理能力。38.需要补充的是,在增量场景下,传输单元一和传输单元二的消息队列之间使用订阅模型进行消息传输;39.在存量数据同步中,使用拉模式以及消息队列提供的背压能力,平滑整个消息传输过程。40.本实施例中,写入模块针对增量场景下数据量较少的情况,首先定义处理窗口时间,随后以单位窗口时间作为调度时间片,使用传统的操作模式进行相关的增量变更,即完整回放交换数据中的具体操作。41.本实施例中,写入模块针对增量场景下单位时间内数据量较多的情况,对任务中同一条记录的多条中间操作进行归并,最终在操作窗口中将同一条记录的多条操作归并为单一操作,实现同步效率的优化。42.实施例二:43.结合附图2,本实施例提出一种oltp到olap的数据同步方法,其实现内容包括:44.在oltp中部署采集单元、编码单元和传输单元一,采集单元采集oltp的数据,编码单元将采集数据编码为消息,并通过传输单元一传送至olap;45.在olap中部署传输单元二、解码单元和写入单元,传输单元二接收传输单元一输出的消息,并通过解码单元将消息解码成数据,解码单元将解码后的数据进一步构建成一个个任务,随后通过写入单元批量同步至olap;46.上述过程中,写入单元包含非独立存在的转换单元,转换单元作为写入单元的扩展插件,转换单元将解码单元输出任务所包含的数据转换为olap所支持的csv、orc以及parquet格式后批量同步至olap。47.传输单元一和传输单元二中分别具有消息队列。传输单元一的消息队列接收编码单元输出的消息,并传送至传输单元二的消息队列。48.传输单元一和传输单元二的消息队列分别具有强顺序性和弱顺序性两种发送接收模型,其中:49.强顺序性模型针对的是增量场景下拥有前后依赖关系的数据传输,在牺牲吞吐量的情况下,保证顺序的一致性;50.弱顺序性适用于对记录同步不敏感的场景,一般为存量数据,便于提升并发处理能力。51.需要补充的是,在增量场景下,传输单元一和传输单元二的消息队列之间使用订阅模型进行消息传输;52.在存量数据同步中,使用拉模式以及消息队列提供的背压能力,平滑整个消息传输过程。53.本实施例中,写入模块针对增量场景下数据量较少的情况,首先定义处理窗口时间,随后以单位窗口时间作为调度时间片,使用传统的操作模式进行相关的增量变更,即完整回放交换数据中的具体操作。54.本实施例中,写入模块针对增量场景下单位时间内数据量较多的情况,对任务中同一条记录的多条中间操作进行归并,最终在操作窗口中将同一条记录的多条操作归并为单一操作,实现同步效率的优化。55.综上可知,采用本发明的一种从oltp到olap的数据同步方法,可以减少传输和转换时间,提高数据同步性能,同时可以保持恒定的内存用量而不随数据量增长。56.以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本
技术领域
:的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1