[发明专利]基于ETL的多线程数据处理方法有效
| 申请号: | 201010241787.2 | 申请日: | 2010-08-02 |
| 公开(公告)号: | CN101882165A | 公开(公告)日: | 2010-11-10 |
| 发明(设计)人: | 周钢;陈俊 | 申请(专利权)人: | 山东中创软件工程股份有限公司;山东中创软件商用中间件股份有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 逯长明 |
| 地址: | 250014 山*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 etl 多线程 数据处理 方法 | ||
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于ETL的多线程数据处理方法。
背景技术
数据仓库是企业目前应用非常广泛的一种综合数据平台,它是一个独立的数据环境,相对于关系数据库,数据仓库技术没有严格的数学理论基础,它更面向实际工程应用,需要通过数据抽取机制将数据从联机事务处理环境、外部数据源和脱机的数据存储介质导入到数据仓库中。因此,数据抽取、转换和装载(ETL,Extraction-Transformation-Loading)是数据仓库中的非常重要的一环,它是承前启后的必要的一步。
ETL负责将分布的和异构数据源中的数据,如关系数据和平面数据文件等抽取到临时中间层后进行清洗、转换和集成,最后加载到数据仓库或数据集市中,成为联机分析处理和数据挖掘的基础。
现有技术的ETL工具进行数据处理时,数据抽取过程采用的是单线程处理机制,因此存在硬件资源利用率低、数据吞吐量小和抽取速率低的问题。
此外,如果数据抽取过程中产生错误,将导致整个ETL瘫痪。
发明内容
有鉴于此,本发明提供一种基于ETL的多线程数据处理方法,以解决现有技术存在的硬件资源利用率低、数据吞吐量小和速率低的问题,技术方案如下:
一种基于ETL的多线程数据处理方法,包括:将ETL的数据抽取过程分为明显的三个阶段,即抽取、发送和同步,并且使用各自独立的线程并行执行以下四个步骤:
步骤10:由数据抽取单元启动一个抽取线程,通过规则实时抽取源表数据,并将数据封装后存放到待发送消息队列,如果抽取数据过程发生错误,则将出错的数据发送到出错数据消息队列;
步骤11:由数据发送单元启动一个发送线程,循环检测待发送消息队列,当该队列中有需要发送的数据时,则将该数据发送到待同步消息队列,如果发送数据过程发生错误,则将出错的数据发送到出错数据消息队列;
步骤12:由数据同步单元启动一个同步线程,循环检测待同步消息队列,当该队列中有需要同步的数据时,则解析该数据并同步目的表数据,如果同步数据过程发生错误,则将出错的数据发送到出错数据消息队列;
步骤13:由出错数据持久化单元启动一个持久化线程,循环检测出错数据消息队列,当队列中有出错的数据时,将出错数据按照引起错误原因,即抽取数据错误、发送数据错误和同步数据错误进行保存。
优选的,上述方法中,步骤10中,所述通过规则实时抽取源表数据具体为:
通过结构化查询语言(SQL,Structured Query Language)批处理查询语句实时抽取源表数据。
优选的,上述方法中,步骤11中,所述将需要发送的数据发送到待同步消息队列具体为:
将需要发送的数据通过HTTP协议或传输控制协议(TCP,Transmission Control Protocol)发送到待同步消息队列。
优选的,上述方法中,步骤12中,所述解析需要同步的数据并同步目的表数据具体为:
通过SQL批处理方式解析需要同步的数据并同步目的表数据。
优选的,上述方法中,所述同步目的表数据的具体操作包括:
插入、更新和删除数据。
优选的,上述方法中,步骤13中,所述将出错数据按照引起错误原因,即抽取数据错误、发送数据错误和同步数据错误进行保存后还包括:
按照预设数据同步方式对所述出错的数据进行数据同步。
通过以上技术方案可知,本发明通过将ETL数据抽取过程分为明显的三个阶段,即抽取、发送和同步,并且使用各自独立的线程并行执行数据的抽取、发送和同步,以及出错数据的处理,大幅提高了数据的吞吐量和抽取速率,以及硬件资源的利用率;还通过对数据的抽取、发送和同步过程中产生的出错数据的处理,提高了数据的容错性,降低了由于数据抽取过程中产生错误而导致整个ETL瘫痪的概率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于ETL的多线程数据处理方法的框架示意图。
具体实施方式
本发明实施例公开了一种基于ETL的多线程数据处理方法,包括:将ETL的数据抽取过程分为明显的三个阶段,即抽取、发送和同步,并且使用各自独立的线程并行执行以下四个步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东中创软件工程股份有限公司;山东中创软件商用中间件股份有限公司,未经山东中创软件工程股份有限公司;山东中创软件商用中间件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010241787.2/2.html,转载请声明来源钻瓜专利网。





