本课题的主要目标就是实现这样一个高效的数据交换工具,该工具能够实现在异构的数据库、文件系统之间高速、安全的数据交换,以应对海量数据,多数据源数据的数据交换压力。在Linux系统环境下,该工具可以对本地文件系统的文本文件和关系型数据库Mysql中的表文件进行提取分析,然后将数据导入到HDFS或HBase中。该工具也可以将HDFS和HBase中的数据传回关系型数据库Mysql或本地文件系统中,继而实现传统文件系统、Mysql、HDFS和HBase之间的高效数据交换。并且该工具应该具有良好的可扩展性,当以后我们因为业务需要,想要增加特定的数据库或文件系统作为数据交换的数据源时,只需在该工具的基础上进行简单的再次开发即可实现,而不必再去开发一套新的特定数据源数据交换系统。
1。3 国内外研究现状
1。4 论文结构
第1章,绪论。该章先介绍了课题的背景,接着又介绍了课题研究内容、意义和国内外的研究现状,最后论述了论文的结构。
第2章,相关概念与技术。该章介绍了ETL的概念,以及该系统使用的BlockingQueue、双缓冲区和线程池三个核心技术。
第3章,系统需求和设计。该章介绍了系统的整体功能需求,实现的具体功能,系统的架构设计和总体设计。
第4章,系统实现。该章介绍了系统的总体实现,数据交换模块的实现和插件的编写。
第5章,系统集成和测试。该章介绍了测试的软硬件环境,程序的运行方式,并对Mysql-Linux文件系统、Mysql-HDFS和Linux文件系统-HDFS间的数据交换进行了测试。
1。5 本章小结文献综述
本章首先介绍了大数据的研究背景,然后论述了大数据平台高效数据交换工具的研究内容和意义,最后指出了的国内外研究现状并论述了论文的结构。
2 相关概念与技术
2。1 ETL概念
ETL起源于数据仓库,代表着提取-转换-装载三个含义[8]。目前,ETL覆盖了将数据从源系统加载到数据仓库的整个过程。ETL主要包括提取、转换、加载三个过程,各个过程所实现的功能如下所示:
提取:从源系统中提取数据进行进一步处理,它的主要目标是以尽可能少的资源从原系统中提取所有所需要的数据。提取步骤的设计应该尽可能的不影响原系统的性能和响应时间,并且应该尽可能地避免给源系统添加任何类型的锁。
转换:按照某种特定的规则变换从源到目标的数据,这包括将任何测量数据转换成相同的尺寸(即符合维度),使用相同的单位。转换步骤还需要加入来自多个数据源的数据,生成聚合,生成代理键,排序,推导计算新值,并应用先进的验证规则。
装载:保证数据被正确地装载到数据仓库中,并用尽可能少的资源去执行。装载过程的目标通常是一个数据库。为了使装载过程更高效,通常在装载之前禁用任何约束和索引,直到加载完成之后。
ETL的流程如图2。1所示。ETL工具从数据库、文件、或者其他的数据源中把数据抽取出来,这些临时的数据经过抽取、转换、装载三个过程,然后存储到目的数据中。
图2。1 ETL流程
ETL的目标是实现以最小的代价把日常业务中最常操作的数据抽取出来,经过数据清洗和转换,然后存入到数据仓库中[9]。该课题实际上就是实现了一个ETL工具,以实现异构大数据的交换功能。该工具可以从源数据中提取出数据,并且在提取数据的过程中可以实现字符编码转化,特殊字符替换等功能。然后把提取的数据传入到内存中,供写进程读取。最后再把数据写入到目标数据源中,并且在写数据的过程中可以实现字符编码转化,特殊字符替换等功能。