DataHub Cloud v2.1.0 系列发布说明全解:Scoped MCP、Ask DataHub GA、语义模型与权限模型的安全加固路线
【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub
本文以 DataHub Cloud(DataHub 托管版)v2.1.x 系列(v2.1.0 至 v2.1.7)的官方发布说明为主体,完整梳理该系列的破坏性变更、新特性亮点、关键环境变量与逐版本热修复演进。读完后,你将掌握:如何安全地从旧版本升级到 v2.1.x、哪些行为变更必须提前迁移(尤其是 v2.1.5 的权限模型变更与 MCP 鉴权方式变更),以及这些声明在 DataHub 开源仓库源码中的对应实现证据。
1. v2.1.x 版本地图与推荐组件版本
v2.1.0 于 2026-07-30 发布,随后 v2.1.1 ~ v2.1.7 以热修复(hotfix roll-up)形式持续滚动。该系列所有版本推荐的基础组件版本保持一致,便于混合部署时对齐:
| 版本 | 可用日期 | 性质说明 |
|---|---|---|
| v2.1.0 | 30-Jul-2026 | 功能主版本(含大量破坏性变更,见第 3 节) |
| v2.1.1 | 06-Aug-2026 | 修复可能中断长时 ingestion 工作负载的问题 |
| v2.1.2 | 12-Aug-2026 | 批量血缘传播、MCP?token=参数废弃(破坏性变更) |
| v2.1.3 | 19-Aug-2026 | "View Self" 默认策略收紧、语义搜索管理台 |
| v2.1.4 | 25-Aug-2026 | EXTERNAL_OAUTH_MAP_TO_CORPUSER外部 OAuth 映射能力 |
| v2.1.5 | 1-Sep-2026 | 权限授予写操作全面收口(破坏性变更,见第 7 节) |
| v2.1.6 | 11-Sep-2026 | View builder 结构化属性过滤、依赖项安全下限 |
| v2.1.7 | 15-Sep-2026 | SQS 通道 Remote Executor 修复 |
全系列推荐的组件版本:
- CLI/SDK: 1.6.0.16
- Remote Executor: 自 v2.1.x-cloud 起向下兼容至 v1.1.4-cloud(各热修复版本依次追加对上一版 -cloud 镜像的推荐)
- On-Prem 版本: Helm 1.6.233、API Gateway v0.7.3
原始发布说明位于 docs/managed-datahub/release-notes/v_2_1_0.md,其中 v2.1.0 的完整变更集还指向开源仓库 v1.6.0 发布的所有变更,升级前建议同时对照 更新指南。
2. v2.1.0 新特性亮点(该系列的能力基线)
v2.1.0 是这一系列的骨架版本,定义了 v2.1.x 全部后续热修复所依托的新能力面:
- Metrics 与 SemanticModels 实体:新增一等公民的 Metric 与 SemanticModel 实体,配有专属实体页、指标首页、侧边栏导航与自动补全,使业务指标及其语义模型可以被编目、检索,并与所派生的数据集一起参与血缘。
- Scoped MCP servers:可在 UI 中创建和管理面向特定目的的 Model Context Protocol(MCP)服务器,每个服务器暴露一组精选工具、可配置 instructions,并可通过 Views 对数据资产做作用域限定,用于构建"只访问特定数据与工具"的领域专属 Agent。在 Context Platform 中以私有 Beta 默认提供。
- Agent、Service、Repository 编目实体:AI Agent(及其采用的技能与调用的工具)、工具所属的服务(REST API、MCP 服务器)、以及背后的源代码仓库,成为参与血缘的一等实体;支持 LangChain 与 Google ADK Agent 自动注册。
- GitHub Context Document 双向同步:从一个或多个 GitHub 仓库导入 context documents,并把 DataHub 上的修改以 PR 形式同步回 GitHub(后续 v2.1.4 进一步加固了 re-import 复用既有文档身份、PR 生命周期处理等细节,并新增
sync_back.include_unpublished(默认false)与sync_back.max_files_per_commit(默认100)两个 recipe 选项)。 - 国际扩展:新增法语(
fr)、意大利语(it)、挪威博克马尔语(nb)、瑞典语(sv)、匈牙利语(hu)五个 Beta 语言;启用后 DataHub 在存在翻译时跟随浏览器语言。 - 新数据源:Cube(语义层)、AWS Kinesis Data Streams / Amazon Data Firehose、MicroStrategy、Open Data Contract Standard(ODCS)。
- Data Product Lineage:数据产品直接出现在血缘图中,便于理解业务级数据实体之间的跨生态连接。
其他产品变更同样值得注意:Ask DataHub 正式 GA(网页端在应用任何元数据变更前会暂停等待人工审批);Glossary Node 可挂接 Domains;Logical Models 可在 UI 中直接创建、关联物理数据集、映射列并编辑 schema(默认启用);自管部署可通过LOG_AGGREGATOR_ENDPOINT将服务日志投递到 Loki 兼容聚合器并启用 support bundle 日志采集;断言通知邮件新增alert id用于去重;订阅跟随资产生命周期(资产软删除时订阅自动失活,恢复时复活)。
3. v2.1.0 破坏性变更全集(升级前必读)
以下是 v2.1.0 发布说明中列出的全部 17 项破坏性变更,升级脚本与 recipe 应逐项核对:
- 编排插件默认异步 emit:Airflow、Dagster、Prefect、Great Expectations 插件默认改为
ASYNC。异步emit()不再因写入被拒而抛异常,也不提供读写后一致性保证。如需恢复旧行为,按插件配置emit_mode: SYNC_PRIMARY(Airflow 中为airflow.cfg的[datahub] emit_mode = SYNC_PRIMARY)。Python SDK、CLI 与 DataHub Actions 默认值不变。 - 内置列级分类器移除:
DataHubClassifier及其acryl-datahub-classify依赖已从发行包移除,分类框架保留但默认不注册任何分类器。recipe 中若设置了classification.enabled: true且未注册替代分类器,启动时会快速失败。处理方式是移除classification块、注册自定义分类器,或锁定最后包含内置分类器的版本。 - Spark 血缘捆绑 OpenLineage 1.50:OpenLineage 内置的 dataset-name trimmers 默认会从文件系统/对象存储数据集名中剥离常见分区目录。当 DataHub 路径修剪(
path_spec_list或file_partition_regexp)已配置时,插件会自动禁用这些 trimmers;两者都未配置的 recipe 会直接启用自动剥离,分区路径的 dataset URN 变化可能导致指向旧 URN 的血缘边成为孤儿。可设置spark.datahub.metadata.dataset.openLineageTrimmersEnabled=false恢复 1.50 之前的命名。另外file_partition_regexp现在也作用于裸命名空间的file/dbfs数据集。 - Power BI 与 Mode 列级血缘保留原始大小写:不再对上游列名做小写化,重新摄取后此前缺失的列级血缘边会显现。如果上游 SQL 源曾配置
convert_column_urns_to_lowercase: true作为权宜之计,应移除以使两侧保持一致。 - BigQuery 表统计来源变更:行数、大小、最近修改时间改从
INFORMATION_SCHEMA.PARTITIONS获取,不再使用未文档化的__TABLES__。PARTITIONS只覆盖基表,空表、外部表、视图与快照将丢失lastModified(快照还会丢失 row/size 自定义属性)。设置use_legacy_table_stats: true可恢复旧行为。 - MongoDB 可作为 AWS DocumentDB 摄取:新增 opt-in
platform: documentdb(配合hostingEnvironment: AWS_DOCUMENTDB),在新documentdb数据平台下发射实体。默认行为不变;启用会改变 dataset 与 container 的 URN,需清理陈旧的mongodb实体。 - Snowplow enrichment DataJob URN 改为基于名称:连接器迁移到受支持的 enrichments 端点后不再获得每次 enrichment 的 UUID,DataJob URN 改由 enrichment 名称派生;旧 UUID 型 DataJob 会重建,需清理陈旧实体。
- Teradata database-container URN 大小写:当
convert_urns_to_lowercase: true(非默认)时,容器 URN 也会小写化,使容器与其数据集匹配。默认(false)部署不受影响。 - Ingestion 框架 workunit processor API:workunit-processor 辅助函数被移除,改为
WorkunitProcessor类,且多个 processor 改名。直接调用过辅助函数的自定义代码必须迁移到类 API。 - 数据集语义搜索不再隐式开启:启用语义搜索并使用默认实体集时,不再同时桥接 datasets。升级后如需保留数据集语义搜索,需在 GMS 与 system-update 任务上设置
ELASTICSEARCH_SEMANTIC_SEARCH_ENTITIES=document,dataset。 - 逻辑父链接需要双方 Edit Entity:物理数据集链接到逻辑父数据集时,需要对子实体与目标父实体同时拥有 Edit Entity;清除父链接只需子实体侧权限。
- GMS 用量指标语义(opt-in):
USAGE_AGGREGATION_ENABLED=true时,datahub_request_count改为从内存聚合刷出时发射(而非逐请求),actor 标签变为actor_class,并新增字节数与活跃身份指标。聚合默认关闭,旧 JMX 指标不受影响。 - Executor 协调器环境标志:
DATAHUB_EXECUTOR_MONITORS_ENABLED与DATAHUB_EXECUTOR_TASKS_ENABLED变为硬 opt-out(跳过子系统装配与重型导入),不再是仅跳过 fetcher 的开关;禁用 Kafka/actions 管道请改用DATAHUB_EXECUTOR_INGESTION_PIPELINE_ENABLED。 - 订阅动态继承通知默认值:创建订阅时若 GraphQL 调用方省略
notificationConfig(或不带notificationSettings),交付时将动态使用操作者当前的通知默认值,而不是创建一个无 sink 的订阅。如需有意创建无 sink 订阅,请显式发送notificationSettings.sinkTypes: []。 - 移除
REQUEST_MINIMAL_SLACK_PERMISSIONS:其职责由DATAHUB_SLACK_SERVER_SIDE_HISTORY_ENABLED承接(在安装界面将 Slack history scopes 标记为可选项,管理员可按安装取消勾选)。若设置过旧变量请删除。 - 血缘 scroll 端点契约:
POST /openapi/v3/lineage/scroll现在接收单一urns列表(取代原来分离的 source/destination/edge 过滤),direction取值为UPSTREAM/DOWNSTREAM。发布方称无已知调用方。 - Context Documents 进入 Views 作用域:context documents 现在受 Views 作用域约束,需要更新 views 定义以包含 context documents(或为 documents 补充域、标签等使其命中视图规则)。
此外 v2.1.0 有一项弃用:BigQueryusage.start_time、usage.end_time、usage.bucket_duration、usage.max_query_duration弃用,改用顶层等价字段。注意这些usage作用域字段此前是被静默忽略的,现在会生效(并产生告警),可能扩大摄取窗口、增加查询成本;请把它们迁移到 recipe 顶层,同一字段在两处同时设置会成为错误。
4. Ingestion 能力升级(v2.1.0 主线)
新增连接器:Cube(语义层)、AWS Kinesis(Data Streams + Firehose)、MicroStrategy(BI)、ODCS(注册为独立数据平台)。
既有连接器增强(逐项继承原文档):
- Teradata:profiling 尊重
profile_table_size_limit(默认 5 GB,大小未知时 fail-open);血缘抓取批次大小可配置;视图定义可卸载到磁盘存储;多行查询重建设上限以防内存问题;大小检查中的权限错误被归类;零行血缘抓取产生告警。 - Databricks Unity Catalog:Lakehouse Federation(外部目录)支持;基于
system.query.history、经共享 SQL 解析聚合器派生的 usage/operations/query 实体(窗口最长 365 天);空闲窗口打零值 usage 戳;修复 ML 模型摄取控制(include_ml_models、强制的ml_model_max_results上限、MLModelURN 尊重 recipeenv)。 - Redshift:Query 实体上的逐查询热度统计(
queryUsageStatistics);可选列级 usage;table_pattern现在也作用于 SQL 解析派生的血缘与 usage;usage 统计中合成的按用户userEmail不再填充(经 CorpUser URN 的用户归属不变)。 - BigQuery:表统计改由
INFORMATION_SCHEMA.PARTITIONS提供(见第 3 节第 5 项);usage.*窗口与格式化字段合并到顶层等价项(见弃用)。 - Power BI:Hive ODBC 源解析到
hive数据平台(而非hadoop),使 Hive 血缘正确解析并与 Hive 连接器对齐。 - Spark:支持 Apache Spark 4.x(Scala 2.13 构建);OpenLineage 升级至 1.50 并做完整 shadow-jar 遮蔽,可与自带 OpenLineage 的环境(如 Amazon EMR 7.12+ / SageMaker Unified Studio)共存。
- Glue:视图分类与视图血缘提取;Matillion:带文件夹的容器层级、环境作用域血缘、pipeline 与组件级运行历史、修正外部控制台链接、未发布 pipeline 处理。
- ClickHouse:usage 统计迁移到共享 SQL 解析聚合器;MySQL:基于
performance_schema的 usage 与 query 血缘。 - Confluence:文件夹作为 documents 摄取以保留层级;Amazon S3:
emit_folders_only只编目对象存储目录而不摄取底层文件。 - Kafka Connect:支持 Iceberg Sink Connector 与 Snowflake Streaming Sink Connector;Dataplex:V2 体验的摄取源 UI 表单(v2.1.2 起 sync-back 覆盖全部六个已摄取的 Dataplex 平台,且跳过覆盖外部拥有的元数据)。
Ingestion 基础设施:
- 编排插件默认异步 emit(降低高吞吐下的负载,见第 3 节);
- mTLS 客户端认证:CLI 与 SDK 可通过
DATAHUB_CLIENT_CERT_PATH(及可选DATAHUB_CLIENT_KEY_PATH)在每条出站 HTTPS 路径上出示客户端证书,完全向后兼容。从仓库源码看,该能力落在 REST emitter 的出站请求构造中,参见 rest_emitter.py; - 基于环境的 OAuth:
DATAHUB_AUTH_TYPE为 CLI、默认 sink 与环境解析的 emitter 选择 OAuth,底层是 Python 客户端可复用的 OAuth token provider; - 托管 ingestion 的 opt-in Kafka 默认 sink;
- 纯 Python SQLGlot 逃生舱
DATAHUB_SQLGLOT_DISABLE_C:在仓库中的实现为加载期钩子,设置该变量时强制 sqlglot 以纯 Python 方式加载,参见 _force_pure_python_sqlglot.py 及其单测 test_force_pure_python_sqlglot.py; - 临时表 usage 统计修复:经临时/暂存表加载的查询(常见 ELT/dbt 模式)的逐查询热度统计现在落到血缘引用的复合 Query 上,覆盖共享 SQL 解析聚合器上的所有连接器。
Executor 侧:
- 摄取日志垃圾回收器:opt-in 的进程内清理,删除超过保留窗口的单次执行日志目录,并带大小上限安全网(
DATAHUB_EXECUTOR_LOG_GC_ENABLED,默认false,保留与大小参数通过关联的DATAHUB_EXECUTOR_LOG_GC_*变量调节); - 存储过程 CALL 语句:自定义 SQL 断言可选允许
CALL(DATAHUB_EXECUTOR_ALLOW_CALL_STATEMENTS,默认false,需重启 executor)。
5. 关键环境变量清单(v2.1.0 引入/变更)
下表继承发布说明中 v2.1.0 的 Environment Variables 全表,并保留了原文给出的默认值与约束:
| 变量 | 默认值 | 作用 |
|---|---|---|
DATAHUB_AI_TOOL_APPROVAL_ENABLED | true | 控制 Web UI 上 AI 聊天对变更型工具的 human-in-the-loop 审批;设false恢复自动应用。每轮对话重新读取 |
CHAT_SUGGESTIONS_ENABLED | true | 控制 Ask DataHub 追问建议的生成 |
SQL_SKETCH_SYNTHESIS_MODEL | 某个 Bedrock Sonnet profile | SQL sketch/建议合成所用模型;接受bedrock/、openai/、google_vertexai/前缀 |
I18N_ENABLED | — | 启用多语言翻译;Cloud 需申请开启,OSS 默认true(false仅英语) |
USAGE_AGGREGATION_ENABLED | false | 启用内存请求/字节聚合,刷出到 Micrometer/Prometheus |
USAGE_AGGREGATION_INCLUDE_AGENT_NAME | false | 聚合开启时按客户端agent_name额外卷起;值为客户端可控,可能提升指标基数 |
ENTITY_COUNT_METRICS_ENABLED | true | 启用关键 aspect 实体计数的周期性 Micrometer/Prometheus 仪表(datahub.entity.count) |
ENTITY_COUNT_METRICS_UPDATE_INTERVAL_SECONDS | 3600 | 计数刷新周期 |
ENTITY_COUNT_METRICS_INITIAL_DELAY_SECONDS | 60 | 首次刷新延迟 |
ENTITY_COUNT_METRICS_SKIP_CACHE | false | 每次刷新是否绕过 key-aspect 计数缓存 |
EBEAN_READ_POOL_ENABLED/EBEAN_READ_POOL_URL | false/ 省略 | 实体-aspect 读的可选 Ebean 读池;省略 URL 为同库拆分池,设 URL 为副本卸载。见 主存储读池 |
CASSANDRA_READ_POOL_ENABLED/CASSANDRA_READ_POOL_HOSTS | false | 实体-aspect 读的可选 Cassandra 读会话 |
ENTITY_GRAPH_CACHE_ENABLED | GMS 上true | 启用 GMS 实体图缓存(Hazelcast 快照);Hazelcast 不可用或非 GMS pod 时设false |
ENTITY_GRAPH_CACHE_CONFIG_FILE_ENABLED/ENTITY_GRAPH_CACHE_CONFIG_FILE/ENTITY_GRAPH_CACHE_CONFIG_JSON | — | 叠加图定义与边界;见 GMS 实体图缓存 |
DATAHUB_USE_INFERENCE_V2 | false | 智能断言训练路由到 V2 trainer;前置条件DATAHUB_USE_OBSERVE_MODELS=true |
DATAHUB_USE_OBSERVE_MODELS | true | 门控 V1 预处理器能否加载 observe-models |
DATAHUB_EXECUTOR_ENABLE_DELTA_BOUNDS | true | 门控 V1 trainer 是否发射 delta-space 预测边界 |
DATAHUB_EXECUTOR_LOG_GC_ENABLED | false | 启用摄取日志垃圾回收器(见第 4 节) |
DATAHUB_EXECUTOR_ALLOW_CALL_STATEMENTS | false | 允许自定义 SQL 断言中的CALL;需重启 executor |
DATAHUB_CLIENT_CERT_PATH/DATAHUB_CLIENT_KEY_PATH | — | CLI/SDK 出站 HTTPS 的 mTLS 客户端认证 |
DATAHUB_AUTH_TYPE | — | 为 CLI、默认 sink 与环境解析 emitter 选择 OAuth |
CORP_USER_SIBLINGS_ENABLED | — | 启用每日 user-siblings 去重源 |
AUTH_GMS_SESSION_COOKIE_NAME | SESSION | 前端在 OAuth2 登出时失效的 GMS 会话 cookie 名 |
INGESTION_MAX_SERIALIZED_NAME_LENGTH | 16 MB | 元数据反序列化时 JSON 属性名长度的可调上限 |
NOTIFICATION_LOGO_URL/NOTIFICATION_FOOTER_TEXT | — | 定制 SMTP 通知邮件的 logo 与页脚 |
LOG_AGGREGATOR_ENDPOINT | opt-in | 将各服务日志投递到独立部署的日志聚合器,并启用 support bundle 的日志采集器 |
6. v2.1.1 ~ v2.1.4:热修复演进中的能力增量
热修复版本并非只有修 bug,v2.1.2 ~ v2.1.4 各引入了值得单独记录的产品与平台能力:
v2.1.2(12-Aug-2026)
- 产品:批量血缘传播(UI 中单个自动化配置多方向 tag/term 传播,可选 tag 与 term 过滤);写者可向自己有编辑权的域创建实体(无需平台级创建权限,授权失败返回 403);GraphQL 搜索/自动补全/browse/quick-filter 的实体类型列表可配置;结构化属性搜索排序 opt-in(
useAsRankFeature置位且SEARCH_STRUCTURED_PROPERTY_RANK_FEATURES_ENABLED开启,默认关;存量资产需RestoreIndices文档回填后才开始参与排序);结构化属性可单独退出全文索引(excludeFromFullTextSearch);Dataplex sync-back。 - AI:Ask DataHub 工具审批卡片使用白话标题 + 实体链接、默认折叠详情;MCP 分块
initializePOST 不再 400;RFC 8693 token-exchange 客户端注册。 - Observe:新异常检测断言须先积累 14 天历史再告警;volume 断言预测更好地贴合亚日季节性;修复断言回填任务永久卡死。
- 破坏性变更:MCP 服务器所有端点(
/mcp、/mcp/<slug>及旧路径)不再接受?token=查询参数,只接受Authorization: Bearer <token>头;带token查询参数的请求会得到 400 并附说明。无法自定义请求头的客户端可用mcp-remote配合--header "Authorization: Bearer <token>"。
v2.1.3(19-Aug-2026)
- 产品:内置 "View Self" 策略默认收紧为只读(仅 view page / get entity 自己的 profile,不再含 self 的编辑/删除)。
- AI:integrations-service agent 注册表改为惰性解析,杜绝启动期循环导入导致 SYSTEM agent 工具集为空;
search_documents/grep_documents工具描述引导用grep_documents读全文。 - 平台:语义搜索管理台上线(按需重建索引 API、覆盖率与健康端点、Coverage/Check an asset/Run history/Try a search 控制台);aspect 写路径上一组缓存与异步优化降低 GMS 与主库负载(默认 aspect 生成的 contenteditable="false">【免费下载链接】datahubThe Context Platform for your Data and AI Stack
项目地址: https://gitcode.com/GitHub_Trending/da/datahub
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考