可视化数据采集方法与流程

文档序号:11323225阅读:832来源:国知局
可视化数据采集方法与流程

本发明属于数据采集领域,具体涉及一种可视化数据采集方法。



背景技术:

在大数据爆发的时代,经常需要进行大量的数据迁移和数据交换等操作,其中包含了数据的导入和数据的导出、以及后期的数据处理和加工操作。

传统的数据采集的方式,主要是利用数据库层面的存储过程或者通过编制程序对数据进行采集。采集的方式比较繁琐,而且需要技术人员精通相关编程语言或者数据库sql。由于数据除了存放在关系型数据库中,也有将数据存放在文件中,对不同类型的数据源,采集的方式也存在多变性。采集后的数据,需要统一归并和管理。

由于源数据在不停的变化,需要实时或者定时地更新数据。通常的数据采集方式是支持一次全量的导入,但这种方式无法实时追踪数据的变化,而且采集到的数据比较分散,后期的查询效率会大大下降。

以往的数据采集需要一定的编程基础,对一般用户上手比较困难。而且数据存在多样性,不仅是关系型数据库中的数据,也有文本文件中的数据,对于不同类型的数据,需要进行不同的适配。无法做到统一的入口,并且对数据采集的进度和过程难以监控,并无法对数据采集周期的进行设定。大部分只能手动的进行一次采集,而不能对数据进行全量和增量的更新。当采集需求变化时,伴随的是需要大量的程序的修改,这种修改就会无形的增加大量的人力成本,并导致降低代码的可维护性。对于采集到的数据,也不能进行统一的管理和提供查询接口。



技术实现要素:

发明目的:针对现有技术中存在的问题,本发明公开了一种可视化数据采集方法,该方法通过图形界面配置不同的数据源和更新方式,实现数据的导入及后期的查询。

技术方案:一种可视化数据采集方法,包括如下步骤:

(1)注册数据库,保存相应的url信息、用户名、密码,并测试连接,确保所述数据库连接的连通性;

(2)在图形界面上配置数据源,对不同的数据源进行分类;对于文件的采集,配置所述文件的目录路径;

(3)在图形界面上对不同厂商的采集器进行适配,指定需要采集的字段、设置分区、设置更新方式;

(4)用采集器对数据进行采集和导入;

(5)配置代码项,建立事实表与维表的关联规则及关系;

(6)保存数据表。

作为一种优选,步骤(4)中采集到的数据导入到hdfs中。

优选地,数据导入时,根据hdfs集群的规模环境,对需要导入的数据进行切分,生成多个map任务,实现快速导入。

yarn是一种hadoop资源管理器,在yarn的任务列表中实时获取每个map任务信息及进度信息,根据进度信息估计所述map任务结束的时间;所述进度信息和任务结束时间显示在图形界面上,实现了数据导入的可视化监控。

如果出现数据导入任务失败,可以手动执行失败任务,也可以采用自动执行的方式:在步骤(3)设置更新任务轮询周期,如果出现数据导入任务失败,在下一次更新任务轮询时自动执行失败任务。

为了实时追踪数据源的变化,步骤(3)中的更新方式包括定期全量更新和定期增量更新。

采集后的数据表可以保存在hive中或elasticsearch中,以提供快速的查询。

具体地,当选择数据表保存于elasticsearch中时,还包括如下步骤:

(a)创建全文表,使存放在hive中的数据表和elasticsearch中的索引进行映射;

(b)将hive中的表数据迁移到elasticsearch中。

有益效果:与现有技术相比,本发明公开的可视化数据采集方法具有以下优点:1、通过图形界面方式配置数据源、适配和连接采集器,便于用户操作;2、根据集群资源的情况,对数据切分实现快速导入,周期地对数据进行更新;3、实现了事实表和维表的关联操作,并以代码项匹配的方式,形成宽表,最终以elasticsearch的方式对外提供查询接口,极大地提升了查询速度。

附图说明

