数据可观测性-架构设计

整体架构

Datavines [github] 是一个数据可观测性系统,旨在帮助企业减少“数据宕机时间”,帮助企业能够在数据错误导致损失之前及时发现数据错误,它具有数据目录管理、数据质量监控和SLAs等功能。下面是它的架构设计图:

DataVines架构图.png

DatavinesServer 服务采用无中心化设计,支持水平无限扩容。主要负责对外提供API、调度各种数据监控任务并执行。

组件详解

CatalogManager

主要功能

  • Api 服务
  • 数据源管理
    • 数据源的元数据管理
  • 数据质量管理
    • 数据质量检查作业调度和执行
    • 检查规则管理
    • 质量检查管理
  • SLAs 管理
  • 错误数据管理

高可用设计

  • DatavinesServer采用无中心化设计,支持动态增容扩展。集群中所有节点都能对外提供服务,节点之间通过竞争分布式锁获取Job来进行调度和执行

MetaDataServer

MetaDataServer是元数据管理中心,主要负责数据目录,元数据模型、元数据存储、查询等元数据相关的功能。

MetaDataCrawler

MetaDataCrawler 主要负责定时去抓取指定数据源的元数据信息,然后更新到元数据存储引擎中

NotificationServer

NotificationServer主要负责告警,用户在平台上配置告警规则,一旦数据监控任务触发告警,那么NotificationServer就会将报错信息发送到指定的平台上,例如邮箱,企业微信等

核心设计

插件化设计

Connector插件化设计

  • Connector模块中定义了包括不仅限于连接参数相关、元数据信息获取相关、数据源执行脚本相关等接口,用于实现连接数据源、获取元数据信息以及执行相应脚本等功能。
  • 插件化设计允许用户实现Connector模块的相应接口来实现添加自定义数据源

Metric插件化设计

  • Metric是平台中非常重要的组成部分,主要用在各种数据监控任务中,Metric的丰富性使得平台的监控和检查手段更加丰富。本平台会内置多种Metric让用户可以开箱即用,同时也支持用户实现Metric相关接口来新增用户个性化的Metric。

Engine插件化设计

  • Engine是平台核心组成部分,是定义数据监控任务在计算引擎中的执行逻辑,不同的Engine对应不同的执行引擎,例如Spark、Flink、Presto等。执行逻辑主要由Sources、Transformers和Sinks组成,由Source来执行数据源的连接和数据读取,由Transformer来执行各种聚合统计处理,由Sink来执行执行结果的输出。不同的计算引擎实现方式有所不同,但是核心的流程就是读取数据,执行统计和输出数据。插件化设计允许用户自定义Engine来增加新的计算引擎。

流程设计

任务执行流程

任务执行流程

数据监控参数生成流程

参数的构造和转换流程

未完待续。。。

加入我们

Datavines 的目标是成为更好的数据可观测性领域的开源项目,为更多的用户去解决元数据管理和数据质量管理中遇到的问题。在此我们真诚欢迎更多的贡献者参与到社区建设中来,和我们一起成长,携手共建更好的社区。

  • 项目地址: https://github.com/datavane/datavines
  • 问题和建议: https://github.com/datavane/datavines/issues
  • 贡献代码: https://github.com/datavane/datavines/pulls

关于Datavane

Datavane是一个专注于大数据领域的开源组织(社区),由一群大数据领域优秀的开源项目作者共同创建,旨在帮助开源项目作者更好的建设项目、为大众提供高质量的开源软件,宗旨是:只为做一个好软件。目前已经聚集了一批优质的开源项目,涉及到数据集成、大数据组件管理、数据质量等。

Datavane 社区中,所有的项目都是开源开放的,代码质量和架构设计优质的潜力项目。社区保持开放中立、协作创造、坚持精品,鼓励所有的开发者、用户和贡献者积极参与我们的社区、共同合作,创新创造,建设一个更加强大的开源社区。

Github: https://github.com/datavane

你可能感兴趣的:(数据可观测性-架构设计)