一种基于Flume的可配置数据集成方法技术

技术编号:24035551 阅读:28 留言:0更新日期:2020-05-07 01:48
一种基于Flume的可配置数据集成方法,包括以下步骤:第一步,数据采集Agent实现,如下:1.1)公共信息提取;1.2)采集Agent执行过程;第二步,数据清洗Agent实现,如下:2.1)公共信息提取;2.2)清洗Agent执行过程;第三步,数据补充Agent实现,如下:3.1)公共信息提取;3.2)补充Agent执行过程;第四步,数据标准化Agent实现,如下:4.1)数据标准化策略;4.2)标准化Agent执行过程;第五步,数据输出Agent实现,如下:5.1)公共信息提取;5.2)输出Agent执行过程。进一步通过提取公共信息的方式,改写了source或者sink的具体功能,使source或者sink成为一个可重复利用的单元,结合配置文件将这些单元组装到Agent中,使Agent完成具体的功能,从而实现了可配置化的需求。本发明专利技术对图书馆的异构数据进行高校内的快速集成,搭建高校各自的数据集成中心。

A flume based configurable data integration method

【技术实现步骤摘要】
一种基于Flume的可配置数据集成方法
本专利技术涉及数据采集、清洗、补充,是一种基于Flume的异构数据标准化的可配置集成方法。
技术介绍
随着科学技术的蓬勃发展与信息的多元化,高校学生对文献等资源的需求也开始变得更为广泛,这对高校图书馆提出了更高的要求,但是面对高校学生多变的需求,单纯地提高图书馆的馆藏能力显得杯水车薪。在这样的矛盾下,“图书馆联盟”的理念应运而生。其基于互惠共赢的目的,希望通过合作、共享的方式,增强高校图书馆之间的交流,使得高校图书馆之间可以通过共享模式去满足高校学生的资源需求。但是在整体上,我国的“图书馆联盟”建设工作依然停留在初级阶段,高校图书馆之间往往存在自治现象严重,图书馆间的交流了解不足等问题。对此有学者提出对于图书馆资源共享工作建立统一的资源管理系统,但是这种实现方式往往需要改变原来各高校图书馆的自治现状,通过多方协作的方式对各高校图书馆内多种资源进行重新整合,其所带来的消耗与影响往往十分巨大。基于上述问题,众多学者提出在不改变图书馆原有系统的基础上,通过共享信息数据增进图书馆间的了解,由高校自行决定共享工作,增强资源共享的灵活性。但是由于缺乏有效的规划,高校图书馆各自围绕着自身业务建立了多种数据管理系统,对于如何建立一个信息共享平台,增进图书馆间的交互依然存在着以下问题急需解决:高校图书馆间的数据异构。由于高校图书馆管理系统往往由不同企业自主开发实现,因此不同管理系统间相似度极小,数据在存储方式、组织结构、内容定义等方面均存在较大差异,而统一的数据标准是图书馆间进行信息交互的基础,因此如何在不改变图书馆现状的情况下,对高校内的数据进行集成处理是共享平台构建需要解决的问题。
技术实现思路
为了克服现有技术的不足,本专利技术在定义统一的集成数据标准上,通过自定义实现基于Flume的数据集成工具包,提出一种可配置的数据集成方法,对图书馆的异构数据进行高校内的快速集成,搭建高校各自的数据集成中心。为了解决上述技术问题,本专利技术提供如下的技术方案:一种基于Flume的可配置数据集成方法,包括以下步骤:第一步,数据采集Agent实现,过程如下:1.1)公共信息提取数据采集工作需应对不同的数据表,在source中提取抽取操作的公共信息,提取内容包括数据库连接url、账户user、密码password、表名tablename、sql语句select、轮询周期delay、读取数量incremental.value、自增列column.name和状态文件status.file,通过改写的source,使数据的抽取操作可配置化;1.2)采集Agent执行过程①当Agent启动时,Agent中的source从启动配置文件中读取上文提取的公共信息,连接对应的数据库,并控制自身的数据表轮询操作;②source继续从状态文件status.file中读取上一次读取数据的位置,第一次读取则从0开始读取,当数据新增时,即数据的自增列值column.name大于状态文件中的值,source就会将数据读取并传输至channel;③当新增的数据发送至channel之后,sink会进行读出,由于采集层需要与其它层配合,因此对于sink使用avro端口进行实现,实现过程是在配置文件中将sink的type配置为avro,同时配置发送主机的hostname、port;这样sink就会根据配置信息将数据发送至指定的主机端口,sink发送成功后,状态文件的值就会改变,source即可开始下一次的数据抽取工作;第二步,数据清洗Agent实现,过程如下:2.1)公共信息提取当数据被采集层发送至清洗层后,需要对不符合要求的数据进行清洗,通过在sink中提取清洗操作的公共信息控制Agent的清洗行为,提取内容包括位置信息cleandateposition与清洗值cleandatevalue,通过改写sink,使得数据清洗功能可配置化;2.2)清洗Agent执行过程①在一层中,Agent将数据发送到了localhost的10000端口,因此,在清洗Agent的source实现中,可将type设置为avro,同时配置bind与port,source即可对上一层的发送数据进行监听读取;②source读取到数据并传输至channel后,sink会对数据进行读取,③sink读取后,需要进行真正意义的数据清洗工作,此部分由自定义的类CleanSink实现。它继承于AbstractSink,其中的configure方法,可以读取Agent的配置信息。这里使用自定义配置cleandateposition与cleandatevalue,它们指定了字段在数据中的位置与清洗标准值,当数据在位置cleandateposition上的值为cleandatevalue时,sink就会对数据进行剔除,接着,对于符合要求的数据继续进行端口的转发,配置内容与上一层相同;第三步,数据补充Agent实现,过程如下:3.1)公共信息提取在数据补充层通常使用外键等信息对数据中缺失的字段进行补充,通过在sink中提取补充操作的公共信息控制Agent的补充行为,提取内容包括补充位置信息supplyfrom、数据库连接信息supplyurl、supplyuser、supplypassword、supplytablename、外键信息supplyrelation和关联字段信息supplycolumn;3.2)补充Agent执行过程①与前文实现类似,补充Agent的source实现中,将type设置为avro,同时配置bind与port,即可对上一层的发送数据进行监听读取;②source读取到数据并传输至channel后,sink会对数据进行读取;③sink由自定义类SupplySink实现,其与CleanSink一致,通过继承AbstractSink自定义实现,其中的configure方法,可以读取Agent的配置信息;在配置内容中,使用字段supplyfrom指定数据中外键字段位置;接着使用字段supplyurl、supplyuser、supplypassword、supplytablename关联上数据补充的来源表;然后使用字段supplyrelation指定关联的对应信息;最后使用字段supplycolumn指定需要读出的读者信息,对于补充后的数据,继续进行端口发送;④通过上述配置,可实现一张表的数据关联及补充,接下来,对于多张表的关联补充,只需要将多个补充Agent通过端口转发的方式进行连接即可实现数据的完全补充;第四步,数据标准化Agent实现,过程如下:4.1)数据标准化策略得到需要的所有字段信息后,系统需要对有表达差异的数据进行标准化,使用的标准化策略与补全策略类似,具操作是通过人工的方式建立数据标准表,再提取Agent连接数据表的标准信息对数据项进行替换;以学院本文档来自技高网
...

