ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

OpenMetadata AutoPilot 应用配置指南:`AutoPilotAppConfig` 字段说明与底层实现

OpenMetadata AutoPilot 应用配置指南:`AutoPilotAppConfig` 字段说明与底层实现 OpenMetadata AutoPilot 应用配置指南AutoPilotAppConfig字段说明与底层实现【免费下载链接】OpenMetadataThe Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agents.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata导读AutoPilot 是 OpenMetadata 提供的一款内置应用internal app它的核心价值在于当你只需要定义一个数据服务Service的连接信息时AutoPilot 会自动完成该服务相关管线Ingestion Pipeline的配置、部署与触发运行以合理的默认值将元数据、血缘、用量等信息自动接入 OpenMetadata之后你可以再按需调整任何配置。本指南以openmetadata-ui/src/main/resources/ui/public/locales/en-US/Applications/AutoPilotApplication.md为骨架完整讲解 AutoPilot 应用的AutoPilotAppConfig配置模型尤其是active与entityLink两个字段并结合仓库源码深入说明这些配置在安装、初始化、按需触发与工作流执行中的实际作用帮助你掌握 AutoPilot 的开启、调度、定向触发与停用机制。一、配置文档原文AutoPilotAppConfigAutoPilot 应用的配置说明文档位于 AutoPilotApplication.md其正文核心内容如下AutoPilotAppConfigAutoPilot 应用的配置模型。active布尔值决定 AutoPilot Workflow 是否处于激活状态。$$sectionActive $(idactive)Whether the AutoPilot Workflow should be active or not.$$可以看到官方文档非常精炼仅围绕active一个字段展开。但在实际代码中AutoPilotAppConfig还包含第二个重要字段entityLink服务实体链接用于按需定向触发。接下来我们以该文档为线索深入仓库源码完整还原 AutoPilot 的配置全貌与运行机制。二、AutoPilotAppConfig配置模型全解AutoPilotAppConfig的 JSON Schema 定义位于 autoPilotAppConfig.json编译后对应的 Java 类型为org.openmetadata.schema.entity.app.internal.AutoPilotAppConfig。该模型共包含三个字段字段类型默认值必填说明typestring枚举AutoPilotApplication否应用类型标识枚举值固定为AutoPilotApplicationactivebooleantrue是是否激活 AutoPilot Workflow即文档中重点讲解的字段entityLinkentityLink引用../../../../type/basic.json中的entityLink定义无否服务实体链接用于指定按需触发 AutoPilot 工作流的目标服务其中type字段在 Schema 的definitions.autoPilotAppType中声明为字符串枚举唯一合法值为AutoPilotApplication默认值即AutoPilotApplicationadditionalProperties被设为false意味着传入未声明的额外字段会被拒绝配置必须严格遵循该模型。在仓库的默认应用定义 AutoPilotApplication.json 中默认的appConfiguration如下{ type: AutoPilotApplication, active: true, entityLink: null }而市场定义文件 appMarketPlaceDefinition/AutoPilotApplication.json 同样内置了这一份默认配置并声明了应用元信息appType为internal、scheduleType为NoSchedule、className指向org.openmetadata.service.apps.bundles.autoPilot.AutoPilotApp。这意味着 AutoPilot 不是靠定时调度运行的而是依赖其内部治理工作流Governance Workflow的事件驱动机制。三、active字段的作用挂起与恢复工作流active是配置文档中唯一正式讲解的字段它在 AutoPilotApp.java 中承担了最关键的控制职责。AutoPilot 继承自AbstractNativeApplication其生命周期方法对active的处理如下1.configure()—— 配置即开关Override public void configure() { if (this.config.getActive()) { resumeWorkflow(); } else { suspendWorkflow(); } }当active true时调用WorkflowHandler.getInstance().resumeWorkflow(AutoPilotWorkflow)恢复 AutoPilot 工作流当active false时调用suspendWorkflow(AutoPilotWorkflow)挂起该工作流。也就是说active字段本质上是对名为AutoPilotWorkflow的治理工作流Workflow Definition的“挂起 / 恢复”开关。无论你是通过 UI 修改应用配置还是调用 REST API 更新应用configure()都会重新评估active并同步工作流状态。2.init(App app)—— 配置反序列化Override public void init(App app) { super.init(app); this.config JsonUtils.convertValue(this.getApp().getAppConfiguration(), AutoPilotAppConfig.class); }应用初始化时appConfiguration会被反序列化为AutoPilotAppConfig对象。由于 Schema 中required仅声明了active因此即便不提供entityLink也能正常初始化。3.install()/uninstall()—— 安装与卸载Override public void install(String installedBy) { createWorkflow(installedBy); configure(); } Override public void uninstall() { super.uninstall(); deleteWorkflow(); }安装 AutoPilot 时会先创建名为AutoPilotWorkflow的工作流定义再执行configure()按active决定是否恢复运行卸载时则删除该工作流定义。loadWorkflow()会优先从类路径/applications/AutoPilotApplication/collate/AutoPilotWorkflow.json加载工作流定义若不存在则回退到openmetadata目录即仓库中的 AutoPilotWorkflow.json并将工作流的 owner 设置为应用的 Bot 用户。四、entityLink字段的作用按需定向触发active控制的是工作流的全局开关而entityLink则用于“按需定向触发”。在 AutoPilotApp.java 的triggerOnDemand(MapString, Object config)方法中Override public void triggerOnDemand(MapString, Object config) { MapString, Object appConfig JsonUtils.getMap(getApp().getAppConfiguration()); if (config ! null) { appConfig.putAll(config); } validateConfig(appConfig); AutoPilotAppConfig runtimeConfig JsonUtils.readOrConvertValue(appConfig, AutoPilotAppConfig.class); if (runtimeConfig.getActive()) { MapString, Object variables new HashMap(); variables.put( getNamespacedVariableName(GLOBAL_NAMESPACE, RELATED_ENTITY_VARIABLE), runtimeConfig.getEntityLink()); WorkflowHandler.getInstance() .triggerByKey( getTriggerWorkflowId(WORKFLOW_NAME), UUID.randomUUID().toString(), variables); } else { LOG.info({} is not active. Wont be triggered for {}, WORKFLOW_NAME, runtimeConfig.getEntityLink()); } }这段代码揭示了entityLink的完整语义按需触发时调用方传入的config会与现有appConfiguration合并putAll随后统一校验并反序列化为AutoPilotAppConfig若active true则把entityLink写入工作流的全局命名空间变量relatedEntity并通过triggerByKey以随机 UUID 作为执行实例 ID 触发AutoPilotWorkflow若active false仅记录日志“应用未激活不会为 {entityLink} 触发”不执行任何工作流。因此entityLink是 AutoPilot 面向“服务实体”的入口当你需要为一个新服务或指定服务立即触发 AutoPilot 的自动化管线编排时传入该服务的实体链接即可。由于默认应用配置中entityLink为null日常的自动流程主要依赖工作流的触发器trigger机制而非显式传参。五、AutoPilot 工作流默认值下的自动化编排AutoPilot 的核心引擎是治理工作流AutoPilotWorkflow其完整定义位于 AutoPilotWorkflow.json。该工作流的描述为“每当创建新服务时相关管线将自动被创建、部署并运行。”其结构如下触发器noOp类型输出变量relatedEntity即上文注入的实体链接流程编排节点 边ServiceCreatedstartEvent→RunMetadataIngestionautomatedTaskcreateAndRunIngestionPipelineTaskpipelineType metadatawaitForCompletion truetimeoutSeconds 3600元数据管线失败则走向WorkflowFailureendEvent成功则进入FirstGatewayparallelGateway并行分流到三个分支RunDataInsightsApplicationrunAppTask运行DataInsightsApplicationRunLineageIngestionpipelineType lineageRunUsageIngestionpipelineType usage用量管线成功后进入SecondGateway再次并行分流到RunAutoClassificationIngestionpipelineType autoClassificationshouldRun false与RunProfilerIngestionpipelineType profilershouldRun false——注意这两个任务默认不执行shouldRun: false即默认不自动开启数据画像与自动分类各分支汇入SyncGateway后执行RunFinalDataInsightsApplication最终到达WorkflowEnded。这一编排说明AutoPilot 默认帮你完成元数据、血缘、用量三条管线的自动创建、部署与运行并运行数据洞察应用而画像Profiler与自动分类AutoClassification默认处于关闭状态需要你后续按需开启——这与市场描述“以良好的默认值摄取服务元数据之后你可以按需编辑任何配置”完全吻合。六、如何在 OpenMetadata 中使用 AutoPilot基于以上源码事实AutoPilot 的完整使用路径如下安装 AutoPilot从应用市场Marketplace找到 “AutoPilot” 应用并安装。安装过程会触发install()自动完成工作流创建与按active恢复的初始化。开启 / 关闭自动化进入应用配置页修改Active开关勾选active true恢复AutoPilotWorkflow此后新创建的服务会自动触发元数据 / 血缘 / 用量管线编排取消勾选active false挂起AutoPilotWorkflow不再响应新服务创建事件该字段是配置模型中的必填项UI 文案即来自 AutoPilotApplication.md。按需触发通过 API 以entityLink指定目标服务并调用应用的按需触发接口即可绕过事件驱动、对单个服务立即执行 AutoPilot 编排需active true。调整默认管线AutoPilot 生成的管线配置均可事后编辑默认未启用的 Profiler 与 AutoClassification 任务如需开启可修改对应工作流或管线配置。卸载 AutoPilot卸载时将删除AutoPilotWorkflow工作流定义停止其全部自动化行为。七、小结AutoPilot 的配置模型虽然精简核心即active布尔开关配合按需触发的entityLink但背后由 AutoPilotApp.java 与AutoPilotWorkflow工作流共同驱动形成了“事件触发 并行编排 默认值关闭画像/分类”的自动化服务接入机制。理解active的挂起/恢复语义与entityLink的定向触发语义你就能精确控制 AutoPilot 的行为边界让新服务接入元数据的过程真正做到“只定义连接其余交给 AutoPilot”。【免费下载链接】OpenMetadataThe Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agents.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表