Apache Griffin 0.6.0 介绍与选型指南
Apache Griffin 0.6.0 介绍与选型指南:实查官方文档与 ASF 归档,梳理已进入 Apache Attic 的大数据质量方案的架构、DSL 用法、现状风险与同类替代选型。
Apache Griffin 0.6.0 介绍与选型指南
目标:以官方渠道实查的 Apache Griffin 0.6.0 为基准,讲清这一大数据质量方案(已进入 Apache Attic)的定位、架构、用法与同类差异,帮助读者正确评估其现状与替代选择。本文为认知篇,全部信息基于官方文档、ASF 归档与 GitHub 仓库联网查证(查询日期 2026-10-18),不含本地安装实测。
一、信息基准
1.1 查询日期与版本依据
| 项目 | 内容 |
|---|---|
| 查询日期 | 2026-10-18 |
| 本文介绍版本 | 0.6.0(项目最后一个稳定版) |
| 版本发布时间 | 2020-11(ASF 归档目录 archive.apache.org/dist/griffin/0.6.0/ 的时间戳为 2020-11-09) |
| 版本依据 | ASF 归档分发物 griffin-0.6.0-source-release.zip;GitHub Releases 页无任何发版记录,版本判定以 ASF 归档为准 |
| 项目状态 | 已退役:ASF 董事会 2025-09-24 会议纪要批准退役(Move to Attic),迁移至 Attic 于 2025-11 完成(Attic 记录 ATTIC-246);GitHub 仓库 apache/griffin 已于 2025-11-24 归档为只读 |
1.2 官方来源清单
| 来源 | 链接 |
|---|---|
| Attic 项目页(现状权威来源) | https://attic.apache.org/projects/griffin.html |
| 官网(历史存档,仍在托管) | https://griffin.apache.org/ |
| Quick Start 文档 | https://griffin.apache.org/docs/quickstart.html |
| ASF 归档下载 | https://archive.apache.org/dist/griffin/ |
| GitHub 仓库(只读归档) | https://github.com/apache/griffin |
| 退役决议纪要 | ASF 董事会 2025-09-24 会议纪要(Attic 页面引用) |
二、软件概述
Apache Griffin 0.6.0 是一个面向大数据的数据质量解决方案,支持批式与流式两种模式,提供统一的流程从多个视角度量数据质量(准确率 accuracy、完整性 completeness、及时性 timeliness、profiling 等),目标是帮助构建可信数据资产(来源:官网首页,查询日期 2026-10-18)。
官方将数据质量处理归纳为三步:Step 1 Define——数据科学家/分析师定义质量要求(准确率、完整性、及时性、画像等);Step 2 Measure——源数据进入 Griffin 计算集群,按既定要求执行质量度量;Step 3 Metrics——质量报告作为指标输出到指定目的地。此外提供前端界面,便于用户把新的质量需求接入平台并编写质量逻辑。
项目沿革:2016-12-07 进入 Apache 孵化器,2018-11-21 毕业为顶级项目,2025-09 退役、2025-11 完成向 Attic 的迁移(来源:官网首页与 Attic 项目页,查询日期 2026-10-18)。代码以 Apache License 2.0 许可发布。截至查询日,官网仍在托管历史文档,但项目已无任何开发、发布与安全维护活动。
三、核心架构
3.1 总体结构
依据官网首页架构图示与 Quick Start 文档(查询日期 2026-10-18),Griffin 由以下部分协同:
| 组件 | 说明 |
|---|---|
| Measure 模块 | 质量度量引擎,运行于 Spark 之上,消费质量规则配置(dq.json + env.json),支持批式与流式度量 |
| Service 模块 | 管理 REST 服务,负责质量需求的注册、调度管理与元数据维护 |
| 调度 | 服务侧定时调度(周期触发 Spark 度量作业) |
| Sinks(结果输出) | 度量结果可输出到 Console、HDFS、Elasticsearch(env.json 中按 type 配置) |
| 前端 UI | 用户接入质量需求、查看质量报告的入口 |
3.2 质量 DSL 与度量模型
Griffin 定义了数据质量领域模型与专用 DSL(griffin-dsl)来描述质量规则:配置中的 data.sources 声明源/目标数据集(baseline 标记基准源),evaluate.rule.rules 以 dq.type(如 accuracy)+ DSL 规则表达式(如 src.id = tgt.id AND src.age = tgt.age)定义评估规则,并声明输出指标(metric)与明细(record)。通过扩展 DSL,用户可自定义特定质量能力(来源:官网首页与 Quick Start 的 dq.json 示例,查询日期 2026-10-18)。
3.3 运行环境
官方 Quick Start 标注的度量模块环境要求:JDK 1.8+、Hadoop 2.6.0+、Spark 2.2.1+、Hive 2.2.0(来源:https://griffin.apache.org/docs/quickstart.html ,查询日期 2026-10-18)——典型的 2018~2020 年代 Hadoop 生态栈。
四、功能特性
基于官网与 Quick Start 文档归纳(查询日期 2026-10-18):
- 批流双模式质量度量:同一套度量引擎覆盖批式与流式数据。
- 多视角质量度量:准确率、完整性、及时性、数据画像等域模型。
- 源-目标对比度量:以 baseline 源对目标做准确率比对,输出匹配/缺失统计与缺失记录明细。
- DSL 化规则定义:griffin-dsl 描述质量规则,JSON 配置驱动,可扩展。
- 多目的地指标输出:Console、HDFS、Elasticsearch 等 sink 可组合配置。
- Web 前端:质量需求接入与报告查看。
⚠️ 注意:以上能力自 0.6.0(2020-11)后未再更新;项目退役后不存在安全修复与兼容性维护,本文所述特性仅具评估与迁移参考价值。
五、快速上手
以下内容引自官方 Quick Start 文档(https://griffin.apache.org/docs/quickstart.html ,查询日期 2026-10-18),本文未做本地实测。
1. 场景与建表。官方示例比较两张同构 Hive 表 demo_src(基准)与 demo_tgt(目标),按 dt/hour 分区(Hive DDL 引官方原文):
CREATE EXTERNAL TABLE `demo_src`(
`id` bigint,
`age` int,
`desc` string)
PARTITIONED BY (
`dt` string,
`hour` string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
LOCATION
'hdfs:///griffin/data/batch/demo_src';
数据加载(官方示例):
LOAD DATA LOCAL INPATH 'demo_src' INTO TABLE demo_src PARTITION (dt='20180912',hour='09');
2. 定义质量度量。官方 dq.json 示例定义 accuracy 规则(节选):
{
"name": "batch_accu",
"process.type": "batch",
"data.sources": [
{ "name": "src", "baseline": true, "connectors": [
{ "type": "hive", "version": "1.2",
"config": { "database": "default", "table.name": "demo_src" } } ] },
{ "name": "tgt", "connectors": [
{ "type": "hive", "version": "1.2",
"config": { "database": "default", "table.name": "demo_tgt" } } ] }
],
"evaluate.rule": {
"rules": [ {
"dsl.type": "griffin-dsl",
"dq.type": "accuracy",
"out.dataframe.name": "accu",
"rule": "src.id = tgt.id AND src.age = tgt.age AND src.desc = tgt.desc"
} ]
},
"sinks": ["CONSOLE", "HDFS"]
}
env.json 配置 sink 目的地(console / hdfs / elasticsearch,节选官方原文)。
3. 提交度量作业(官方原文命令):
spark-submit --class org.apache.griffin.measure.Application --master yarn --deploy-mode client --queue default \
--driver-memory 1g --executor-memory 1g --num-executors 2 \
<path>/griffin-measure.jar \
<path>/env.json <path>/dq.json
作业完成后指标打印到控制台,并保存到 hdfs:///griffin/persist/<job name>/<timestamp>/_METRICS。
六、适用场景与限制
6.1 适用场景
- 存量系统评估:仍在运行 Griffin 的团队理解其能力边界并规划迁移。
- Hadoop 生态历史栈参考:2018~2020 年代基于 Hive/Spark 的批式准确率比对场景,作为架构参考。
6.2 限制与风险(选型必读)
- 项目已退役:2025-09 经 ASF 董事会批准退役,2025-11 进入 Attic,代码仓库只读;官网明确标注「they may be unsupported and unsafe to use」(来源:Attic 项目页,查询日期 2026-10-18)。
- 版本陈旧:最后一版 0.6.0 发布于 2020-11,此后近五年无维护。
- 技术栈过时:要求 Hadoop 2.6+/Spark 2.2.1+ 的老一代大数据栈,与现代湖仓(Iceberg 等表格式)无官方适配。
- 无社区支持:邮件列表归档保留,但无活跃社区;安全问题无人响应。
- 新项目不建议采用:数据质量诉求应转向活跃维护的同类项目(见第七章)。
七、同类选型对比
对比对象:Great Expectations(Python 数据质量/测试框架,现由 Fivetran 维护)、Deequ(AWS 开源的 Spark 数据质量库)、Soda Core(Soda 的数据质量检测 CLI/库)。社区数据来源:GitHub 仓库 stargazerCount 实查与 Releases(查询日期 2026-10-18)。
| 维度 | Apache Griffin 0.6.0(已退役) | Great Expectations | Deequ | Soda Core |
|---|---|---|---|---|
| 许可 | Apache-2.0 | Apache-2.0 | Apache-2.0 | Apache-2.0 |
| GitHub stars | 1171(apache/griffin,2026-10-18) | 11879(fivetran/great_expectations,2026-10-18) | 3650(awslabs/deequ,2026-10-18) | 2436(sodadata/soda-core,2026-10-18) |
| 最近发版 | 0.6.0(2020-11,此后无发版) | 1.24.0(GitHub Releases,2026-10-18 查询) | v2.1.0(GitHub Releases,2026-10-18 查询) | v4.27.0(GitHub Releases,2026-10-18 查询) |
| 版本节奏 | 2020-11 后停滞;2025-11 进 Attic | 高频小版本滚动 | 节奏平缓(以 Spark 版本兼容为驱动) | 高频小版本滚动 |
| 兼容矩阵 | JDK 1.8+/Hadoop 2.6+/Spark 2.2.1+/Hive 2.2.0 | Python 生态,Pandas/Spark/DuckDB 等执行器 | Spark(Scala/Python),AWS 内部 Glue 亦采用 | Python CLI/SDK,对接 Snowflake/BigQuery/Databricks 等 |
| 形态 | 服务+UI+Spark 度量引擎的平台型方案 | 断言式数据测试框架(Checkpoint/Data Docs) | 声明式约束+指标计算库(Spark 原生) | 轻量 Checks DSL(SodaCL)+ CLI/编排集成 |
选型建议:新项目一律不建议再选 Griffin;Spark 栈内做程序化质量约束,Deequ 最贴合;Python 团队要断言式测试与质量报告,选 Great Expectations;要在现代数仓/云数仓上以轻量 DSL 做持续检测并与编排/告警打通,选 Soda Core 或 Soda 平台。
八、参考链接
- Attic 项目页:https://attic.apache.org/projects/griffin.html
- 官网(历史存档):https://griffin.apache.org/
- Quick Start 文档:https://griffin.apache.org/docs/quickstart.html
- ASF 归档下载:https://archive.apache.org/dist/griffin/
- GitHub 仓库(只读):https://github.com/apache/griffin
- Attic 退役记录 ATTIC-246:https://issues.apache.org/jira/browse/ATTIC-246