【技术保护点】
1.一种基于Flume的可配置数据集成方法,所述方法包括以下步骤:/n第一步,数据采集Agent实现,过程如下:/n1.1)公共信息提取/n数据采集工作需应对不同的数据表,在source中提取抽取操作的公共信息,提取内容包括数据库连接url、账户user、密码password、表名tablename、sql语句select、轮询周期delay、读取数量incremental.value、自增列column.name和状态文件status.file,通过改写的source,使数据的抽取操作可配置化;/n1.2)采集Agent执行过程/n①当Agent启动时,Agent中的source从启动配置文件中读取上文提取的公共信息,连接对应的数据库,并控制自身的数据表轮询操作;/n②source继续从状态文件status.file中读取上一次读取数据的位置,第一次读取则从0开始读取,当数据新增时,即数据的自增列值column.name大于状态文件中的值,source就会将数据读取并传输至channel;/n③当新增的数据发送至channel之后,sink会进行读出,由于采集层需要与其它层配合,因此对于sink使用avro端口进行实现,实现过程是在配置文件中将sink的type配置为avro,同时配置发送主机的hostname、port;这样sink就会根据配置信息将数据发送至指定的主机端口,sink发送成功后,状态文件的值就会改变,source即可开始下一次的数据抽取工作;/n第二步,数据清洗Agent实现,过程如下:/n2.1)公共信息提取/n当数据被采集层发送至清洗层后,需要对不符合要求的数据进行清洗,通过在sink中提取清洗操作的公共信息控制Agent的清洗行为,提取内容包括位置信息cleandateposition与清洗值cleandatevalue,通过改写sink,使得数据清洗功能可配置化;/n2.2)清洗Agent执行过程/n①在一层中,Agent将数据发送到了localhost的10000端口,因此,在清洗Agent的source实现中,可将type设置为avro,同时配置bind与port,source即可对上一层的发送数据进行监听读取;/n②source读取到数据并传输至channel后,sink会对数据进行读取,/n③sink读取后,需要进行真正意义的数据清洗工作,此部分由自定义的类CleanSink实现,它继承于AbstractSink,其中的configure方法,可以读取Agent的配置信息,这里使用自定义配置cleandateposition与cleandatevalue,它们指定了字段在数据中的位置与清洗标准值,当数据在位置cleandateposition上的值为cleandatevalue时,sink就会对数据进行剔除,接着,对于符合要求的数据继续进行端口的转发,配置内容与上一层相同;/n第三步,数据补充Agent实现,过程如下:/n3.1)公共信息提取/n在数据补充层通常使用外键等信息对数据中缺失的字段进行补充,通过在sink中提取补充操作的公共信息控制Agent的补充行为,提取内容包括补充位置信息supplyfrom、数据库连接信息supplyurl、supplyuser、supplypassword、supplytablename、外键信息supplyrelation和关联字段信息supplycolumn;/n3.2)补充Agent执行过程/n①与前文实现类似,补充Agent的source实现中,将type设置为avro,同时配置bind与port,即可对上一层的发送数据进行监听读取;/n②source读取到数据并传输至channel后,sink会对数据进行读取;/n③sink由自定义类SupplySink实现,其与CleanSink一致,通过继承AbstractSink自定义实现,其中的configure方法,可以读取Agent的配置信息;在配置内容中,使用字段supplyfrom指定数据中外键字段位置;接着使用字段supplyurl、supplyuser、supplypassword、supplytablename关联上数据补充的来源表;然后使用字段supplyrelation指定关联的对应信息;最后使用字段supplycolumn指定需要读出的读者信息,对于补充后的数据,继续进行端口发送;/n④通过上述配置,可实现一张表的数据关联及补充,接下来,对于多张表的关联补充,只需要将多个补充Agent通过端口转发的方式进行连接即可实现数据的完全补充;/n第四步,数据标准化Agent实现,过程如下:/n4.1)数据标准化策略/n得到需要的所有字段信息后,系统需要对有表达差异的数据进行标准化,使用的标准...

