文档章节

分布式及高可用元数据采集原理

EAWorld
 EAWorld
发布于 10/17 16:14
字数 2066
阅读 514
收藏 14

转载本文需注明出处:微信公众号EAWorld,违者必究。


引言:

元数据采集是元数据产品的核心部分,如何提升采集效率是需要仔细斟酌的事情,既要保持稳定性也要保持跟上主流技术的发展趋势。元数据产品从最初集中式WEB应用系统到现在流行的分布式、微服务这种系统架构,原有元数据采集效率已不能满足应用的需求了。

目录:

1.元数据采集原理
2.分布式采集策略
3.分布式采集策略的应用

1.元数据采集原理

我们要想采集元数据首先得明白,什么是元数据,元数据都存在哪里,为什么采集元数据?

元数据MetaData通俗的解释是用来描述数据的数据,实际来看,除了业务逻辑直接读写处理的那些业务数据,所有其它用来维持整个系统运转所需的信息/数据都可以叫作元数据。比如数据库的Schema、Table、Column信息,任务的血缘关系,用户和脚本/任务的权限映射关系信息等等。

以大数据平台为例,元数据贯穿大数据平台数据流动的全过程,主要包括数据源元数据、数据加工处理过程元数据、数据主题库专题库元数据、服务层元数据、应用层元数据等。

数据治理关键就是收集信息,很明显,没有数据就无从分析,也就无法有效的对平台的数据链路进行管理和改进。所以元数据管理平台很重要的一个功能就是信息的收集,至于收集哪些信息,取决于业务的需求和我们需要解决的目标问题。

如何采集元数据?

元数据采集是指获取数据生命周期中的元数据,对元数据进行组织,然后将元数据写入数据库中的过程。



不同来源的元数据获取获取方式也不大相同,在采集方式上有使用包括数据库直连、接口、日志文件等技术手段,对结构化数据的数据字典、非结构化数据的元数据信息、业务指标、代码、数据加工过程等元数据信息进行自动化和手动采集,元数据采集完成后,被组织成符合CWM模型的结构,存储在关系型数据库中。



2.分布式采集架构

现在人们对元数据管理工具采集的元数据时效性越来越高,我们元数据管理工具会管理很多来源的元数据,配置很多采集任务定时去采集,如何高效的完成采集任务,影响着元数据管理工具存储的元数据时效性。我们原先采集任务策略是单一采集程序串行执行采集任务,这样的策略采集效率是很低的,为了提高采集效率,我们就采用多个采集程序并发执行采集任务。

常见的元数据管理工具架构是传统的集中式WEB应用架构,所有的功能模块都集中在一个应用程序中。



3.分布式采集架构的应用

我们在某一证券公司做数据治理时,发现该客户的网络架构比较复杂,它的网络架构大概分为三层业务系统层、数据采集层和数据存储层。

业务系统分布业务系统层的不同地域,比如A业务系统在北京,B业务系统在上海,C业务系统在广州等。我们要想访问个各个业务系统的数据库只能通过数据采集层的代理IP去访问,不同地域的业务系统代理的IP地址网段也是不同的,数据采集层各个网段之间不能连通,数据存储层是可以和数据采集层的所有网段直接连通的。



我们现在元数据的架构是分为应用程序和采集服务两部分,应用程序和采集程序是一对一的关系,针对这种网络情况,我们要对元数据产品的架构做调整。



一、将元数据的应用程序与采集服务改为一对多模式,这样我们得需要一个采集服务管理模块,可以对采集服务的信息(IP,端口)进行维护(增删改),采集的目标数据源与采集程序服务进行映射,一个目标数据源可以配置主备采集服务,主采集服务发生故障后,可以通过备采集服务继续采集工作。

采集服务管理模块要考虑易操作性和适用性,如:查看采集服务运行情况、设置默认采集服务等等。

二、元数据采集任务调整为并行执行,现在采集元数据步骤为获取元数据>入临时表>与正式表比对,更新元数据ID,得到元数据的变更信息>将元数据和变更信息入正式表。

采集任务调整为并行执行的主要的难点是如何取消临时表,因为临时表在元数据存储数据库中只有一份,只有等待当前采集任务执行完毕,清空临时表后,才能执行下一次采集任务。

临时表的作用是:

