ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DataHub v0.2.7 发布说明深度解读:可观测性模型扩展、Connection 实体与 fastpath 索引链路

DataHub v0.2.7 发布说明深度解读:可观测性模型扩展、Connection 实体与 fastpath 索引链路 DataHub v0.2.7 发布说明深度解读可观测性模型扩展、Connection 实体与 fastpath 索引链路【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub本篇文章围绕 DataHub当前开源仓库的 DataHub Cloud v0.2.7 版本发布说明展开解读该版本围绕**可观测性Observability**的一次集中技术投入Incident事件与 Assertion断言元数据模型的扩展、新增 Connection连接实体、Anomaly异常模型的引入以及面向 UI 写入的updateIndicesHookfastpath 优化。读完本文你将掌握这些模型在仓库中的具体落点PDL 定义、配置项、钩子机制并理解版本中各项修复背后的实现细节。版本概览发布可用日期2023 年 5 月 19 日19-May-2023推荐 CLI 版本v0.10.2.3版本区间自v0.2.6之后从 OSS DataHub 主仓库拉入了一批上游变更变更区间为2bc0a781a63f...至44406f7adf09...说明本仓库为 DataHub 的公开源码仓库发布说明中提及的 DataHub Cloud 为托管服务命名下文所有实现细节均以当前仓库源码为证据可通过文中给出的仓库相对路径进一步查阅。可观测性Incident 模型扩展v0.2.7 的首要主题是Extending Incidents Models for Observability即把 Incident 从简单的标记扩展为承载完整可观测性语义的元数据模型。IncidentsSummary 与 IncidentSummaryDetails在 IncidentsSummary.pdl 中实体级的事件摘要 aspectAspect {name: incidentsSummary}引入了结构化的明细保留并标记为deprecated的resolvedIncidents/activeIncidents纯 Urn 数组供兼容使用新增的resolvedIncidentDetails/activeIncidentDetails其元素类型为 IncidentSummaryDetails.pdl每个元素携带字段类型说明urnUrn事件的 Urntypestring事件类型createdAtlong事件创建时间epoch 毫秒resolvedAtoptional long解决时间事件仍活跃时为nullpriorityoptional int事件优先级与此同时模型上的Searchable注解为该 aspect 定义了完整的可检索字段映射resolvedIncidents、hasResolvedIncidents、numResolvedIncidents、resolvedIncidentTypes、resolvedIncidentCreatedTimes、resolvedIncidentPriorities、resolvedIncidentResolvedTimes以及对应的activeIncident*系列Relationship注解则将/*/urn映射为ResolvedIncidents与ActiveIncidents两条指向incident实体的关系。这意味着搜索与血缘图Graph层都可以直接基于事件摘要做过滤、统计与关联查询。IncidentInfo 的完整字段在 IncidentInfo.pdlaspect 名incidentInfoschemaVersion: 3中事件信息模型的字段全集如下type: IncidentType且addToFilters支持按类型过滤customType当type为CUSTOM时承载自定义类型titleWORD_GRAM分词 10.0 的 boostScore与descriptionTEXT支持全文检索entities: array[Urn]事件关联的实体集合Relationship定义IncidentOn关系实体类型覆盖dataset、chart、dashboard、dataFlow、dataJob、schemaField、mlModel、mlFeature、mlFeatureTable、service、aiAgentpriority: optional int数字优先级UI 上映射为 0-CRITICAL、1-HIGH、2-MED、3-LOWassignees事件处理负责人见 IncidentAssignee.pdlstatus: IncidentStatus活跃/非活跃source: optional IncidentSource记录事件的来源方式即下文基于断言的自动生成startedAt事件实际开始时间可能早于创建时间与created: AuditStamp。配套的还有 IncidentNote.pdl、IncidentExternalLink.pdl 等补充 aspect共同构成可观测事件的完整信息面。从模型结构可以推断v0.2.7 的扩展目标是为后续的自动化事件生成、事件聚合统计与搜索筛选提供数据基础。新增 Connection 实体models(integrations obs)版本引入了一个新的Connection实体changelog 条目models(integrations obs): Adding a Connection entity用于在集成integrations与可观测性observability两个上下文中统一描述连接这类资源。结合模型目录的组织方式com.linkedin.connection等命名空间可以推断该实体用于承载数据平台集成连接、以及可观测性数据源连接的元数据供集成管理和监控链路复用同一套实体建模。注该实体在当前仓库对应版本的实现细节可沿 metadata-models 下的 PDL 目录进一步查看本文以发布说明中的变更条目为事实依据。Anomaly 模型的引入断言驱动的异常基础feat(observability): Introducing Anomaly Models表明 v0.2.7 为异常检测铺下了第一块模型基石。虽然当时模型尚处于引入阶段但其核心语义与断言的运行结果天然关联AssertionResult.pdl 中AssertionResult记录了一次断言评估的完整结果type结果类型、severity失败严重程度见 AssertionResultSeverity.pdl、rowCount、missingCount、unexpectedCount、actualAggValue观测聚合值、nativeResults与externalUrl、error结果类型在 AssertionResultType.pdl 中定义为INIT、SUCCESS、FAILURE、ERROR四态AssertionRunEvent.pdl 记录了每次运行的时序事件。Anomaly 模型的引入正是为了在断言结果这一时序数据之上叠加异常描述如值偏差、边界越界为后续异常检测能力提供统一的数据结构。Assertions-Based Incidents Generator Hook断言失败自动生成事件feat(observability): Assertions-Based Incidents Generator Hook将前两条模型扩展串联起来当断言评估结果为失败FAILURE或错误ERROR时由 Generator Hook 自动为该资产创建/更新 Incident。其工作机制可以概括为断言运行事件AssertionRunEvent被消费Generator Hook 检查结果类型与严重程度AssertionResultTypeAssertionResultSeverity依据策略自动生成IncidentInfo通过source: IncidentSource标记来源为自动生成并回写到incidentsSummary摘要中。从源码结构看该类 hook 位于 GMS 的实体服务/事件处理链路中与元数据变更事件MCE/MCL的处理管线集成。它使得数据质量断言失败能够自动升级为可被团队追踪、指派、解决的 incident 工作流而无需人工手动创建。fastpathUI 写入的 updateIndicesHook 预处理器设计动机feat(fastpath): pre-process updateIndicesHook for UI sourced updates解决的是一个真实的延迟问题此前 UIGraphQL发起的更新需要写入 Kafka、经 MAE 消费者异步处理后再回写索引链路长、延迟不可控。v0.2.7 引入 fastpath 后来自 UI 的写入appSourceui由 GMS 在同步路径上直接预处理updateIndicesHook绕过 Kafka 的异步排队显著缩短写入 → 可检索的延迟。配置项与源码落点该能力由配置类 PreProcessHooks.java 承载两个开关分别控制两条路径配置项环境变量语义preProcessHooks.uiEnabledPRE_PROCESS_HOOKS_UI_ENABLED默认trueGMS 内同步执行UpdateIndicesHook的 fastpath针对appSourceuiGraphQL来源的写入preProcessHooks.reprocessEnabledPRE_PROCESS_HOOKS_REPROCESS_ENABLED回退到PRE_PROCESS_HOOKS_UI_ENABLEDMAE 消费者侧的异步UpdateIndicesHook处理同一批 UI 来源事件对应的默认配置见 application.yaml注释明确说明其目的是规避 Kafka避免 UIGraphQL来源的索引更新处理延迟。该配置类还提供了两个重要的一致性保障方法isMclConsumerEnabled(maeConsumerEnabled, mclConsumerEnabled)仅当环境变量值为小写true时才判定 MCL 消费者启用避免 Spring 布尔转换把TRUE/on也当作启用而导致进程在未实际消费时启动失败validateWhenConsumingMcl(hooks, mclConsumerEnabled)当一个进程确实在消费 MCL 时若uiEnabled与reprocessEnabled均为false则直接抛IllegalStateException阻止UI 写入已落库但永远不建索引的静默丢失配置对应上游 issue 19119 的修复思路。从实现意图可以看出uiEnabled是 GMS GraphQL 的同步 fastpathreprocessEnabled是 MAE 侧的异步兜底路径在 Kubernetes 缩容等场景下两者配合MAE_CONSUMER_ENABLEDfalse可以避免系统更新窗口期的双写冲突。元数据测试 API 迁移scroll 到 searchAfterfix(metadataTests): change scroll to searchAfter based API将元数据测试metadata tests的分页查询从 Elasticsearch 的scrollAPI 迁移到search_after风格 API。这一迁移的背景是 scroll 上下文在深分页与长连接场景下的资源开销问题而search_after更适合点查与轻量分页该变更同时服务于fix(metadataTests): gold tier metadata tests condition——修正了 gold 层级元数据测试的判定条件。相关实现位于 metadata-jobs / metadata-io 的检索代码路径中可结合 metadata-io 下的 Elasticsearch 客户端实现进一步查阅。其余修复与改进v0.2.7 还包含一批实用修复覆盖前后端与摄入链路通知去重fix(notifications): fix double notifications issue修复通知重复发送问题标签渲染fix(tag): render tag name via properties标签显示改为通过properties渲染标签名Jackson 流约束fix(jackson): add stream reader constraint with 16 MB limit为 Jackson 流式读取器增加 16 MB 大小上限缓解超大负载带来的内存风险dbt 血缘fix(ingest/dbt): fix siblings resolution for sources修复 dbt 摄入时 source 的 siblings孪生实体解析问题搜索修复Some search fixes若干搜索链路问题修复GraphQL 自动补全fix(graphql) Fix autocomplete for views with un-searchable types修复视图views中包含不可搜索类型时的自动补全问题UI 术语提案fix(ui) Allow users to be able to propose new terms/term groups from UI允许用户在 UI 上直接提议新的术语terms与术语组term groups。小结与升级建议v0.2.7 是一次以可观测性底座为核心的版本Incident 与 Assertion 模型从静态标记走向结构化、可搜索、可自动生成的状态机Connection 实体为集成与监控提供了统一建模Anomaly 模型则为异常检测预留了数据结构而 fastpathPRE_PROCESS_HOOKS_UI_ENABLED则从架构上缩短了 UI 写入到索引可见的延迟。对于正在部署或升级该版本的团队建议重点关注确认 GMS 与 MAE 的PRE_PROCESS_HOOKS_UI_ENABLED/PRE_PROCESS_HOOKS_REPROCESS_ENABLED配置成对且一致避免索引静默缺失升级 CLI 至v0.10.2.3以获得与本次模型变更匹配的摄入端支持若使用元数据测试metadata tests功能注意其分页 API 已切换为 searchAfter 风格旧式 scroll 依赖需同步调整。以上所有模型定义与配置均可直接在当前仓库中查阅PDL 模型位于 metadata-models/src/main/pegasusfastpath 配置位于 application.yaml 与 PreProcessHooks.java。【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表