简介:元数据采集是元数据产品的核心部分。如何提高采集效率需要慎重考虑。既要保持稳定,又要跟上主流技术的发展趋势。元数据产品已经从最初的集中式WEB应用系统发展到现在流行的分布式、微服务的系统架构。原有的元数据采集效率已经不能满足应用的需求。内容:1.元数据采集原理2.分布式采集策略3.分布式采集策略应用1.元数据采集原理我们要采集元数据,首先要了解什么是元数据,元数据存在于什么地方,为什么要采集元数据?元数据的通俗解释是用来描述数据的数据。在实践中,除了业务逻辑直接读写的业务数据外,其他维持整个系统运行所需的所有信息/数据都可以称为元数据。比如数据库的Schema、Table、Column信息,任务的血缘关系,用户和脚本/任务的权限映射关系信息等等。以大数据平台为例,元数据贯穿于大数据平台上数据流动的全过程,主要包括数据源元数据、数据处理过程元数据、数据主题库元数据、服务层元数据、应用层元数据等。数据治理的关键是收集信息。显然,没有数据就没有办法分析,也就无法有效管理和完善平台的数据链路。因此,元数据管理平台的一个非常重要的功能就是信息的采集。至于收集的信息,要看业务的需要和我们要解决的目标问题。如何收集元数据?元数据采集是指在数据生命周期中获取元数据,组织元数据,然后将元数据写入数据库的过程。不同来源的元数据获取方法不尽相同。在采集方式上,采用直接数据库连接、接口、日志文件等技术手段,自动采集结构化数据的数据字典、非结构化数据的元数据信息、业务指标、代码、数据处理过程等元数据信息和手动。元数据采集完成后,组织成符合CWM模型的结构,存储在关系数据库中。2.分布式采集架构如今,人们对元数据管理工具采集的元数据的时效性越来越敏感。我们的元数据管理工具将管理来自许多来源的元数据,并配置许多收集任务以定期收集。如何高效完成采集任务影响元数据管理工具存储元数据的时效性。我们最初的采集任务策略是单个采集程序串行执行采集任务。这种策略收集效率低。为了提高采集效率,我们使用多个采集程序并发执行采集任务。常见的元数据管理工具架构是传统的集中式WEB应用架构,所有功能模块都集中在一个应用中。3、分布式采集架构的应用我们在证券公司做数据治理的时候,发现客户端的网络架构比较复杂。其网络架构大致分为三层:业务系统层、数据采集层、数据存储层。业务系统分布在业务系统层的不同区域。比如业务系统A在北京,业务系统B在上海,业务系统C在广州。如果我们要访问各个业务系统的数据库,只能通过数据采集层的代理IP访问。不同地域的业务系统代理的IP地址网段也不一样,数据采集层的网段不能连通。数据存储层可以直接与数据采集层的所有网段相连。我们目前的元数据架构分为两部分:应用程序和采集服务。应用程序和采集程序是一对一的关系。针对这种网络情况,我们需要调整元数据产品的架构。1.将元数据的应用程序和采集服务改为一对多的模式,所以我们需要一个采集服务管理模块,可以维护(增删改查)采集服务的信息(IP,端口),并且将收集目标数据源和收集程序服务进行映射,一个目标数据源可以配置主备收集服务。主采集服务出现故障后,可以通过备用采集服务继续采集工作。采集服务管理模块应考虑易操作性和适用性,如:查看采集服务的运行状态,设置默认采集服务等。2.元数据采集任务调整为并行执行。现在元数据收集步骤是获取元数据>进入临时表>与正式表比较,更新元数据ID,获取元数据的变化信息>将元数据和变化信息放入正式表。将采集任务调整为并行执行的难点主要在于如何取消临时表,因为元数据存储数据库中只有一份临时表,当前采集任务完成后才能执行下一个采集任务完成并清除临时表。临时表的作用是更新元数据ID,找出新增、修改和删除的元数据。在收集元数据时,会为每个元数据生成一个随机的UUID作为元数据ID,并与官方表进行比对,如果某个元数据之前已经存储在数据库中,则需要将元数据临时表中的ID更新为正式表中的ID。取消临时表的措施:1、我们选择使用元数据编码+元数据类型+元数据父路径三项MD5加密生成的字符串作为元数据的ID,这样元数据的ID也是固定的,没必要和官方表比较。2.使用元数据ID查询官表,可以知道新增和删除了哪些元数据。我们将元数据的所有属性值进行MD5加密后生成的字符串作为元数据的属性ID,这样通过比较元数据的属性ID就可以知道元数据是否被修改过。这样我们就可以取消临时表,在采集服务程序中将元数据与正式表数据进行比对,获取变化后的元数据,将元数据记录直接写入数据库中的正式表。元数据收集任务也可以并行执行。我们在数据采集层的各个网段部署采集服务,实现元数据的高并发采集。这种分布式采集策略的优点是:1.元数据采集速度快;2、可以并行执行采集任务;3.复杂网络环境下的自适应元数据采集。