更新元数据ID和找出新增、修改和删除的元数据,采集元数据时,都会给每一个元数据生成随机的UUID当作元数据ID,与正式表作比对时,如果某一元数据之前已经入库,需要将该元数据的临时表里的ID更新成正式表里的ID。

取消临时表的举措:

1、我们选择将元数据编码+元数据类型+元数据父级路径这三项数据进行MD5加密生成的字符串作为元数据的ID,这样元数据的ID也就固定了,不需要和正式表里做比对了。

2、通过元数据ID去正式表里查询就可得出哪些元数据是新增和删除的。

我们将元数据的所有属性值进行MD5加密生成的字符串作为元数据的属性ID,这样通 过比对元数据的属性ID就可得知该元数据是否修改了。

这样我们就可以取消临时表,在采集服务程序中就可以将元数据和正式表数据作比对,得到变化的元数据,将元数据记录直接写入到数据库中的正式表,元数据采集任务也就可以并行执行了。



我们在数据采集层各个网段都部署采集服务,这样就实现了高并发元数据采集,这种分布式采集策略优点是:

1、采集元数据效率快
2、可以并行执行采集任务
3、可以适应复杂网络环境的元数据采集。


关于作者:追风,普元高级软件工程师,参与普元Metacube7GA设计及研发;有银行、证券等行业数据治理实施的经验。互联网技术爱好者,热衷于研究各种优秀的开源代码,致力于成为一名有腔调的工程师。


关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。长按二维码关注!

© 著作权归作者所有

EAWorld
粉丝 39
博文 63
码字总数 203079
作品 0
浦东
私信 提问
Yum简单安装MFS分布式文件系统

什么是MFS? MooseFS是一个容错,高可用,高性能,扩展,网络分布式文件系统。它将数据分布在多个物理商品服务器上,这些服务器对用户可视为一个虚拟磁盘。它符合POSIX并且像任何其他类Unix文...

cchenyz
2018/07/26
0
0
日志易—大数据日志分析行业的新星(第一节)

第一章日志易的优势 日志易是一款运维日志和业务日志搜索分析引擎,通过方便灵活的日志搜索分析,帮助用户及时发现问题。 日志易提供在大中型企业内数据中心部署的企业版,也通过公有云提供 ...

逆袭之IT
2017/08/18
0
0
什么是Flume?Flume安装部署及运行机制!

Flume Flume介绍 概述 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统 Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、h...

A__loser的博客
2017/12/21
0
0
HDFS的运行原理,如何实现HDFS的高可用

1 HDFS的运行机制 HDFS集群中的节点分为两种角色,一种角色负责管理整个集群的元数据,是名称节点(name node);另一种角色负责存储文件数据块和管理文件数据块,是数据节点(datanode)。 1....

qq_31598113
2017/04/05
0
0
分布式存储---moosefs部署

第1章 介绍 写在前面,自己的理解。 对比nfs文件共享系统,其目的都是一样的。nfs的运行过程是客户端先向服务端的rpc服务请求nfs的端口号,然后客户端再根据端口号找到对应的nfs服务,进行读...

李佳豪丶
2017/10/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端的一些雕虫小技,从100%和滚动条说起

1、100%和滚动条 当我们在css中把html和body同时设为100%时,会出现滚动条 html, body { width: 100%; height: 100%; } 原因是html和b...

wphmoon
30分钟前
6
0
电力区块链应用案例【2019】

随着区块链技术的日益普及,出现了大量创业企业尝试使用区块链技术来解决能源与电力行业中存在的问题。在本文中,我们将介绍其中的三个能源区块链项目。 能源行业以价格不透明著称:消费者很...

汇智网教程
52分钟前
7
0
聊聊rocketmq的adjustThreadPoolNumsThreshold

序 本文主要研究一下rocketmq的adjustThreadPoolNumsThreshold DefaultMQPushConsumer rocketmq-client-4.5.2-sources.jar!/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.ja......

go4it
今天
9
0
关于早起

早起是非常好的事情,但是像如果前一天睡得晚,或者第二天早上是非常冷的时候,那就不是很美好了。 但是本身早起是一件非常棒的事情,我记得我每次早起 如果不觉得困的话,世界是那么安静,脑...

T型人才追梦者
今天
7
0
Java输入输出

JDK中的InputStream/OutputStream构成了IO输入输出继承层次的基础。它们都是面向字节序列的,每次可以从序列中读入或者写出一个字节或者指定大小的字节数组。但是面向字节流的输入输出不便于...

ytuan996
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部