图1为本发明公开的可视化数据采集方法的流程图;

图2为注册数据库界面示意图;

图3为输入数据库信息界面示意图;

图4为采集文件数据时设置示意图;

图5为分区设置和更新方式设置界面示意图;

图6为为配置代码项的流程图;

图7为创建全文表流程图;

图8为将hive中的表数据迁移到elasticsearch中的流程图。

具体实施方式

下面结合附图和具体实施方式,进一步阐明本发明。

如图1所示,为本发明公开的可视化数据采集方法的流程图,包括如下步骤:

步骤1、注册数据库,可以注册不同的类型的数据,比如oracle,mysql,sqlserver等相关数据库。后台保存相应的url信息,以及用户名、密码等相关信息,并对每一个连接都进行了验证,确保用户名和密码的正确性,以及数据库连接的连通性;

如图2所示,在图形界面上注册ip地址为10.10.10.60,端口为3309,名称为mysql的数据库;如图3所示,在图形界面上选择需要连接的数据库的信息,该信息为图2所注册的信息。

步骤2、在图形界面上配置数据源,对不同的数据源进行分类;

数据源分为多种,一种是结构化的数据,主要是针对不同类型的关系型数据库,例如mysql,oracle,sqlserver等数据库;一种是非结构化数据,如文本文件、office文件等;对于文件的采集,需要配置该文件的目录路径;

步骤3、在图形界面上对不同厂商的采集器进行适配;

在数据采集过程中,由于采集的厂商存在着多样性,并且不同的厂商的连接方式、语法也不相同,需要对不同厂商的采集器进行适配,以保证正确采集和导入数据。采集器的适配是通过人工进行选择和判断,并通过图形界面选择不同的采集方式,其中包含了对文本数据的采集,或对不同厂商的关系型数据库的采集。

通过图形化界面输入用户名、密码及连接地址,以及采集数据库的类型。同时需要设置更新方式、分区方式,配置数据表存放的位置,指定需要采集的字段。

对于文件的采集,需要设置ftp目录以及更新方式。采集时将直接读取远端的ftp目录文件的内容,并记录每个文件中已经读取到的行数,便于进行增量更新文件内容,图形界面示意如图4所示。

如图5所示,通过图形界面进行分区设置和更新方式设置。分区可以使用类别字段,如性别或区域字段,进行分区,也可以以时间字段进行分区。例如设定以区域进行分区,区域中包含了南京,上海,北京等信息,那么会将南京的数据信息放置南京分区,而上海的数据信息放置上海分区;查询时,以分区进行查询,提高查询效率。

以时间字段进行分区,首先对时间字段进行处理,其中包含了对不同的时间格式进行规整的操作,对时间格式进行统一。本实施例默认以天进行调整,比如对20130118104043或者2005/10/3116:30:13等相关格式,全部统一成年-月-日的格式,即为“2005-10-31”,后台利用正则表达式进行匹配和切分,生成合适的时间格式,并以该整合的格式时间字段建立分区,动态的将数据存放到不同的分区中,便于后期的数据分类和查询。

更新方式,是对基础表的更新周期设置,包括定期全量更新和定期增量更新。全量更新是在更新时对数据以全量的方式覆盖,在后台以--delete-target-dir的方式,每次导入的时候,都会将上次所导入的数据删除;增量更新的方式,首先会对数据进行一次全量导入,然后,对数据进行增量更新的设置,并设置更新所依赖的字段,最后设置当前所依赖字段的最新的值。该更新字段可以是自增整数,即基于自增主键进行增量采集;或是时间类型的字段,即按时间递增进行增量采集。

当设置文件增量更新的时候,系统会默认记录每次文件中所读取到的最新行以及当前的文件名称,当有新的文件产生或者是原文件被追加内容的时候,那么当新的采集周期到来的时候,便会采集最新内容。

步骤4、用采集器对数据进行采集和导入;

