最近又遇到一个数据相关的咨询项目,为一家企业整理数据服务目录,今天就来讨论下企业数据目录架构和它的部署方式。
企业数据目录(EDC)旨在帮助企业与IT人员通过统一的元数据视图(包括技术元数据、业务元数据、用户释义、关联关系、数据质量和用途)来释放企业数据资产的最大能量。
我们从下至上来看下EDC的一个架构,最下面是存储层,在这一层,EDC包含了传统的结构化数据库用来存储EDC的管理员数据、可视化配置数据、数据域的规则,runtime统计数据等等,其中一部分结构化数据来自于各接入应用的元数据,称为模型库服务(Model Repository Service,MRS)使所有接入的应用可以在一个关系型数据库中进行协同;另一部分结构化数据称为数据剖析仓库(Profiling Warehouse,PWH),用来存储数据剖析信息,例如剖析结果和计分卡结果。在存储层EDC也可以接入各种非结构化数据,例如Hadoop分布式存储系统以及其上的HBASE等开源产品。
往上一层,对于接入的结构化数据的数据源,有剖析引擎(Data Profiling Engine)对数据集的唯一性,特征值频率以及数据集所属的数据域进行分析;在另一边Hadoop社区有自己的分布式引擎系统,例如用来快速将各类元数据加载到HBase的Spark组件,以及支持多条件搜索并建立实时索引的Solr组件。
所有的数据处理都是为了能提供数据服务,最通用的不外乎搜索,包括数据间关系、血缘的搜索,数据域的搜索。还有就是生成报表作业的管理计划。除了直接对外提供服务外,这一层还有一些插件对数据进行进一步加工,例如对跨数据集的数据相似性进行比较的分析器,对数据集进行到数据域的归集,以及将非结构化元数据导入到HBase的摄入服务。最终服务层有统一的对外API接口将数据域转化成数据目录作为EDC的主体。
EDC支持的分布式Hadoop产品包括Cloudera,Hortonworks以及Azure HDInsight,在Hadoop上,EDC可以部署自己的HBase,Solr以及Spark实例作为Yarn应用。不过市面上的一些EDC产品,例如Informatica有自带的Hadoop集群,和自身的HBase,Solr和Spark可以打包部署。
EDC的数据源通常来自各业务系统、BI系统、数据库、数仓和数据集成总线,经过存储层的元数据提取及数据剖析在EDC集群内建立元数据集群、创建元数据处理框架(内容包括MRS,监控模型库服务,集群服务,目录服务以及内容管理服务)以及数据域建制(Profiling)即数据集成服务。
上图是EDC服务的架构图。Profiling服务器需要连接PWH和通过内容管理服务关联的参考数据库(REF)。架构服务器(Infrastructure Server)需要连接MRS数据库,其上的EDC服务通过到Spark、HBase和Solr的连接器对接企业的非结构化数据;通过MRS关联数据集成服务深入数据湖对接企业的结构化数据。MRS对外提供开发接口可对数据集成方式及作业管理进行客制化,同时通过分析服务对外输出业务术语表(Business Glossary)。而EDC的对外接口可以给管理员提供对数据域的定义,也可以开放给用户对业务场景进行客制化。
由于EDC牵涉到全域的数据,对于安全管控也是不可忽视的一环,在EDC中往往会通过Kerberos,即三方验证的方法对访问进行权限控制。
上面这张图比较复杂,简单的说即时用户访问凭证通过一个第三方机构来保管,以保证验证的独立性。
以Informatica为例,以上是EDC的仪表盘,点击各个图标可以查看具体的源数据和历史数据。并且通过对大数据的AI分析,可以对未来趋势做出预判。