Apache Griffin 0.6.0 介绍与选型指南

Apache Griffin 0.6.0 介绍与选型指南:实查官方文档与 ASF 归档,梳理已进入 Apache Attic 的大数据质量方案的架构、DSL 用法、现状风险与同类替代选型。

Apache GriffinGriffin数据质量2026/10/18

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 ExpectationsDeequSoda Core
许可Apache-2.0Apache-2.0Apache-2.0Apache-2.0
GitHub stars1171(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.0Python 生态,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 平台。

八、参考链接