[开源]一站式开源数据可观测性平台,助用户全面地了解和掌管数据

开源系统流程管理
2026-06-28 04:39 1 次浏览 • 0 次下载 0KB
[开源]一站式开源数据可观测性平台,助用户全面地了解和掌管数据

一、开源项目简介

Datavines 是一站式开源数据可观测性平台,提供元数据管理、数据概览报告、数据质量管理,数据分布查询、数据趋势洞察等核心能力,致力于帮助用户全面地了解和掌管数据,让您做到心中有数。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

四、功能概述

特性

数据目录

  • 定时获取数据源元数据,构造数据目录
  • 定时监听元数据变更情况
  • 支持元数据的标签管理

数据质量监控

  • 内置 27 个数据质量检查规则,开箱即用
  • 支持 4 种数据质量检查规则类型单表单列检查类型单表自定义SQL检查类型跨表准确性检查类型两表值比对检查类型
  • 支持配置定时任务进行定时检查
  • 支持配置 SLA 用于检查结果告警

数据概览

  • 支持定时执行数据探测,输出数据概览报告
  • 支持自动识别列的类型自动匹配合适的数据概况指标
  • 支持表行数趋势监控
  • 支持列的数据分布情况查看

插件化设计

平台以插件化设计为核心,以下模块都支持用户自定义插件进行扩展

  • 数据源:已支持 MySQL、Impala、Starocks、Doris、Presto、Trino、ClickHouse、PostgreSQL
  • 检查规则:内置空值检查、非空检查、枚举检查等27个检查规则
  • 作业执行引擎:已支持Spark和Local两种执行引擎。Spark 引擎目前仅支持Spark2.4版本,Local 引擎则是基于JDBC开发的本地执行引擎,无需依赖其他执行引擎。
  • 告警通道:已支持邮件
  • 错误数据存储:已支持 MySQL 和 本地文件(仅支持Local执行引擎)
  • 注册中心:已支持 MySQL、PostgreSQL 和 ZooKeeper

多种运行模式

  • 提供Web页面配置检查作业、运行作业、查看作业执行日志、查看错误数据和检查结果
  • 支持在线生成作业运行脚本,通过 datavines-submit.sh 来提交作业,可与调度系统配合使用

容易部署&高可用

  • 平台依赖少,容易部署
  • 最小仅依赖 MySQL 既可启动项目,完成数据质量作业的检查
  • 支持水平扩容,自动容错
  • 无中心化设计,Server 节点支持水平扩展提高性能
  • 作业自动容错,保证作业不丢失和不重复执行

五、技术选型

架构设计

环境依赖

  1. Java 运行环境:Jdk8
  2. Datavines 支持 JDBC 引擎,如果你的数据量较小或者只是想做功能验证,可以使用 JDBC 引擎
  3. 如果您要想要基于 Spark 来运行 Datavines ,那么需要保证你的服务器具有运行 Spark 应用程序的条件

安装

使用Maven3.6.1以及以上版本


$ mvn clean package -Prelease -DskipTests

Datavines 环境搭建指南

前置条件

在搭建 Datavines 开发环境之前请确保你已经安装一下软件

  • Git: 版本控制系统
  • JDK: 后端开发
  • Maven: Java包管理系统

克隆代码库

通过你 git 管理工具下载 git 代码,下面以 git-core 为例


mkdir datavines
cd datavines
访问一飞开源:https://code.exmay.com/ 下载

编译源码

  • 如果使用MySQL数据库,请注意修改pom.xml,将 mysql-connector-java 依赖的 scope 改为 compile,使用 PostgreSQL 则不需要。
  • 运行 mvn clean install -Prelease -Dmaven.test.skip=true

数据库

Datavines 的元数据存储在关系型数据库中,目前支持的关系型数据库包括 MySQL 以及 PostgreSQL。下面以MySQL为例,启动数据库并创建新 database 作为 Datavines 元数据库,这里以数据库名 datavines 为例

创建完新数据库后,将 script/sql/datavines-mysql.sql 下的 sql 文件直接在 MySQL 中运行,完成数据库初始化

启动后端

下面步骤将引导如何启动 Datavines 后端服务

必要的准备工作

  • 打开项目:使用开发工具打开项目,这里以 Intellij IDEA 为例,打开后需要一段时间,让 Intellij IDEA 完成以依赖的下载
  • 必要的修改
  • 如果使用 MySQL 作为元数据库,需要先修改 datavines/pom.xml,将 mysql-connector-java 依赖的 scope 改为 compile,使用 PostgreSQL 则不需要
  • 修改数据库配置,修改 datavines-server/src/main/resources/application.yaml 文件中的数据库配置
  • 本样例以 MySQL 为例,其中数据库名为 datavines,账户名密码为 root/123456
  • spring:datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/datavines?useUnicode=true&characterEncoding=UTF-8 username: root password: 123456

启动服务

启动 DatavinesServer

在VM Options中添加
-Dspring.profiles.active=mysql 中 mysql 表示指定的配置文件-Dlogging.config=classpath:server-logback.xml

当你在Console里面看到 [INFO] 2022-04-10 12:29:05.447 io.datavines.server.DatavinesServer:[61] - Started DatavinesServer in 3.97 seconds (JVM running for 4.69) 日志的时候,证明服务已经启动成功了

启动前端服务

  • 前置条件:本地安装好 node(v16.9.0) 和 npm(8.19.3)
  • 依次执行以下命令,即可完成本地前端服务的启动以进行本地调试。

cd datavines\ui
npm install
npm fund
npm run dev:prod

快速入门

请参考官方文档:快速入门指南

开发指南

请参考官方文档:开发指南

来源:Datavines 官网文档