用途:把 Dynatrace 经典与 Gen2 基于实体的 DQL 查询及查询模式迁移为基于 Smartscape 的等价写法。该技能仅聚焦面向 Smartscape 的 DQL 迁移,不覆盖资产级迁移工作流。写最终 DQL 前需先加载 dt-dql-essentials 技能,确保符合当前 DQL 语法规则。
三类场景决定迁移策略:其一,按实体条件过滤的批量数据查询(在 timeseries、logs 或 metrics 的 filter 中内联 classicEntitySelector);其二,用实体子查询过滤的批量数据查询(在 in [...]、lookup [...]、join [...] 中 fetch dt.entity.);其三,纯实体列表查询(将 fetch dt.entity. 作为独立或主要结果源)。前两类先加载 references/mass-data-filtering-strategy.md,优先把实体条件解析为原始数据维度,Smartscape 仅作兜底,且不可跳过 fieldsSnapshot 门控与等价性校验;第三类走迁移工作流与实体映射表,smartscapeNodes 是唯一有效路径。第三类还有一个少见子情形:用 classicEntitySelector 过滤 fetch dt.entity.* 返回的实体,仍走 smartscapeNodes,按 mass-data-filtering-strategy.md 步骤 1B 解析后再作为节点过滤条件。
迁移工作流:识别经典输入模式(fetch dt.entity.、classicEntitySelector、belongs_to/runs/instance_of 等关系字段、使用 dt.entity. 的信号或事件查询),确定涉及的经典实体类型,查核心映射表,检查需显式迁移的构造,用 Smartscape 原语重写(smartscapeNodes、smartscapeEdges、traverse、references、getNodeName()、getNodeField()),处理特殊情形,并加载对应参考。核心映射示例:dt.entity.host→dt.smartscape.host/HOST;dt.entity.service→SERVICE;dt.entity.process_group_instance→PROCESS;dt.entity.container_group_instance→CONTAINER;Kubernetes 集群/节点/服务分别为 K8S_CLUSTER/K8S_NODE/K8S_SERVICE;cloud_application 映射到多个工作负载类型;cloud_application_instance→K8S_POD;cloud_application_namespace→K8S_NAMESPACE;application→FRONTEND;aws_lambda_function→AWS_LAMBDA_FUNCTION。
需检查的经典构造:entityName(x) 换成 name 或 getNodeName(x);entityAttr(x,"...") 换成直接节点字段或 getNodeField(x,"...");classicEntitySelector 换成节点过滤加 traverse;信号查询中的 dt.entity.* 换成 dt.smartscape.*;关系字段换成 traverse 或 references(references 仅适用于静态边);经典实体 ID 不可直接复用;affected_entity_ids 与 affected_entity_types 由 smartscape.affected_entities 单条记录数组替代,每条含 id、type、name。
特殊案例:主机组、进程组、容器组均无独立 Smartscape 实体,需用对应实体字段或占位符保留输出形态;经典 ID 不会自动沿用;计划中、缺失或未计划的映射需先查完整映射表。可按实体族加载 host、service、process、container、kubernetes、cloud-application 等指南。参考文件包括 mass-data-filtering-strategy、auto-tagging-field-mapping、entity-selector-predicates、migration-workflow、type-mappings、dql-function-migration、relationship-mappings、special-cases、quick-reference、examples。具体功能、收费与安装方式暂未提供。