服务能力|数据服务基础能力之元数据管理( 二 )


  • 围绕核心业务:通常在项目初期的时候 , 只围绕一些核心业务主体 , 使其在使用的时候灵活高效 , 后续在持续扩展其他能力 。
  • 数据成本分析:基于元数据中链路 , 分析各个节点数据的生产维护管理等成本 , 为数据服务中商业定价提供参考 , 可能直接影响服务是否可提供的决策 。
  • 配置可视化:在数据服务平台中 , 最忌讳的一点就是靠手动去维护各种作业 , 不管在什么场景下 , 都要考虑可配置化管理 , 保证动作可追溯 。
  • 流程自动化:不管是元数据结构映射 , 还是配置后数据的抽取 , 要保证指令生成后可以自动完成该一系列动作 , 并完成流程监控分析 。
  • 资产化分析:通常会把元数据视为数据资产体系 , 因此围绕元数据去统计数据的使用情况 , 产生的价值 , 以及热点数据识别和分布 , 业务主体关联度等 , 并输出相应分析结果 。
如果单从业务角度去看 , 元数据系统的存在 , 就是为了可以快速理解元数据 , 并且灵活的组织管理 , 以此降低服务能力的实现成本 。
三、架构设计1、系统分层
  • 采集层:元数据系统中的基础节点 , 架构体系的底层 , 维护元数据获取通道和映射管理以及落地存储 , 并实现结构管理和数据处理过程;在数据源中可能存在多种情况:数仓环境、文件结构等 , 在特定情况中 , 还需要一定程度的手动维护进行结构拓补;
  • 管理层:对于元数据核心能力打造 , 和相应的标准化管理 , 或者二次加工 , 数据源层面直接采集的数据通常不具备标准的业务语义 , 更多偏向技术侧的说明和逻辑 , 在经过标准化维护之后 , 在放开给应用层之前 , 还需要经过质量检测:例如工作城市 , 如果缺乏相应的枚举字典 , 显然是不合格的 , 必须经过必要的处理才能放开;即管理层放开的数据需要标准化和整体维度完善;
  • 应用层:基于元数据能力的应用层开发 , 对于实际业务场景提供解决方案和功能入口 , 以及相应的系统中用户权限隔离等基本功能;
从系统分层的角度理解流程并不复杂 , 但是实际的实现过程简直不堪回首 , 技术栈使用非常复杂 , 多个版本逻辑重构再重构 , 并且不断的改进优化 , 最终才能实现相对稳定的服务能力 。
2、元数据采集在采集数据的时候 , 面对的最大问题就是多种类数据源解析适配 , 以及数据调度任务的抽象 , 必须开发对应的工具来实现各种场景的元数据解析能力:
  • 解析能力:适配解析各种数据源特点 , 文件格式 , SQL脚本 , 抽象任务等 , 完成标准元数据的转换沉淀;
  • 类型识别:十分复杂的一个节点 , 类型在描述数据的时候至关重要 , 结构化存储可以直接读取 , 文件类结构通常需要类型转换标识 , 任务流程会直接统一管理 , 依次保证数据在不同环境中的合理存储;
  • 更新消息:业务的发展中 , 各种数据结构是频繁变动的 , 这就需要与元数据系统进行同步 , 通常要向消息服务(总线)发送通知 , 然后触发元数据更新动作;
核心能力:结构与类型识别解析、获取初始化数据 , 并且通过消息通知线路 , 完成动态更新流程的触发 。
3、元数据管理核心能力的打造 , 通常在系统初期都是围绕基本能力和业务需求的方向 , 以求快速落地实现 , 提供业务支撑能力;
  • 基础能力:标准化元数据结构 , 进行结构存储和可搜索能力实现 , 这个节点进行统一维护 , 数据类型识别和转换是至关重要的;补充说一句 , 在数据平台中 , 都会存在类型服务系统 , 以提供相应的识别能力和规范不同场景下的转换;
  • 实体与关系:数据业务中两个核心概念 , 实体必然由属性构成这是常说的 , 实体之间维护的关系:关联、、绑定、输出、输入等 , 是构建血缘关系和数据链路的核心标识;