From 283ef09f0edbbe4b423ecf9bad924cdade87956d Mon Sep 17 00:00:00 2001 From: Mohit Yadav <105265192+mohityadav766@users.noreply.github.com> Date: Tue, 10 Jun 2025 17:57:57 +0530 Subject: [PATCH] [Fix-21275] Service pipeline lineage not appearing (#21664) * Fix Pipeline Service Lineage * Unique Id issue (cherry picked from commit b8cb82c25c10b8d3f1926223e1b1fbf1a4afd560) --- .../service/jdbi3/LineageRepository.java | 22 +++++++------------ .../service/util/LineageUtil.java | 2 +- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java index f8c0d2b8a97..22b50cd91a1 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java @@ -216,7 +216,7 @@ public class LineageRepository { // Add Service Level Lineage EntityReference fromService = fromEntity.getService(); EntityReference toService = toEntity.getService(); - if (Boolean.FALSE.equals(fromService.getId().equals(toService.getId()))) { + if (!fromService.getId().equals(toService.getId())) { LineageDetails serviceLineageDetails = getOrCreateLineageDetails( fromService.getId(), toService.getId(), entityLineageDetails, childRelationExists); @@ -300,7 +300,8 @@ public class LineageRepository { if (existingRelation != null) { LineageDetails lineageDetails = - JsonUtils.readValue(existingRelation.getJson(), LineageDetails.class); + JsonUtils.readValue(existingRelation.getJson(), LineageDetails.class) + .withPipeline(entityLineageDetails.getPipeline()); if (!childRelationExists) { lineageDetails.withAssetEdges(lineageDetails.getAssetEdges() + 1); } @@ -313,6 +314,7 @@ public class LineageRepository { .withUpdatedAt(entityLineageDetails.getUpdatedAt()) .withUpdatedBy(entityLineageDetails.getUpdatedBy()) .withSource(LineageDetails.Source.CHILD_ASSETS) + .withPipeline(entityLineageDetails.getPipeline()) .withAssetEdges(1); } @@ -372,7 +374,7 @@ public class LineageRepository { EsLineageData lineageData = new EsLineageData() .withDocId(getDocumentIdWithFqn(fromEntity, toEntity, lineageDetails)) - .withDocUniqueId(getDocumentUniqueId(fromEntity, toEntity, lineageDetails)) + .withDocUniqueId(getDocumentUniqueId(fromEntity, toEntity)) .withFromEntity(buildEntityRefLineage(fromEntity)); if (lineageDetails != null) { // Add Pipeline Details @@ -406,16 +408,8 @@ public class LineageRepository { } } - public static String getDocumentUniqueId( - EntityReference fromEntity, EntityReference toEntity, LineageDetails lineageDetails) { - if (lineageDetails != null && !nullOrEmpty(lineageDetails.getPipeline())) { - EntityReference ref = lineageDetails.getPipeline(); - return String.format( - "%s--->%s:%s--->%s", - fromEntity.getId(), ref.getType(), ref.getId().toString(), toEntity.getId().toString()); - } else { - return String.format("%s--->%s", fromEntity.getId().toString(), toEntity.getId().toString()); - } + public static String getDocumentUniqueId(EntityReference fromEntity, EntityReference toEntity) { + return String.format("%s--->%s", fromEntity.getId().toString(), toEntity.getId().toString()); } public static void addPipelineDetails(EsLineageData lineageData, EntityReference pipelineRef) { @@ -1084,7 +1078,7 @@ public class LineageRepository { private void deleteLineageFromSearch( EntityReference fromEntity, EntityReference toEntity, LineageDetails lineageDetails) { - String uniqueValue = getDocumentUniqueId(fromEntity, toEntity, lineageDetails); + String uniqueValue = getDocumentUniqueId(fromEntity, toEntity); searchClient.updateChildren( GLOBAL_SEARCH_ALIAS, new ImmutablePair<>("upstreamLineage.docUniqueId.keyword", uniqueValue), diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/LineageUtil.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/LineageUtil.java index bf467ad2253..e087bd30c84 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/util/LineageUtil.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/LineageUtil.java @@ -115,7 +115,7 @@ public class LineageUtil { private static void deleteLineageFromSearch( EntityReference fromEntity, EntityReference toEntity, LineageDetails lineageDetails) { - String uniqueValue = getDocumentUniqueId(fromEntity, toEntity, lineageDetails); + String uniqueValue = getDocumentUniqueId(fromEntity, toEntity); Entity.getSearchRepository() .getSearchClient() .updateChildren(