【技术特征摘要】
1.一种基于Flume的可配置数据集成方法,所述方法包括以下步骤:
第一步,数据采集Agent实现,过程如下:
1.1)公共信息提取
数据采集工作需应对不同的数据表,在source中提取抽取操作的公共信息,提取内容包括数据库连接url、账户user、密码password、表名tablename、sql语句select、轮询周期delay、读取数量incremental.value、自增列column.name和状态文件status.file,通过改写的source,使数据的抽取操作可配置化;
1.2)采集Agent执行过程
①当Agent启动时,Agent中的source从启动配置文件中读取上文提取的公共信息,连接对应的数据库,并控制自身的数据表轮询操作;
②source继续从状态文件status.file中读取上一次读取数据的位置,第一次读取则从0开始读取,当数据新增时,即数据的自增列值column.name大于状态文件中的值,source就会将数据读取并传输至channel;
③当新增的数据发送至channel之后,sink会进行读出,由于采集层需要与其它层配合,因此对于sink使用avro端口进行实现,实现过程是在配置文件中将sink的type配置为avro,同时配置发送主机的hostname、port;这样sink就会根据配置信息将数据发送至指定的主机端口,sink发送成功后,状态文件的值就会改变,source即可开始下一次的数据抽取工作;
第二步,数据清洗Agent实现,过程如下:
2.1)公共信息提取
当数据被采集层发送至清洗层后,需要对不符合要求的数据进行清洗,通过在sink中提取清洗操作的公共信息控制Agent的清洗行为,提取内容包括位置信息cleandateposition与清洗值cleandatevalue,通过改写sink,使得数据清洗功能可配置化;
2.2)清洗Agent执行过程
①在一层中,Agent将数据发送到了localhost的10000端口,因此,在清洗Agent的source实现中,可将type设置为avro,同时配置bind与port,source即可对上一层的发送数据进行监听读取;
②source读取到数据并传输至channel后,sink会对数据进行读取,
③sink读取后,需要进行真正意义的数据清洗工作,此部分由自定义的类CleanSink实现,它继承于AbstractSink,其中的configure方法,可以读取Agent的配置信息,这里使用自定义配置cleandateposition与cleandatevalue,它们指定了字段在数据中的位置与清洗标准值,当数据在位置cleandateposition上的值为cleandatevalue时,sink就会对数据进行剔除,接着,对于符合要求的数据继续进行端口的转发,配置内容与上一层相同;
第三步,数据补充Agent实现,过程如下:
3.1)公共信息提取
在数据补充层通常使用外键等信息对数据中缺失的字段进行补充,通过在sink中提取补充操作的公共信息控制Agent的补充行为,提取内容包括补充位置信息supplyfrom、数据库连接信息supplyurl、supplyuser、supplypassword、supplytablename、外键信...

【专利技术属性】
技术研发人员:李伟鲍挺
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1