[开源]一站式开源数据可观测性平台,助用户全面地了解和掌管数据
开源系统流程管理
![[开源]一站式开源数据可观测性平台,助用户全面地了解和掌管数据](https://yy123.ink/api/img/1782592803965-jsurpv.jpg)
一、开源项目简介
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 节点支持水平扩展提高性能
- 作业自动容错,保证作业不丢失和不重复执行
五、技术选型
架构设计

环境依赖
- Java 运行环境:Jdk8
- Datavines 支持 JDBC 引擎,如果你的数据量较小或者只是想做功能验证,可以使用 JDBC 引擎
- 如果您要想要基于 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 官网文档
评论