为了方便后期的数据查询需求。对于按照时间格式进行导入的字段,将属于同一时间周期的数据导入到以该时间为周期的分区中,后期进行查询的时候,可以指定对该分区进行查询,提高查询效率。

hadoop平台的分布式文件系统(hdfs)是一个高度容错性的系统,适合部署在廉价的机器上,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用,本实施例对采集到的数据导入到hdfs中。数据导入时,根据hdfs集群的规模环境,对需要导入的数据进行切分,生成多个map任务,实现快速导入。首先根据集群的数量对数据进行切分。比如当前集群有10台机器,将数据切分成为10份,在后台提交任务的时候,就会生成10个map任务,相当于10个map任务进行了并行的执行操作,这样会显著的提高导入速度。

不同的导入方式,在后台实际上是不同的命令的集合,而后台对不同的更新命令,都以job(作业)的方式对命令进行封装操作,并定时去调用这些job。在每次周期执行这些job的时候,会将job的相关源数据信息保存到metastore中。当新的周期任务到来时,会基于上次的metastore中所保存的信息,继续执行。

yarn是一种hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。在yarn的任务列表中实时获取每个map任务信息及进度信息,根据进度信息估计所述map任务结束的时间;所述进度信息和任务结束时间显示在图形界面上,可以实时看到数据的变化情况,以及当前任务的进度情况,实现了数据导入的可视化监控。

导入过程中如果出现了导入任务失败,可以手动的执行失败任务,或者采用自动执行的方式。首先设置更新任务轮询周期,系统以此周期对更新任务进行轮询,如果出现数据导入任务失败,在下一次更新任务轮询时自动执行失败任务。

步骤5、配置代码项,建立事实表与维表的关联关系。

在数据导入完成之后,可以图形化的配置代码项,从而实现对数据维表的配置,该步骤配置了事实表和维表的关联关系,为窄表转化成宽表提供了数据规则和关联关系。

如图6所示,为配置代码项的流程图,包括:填写代码项名称和及归属系统,创建该代码项的键值范围及取值,后台以mysql保存代码项信息,创建完成代码项之后,在数据表中的列可以映射该代码项,那么该表中的数据就被自动的映射为对应代码项的值,这样就实现了事实表和维表的关联操作,将窄表变成了宽表,并创建完成基础表。

步骤6、保存数据表

数据表可以保存到基于hdfs的hive中或者是elasticsearch中,两者都可以对外暴露查询接口。数据表的保存方式可以在步骤3中设置。

当选择数据表保存于elasticsearch中时,还包括如下步骤:

(a)创建全文表,使存放在hive中的数据表及字段和elasticsearch中的数据表的索引及field进行映射;

如图7所示,首先创建全文库的目录,然后创建属于该全文库目录的全文表。选择之前采集的表信息,选择特定的表进行创建索引,默认该表已经完成了代码项和标签的设置,该全文表属于某个特定的全文库目录,针对全文表创建索引字段,排序字段和显示字段,其中索引字段用于后期进行搜索的字段;显示字段为查询后显示的字段;排序字段是针对查询得到的结果集,可以选择特定的字段进行排序操作。

创建全文表是对数据进行规范化映射的首要步骤,使之存放的hive表和elasticsearch中的索引进行映射,便于后期将数据存放到elasticsearch中。

(b)将hive中的表数据迁移到elasticsearch中;

如图8所示,完成创建全文表后,将hive中的表数据迁移到elasticsearch中,其中会读取mysql中代码项的配置,将代码项和事实表中的字段进行关联和映射,从而完成事实表和维表的关联操作。利用elasticsearch对外的暴露的rest查询接口,可以针对特定的字段进行查询,也可以选择基于某个字段进行排序。

hive中存放的是事实数据,通过相关代码项及维表的配置之后,事实表和维表进行了关联,将窄表变成了宽表,最终以宽表的数据导入elasticsearch中,对外提供服务。将数据导入到了elasticsearch,查询速度有了很大的提升。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1