From 2f679a9a48875567adad35c33657abbb9209c635 Mon Sep 17 00:00:00 2001 From: Teddy Date: Fri, 29 Dec 2023 08:05:36 +0100 Subject: [PATCH] FIXES #14294: return null if no aggregation value is present (#14514) * fix: return null is no aggregation value is present * fix: added Optional typing * style: java linting * fix: use Optional type hint * style: java linting --- ...AggregatedUnusedAssetsCountAggregator.java | 3 ++- .../AggregatedUnusedAssetsSizeAggregator.java | 3 ++- ...atedUsedvsUnusedAssetsCountAggregator.java | 22 +++++++--------- ...gatedUsedvsUnusedAssetsSizeAggregator.java | 22 +++++++--------- .../EntitiesDescriptionAggregator.java | 14 +++++++---- .../dataInsight/EntitiesOwnerAggregator.java | 13 +++++++--- .../MostActiveUsersAggregator.java | 24 ++++++++++++------ .../MostViewedEntitiesAggregator.java | 6 +++-- .../PageViewsByEntitiesAggregator.java | 6 +++-- .../ServicesDescriptionAggregator.java | 14 +++++++---- .../dataInsight/ServicesOwnerAggregator.java | 13 +++++++--- .../dataInsight/TotalEntitiesAggregator.java | 8 +++--- .../TotalEntitiesByTierAggregator.java | 9 ++++--- ...AggregatedUnusedAssetsCountAggregator.java | 5 ++-- ...hAggregatedUnusedAssetsSizeAggregator.java | 5 ++-- ...atedUsedvsUnusedAssetsCountAggregator.java | 5 ++-- ...gatedUsedvsUnusedAssetsSizeAggregator.java | 5 ++-- ...icSearchEntitiesDescriptionAggregator.java | 5 ++-- .../ElasticSearchEntitiesOwnerAggregator.java | 5 ++-- ...lasticSearchMostActiveUsersAggregator.java | 9 ++++--- ...ticSearchMostViewedEntitiesAggregator.java | 5 ++-- ...icSearchPageViewsByEntitiesAggregator.java | 5 ++-- ...icSearchServicesDescriptionAggregator.java | 5 ++-- .../ElasticSearchServicesOwnerAggregator.java | 5 ++-- .../ElasticSearchTotalEntitiesAggregator.java | 5 ++-- ...icSearchTotalEntitiesByTierAggregator.java | 5 ++-- ...AggregatedUnusedAssetsCountAggregator.java | 5 ++-- ...hAggregatedUnusedAssetsSizeAggregator.java | 5 ++-- ...atedUsedvsUnusedAssetsCountAggregator.java | 5 ++-- ...gatedUsedvsUnusedAssetsSizeAggregator.java | 5 ++-- ...enSearchEntitiesDescriptionAggregator.java | 5 ++-- .../OpenSearchEntitiesOwnerAggregator.java | 5 ++-- .../OpenSearchMostActiveUsersAggregator.java | 9 ++++--- ...penSearchMostViewedEntitiesAggregator.java | 5 ++-- ...enSearchPageViewsByEntitiesAggregator.java | 5 ++-- ...enSearchServicesDescriptionAggregator.java | 5 ++-- .../OpenSearchServicesOwnerAggregator.java | 5 ++-- .../OpenSearchTotalEntitiesAggregator.java | 5 ++-- ...enSearchTotalEntitiesByTierAggregator.java | 5 ++-- .../aggregatedCostAnalysisReportData.json | 25 +++++++++++++++---- 40 files changed, 196 insertions(+), 124 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUnusedAssetsCountAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUnusedAssetsCountAggregator.java index 2a290c07098..3b87e4d3d49 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUnusedAssetsCountAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUnusedAssetsCountAggregator.java @@ -3,6 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.analytics.DataAssetValues; import org.openmetadata.schema.dataInsight.type.AggregatedUnusedAssetsCount; @@ -62,5 +63,5 @@ public abstract class AggregatedUnusedAssetsCountAggregator protected abstract S getAggregations(B bucket, String key); - protected abstract Double getValue(S aggregations); + protected abstract Optional getValue(S aggregations); } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUnusedAssetsSizeAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUnusedAssetsSizeAggregator.java index e2084650a77..65f7f05dddd 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUnusedAssetsSizeAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUnusedAssetsSizeAggregator.java @@ -3,6 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.analytics.DataAssetValues; import org.openmetadata.schema.dataInsight.type.AggregatedUnusedAssetsSize; @@ -62,5 +63,5 @@ public abstract class AggregatedUnusedAssetsSizeAggregator protected abstract S getAggregations(B bucket, String key); - protected abstract Double getValue(S aggregations); + protected abstract Optional getValue(S aggregations); } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUsedvsUnusedAssetsCountAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUsedvsUnusedAssetsCountAggregator.java index 903fc223a40..d618495b86f 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUsedvsUnusedAssetsCountAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUsedvsUnusedAssetsCountAggregator.java @@ -3,7 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; -import java.util.Objects; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.AggregatedUsedVsUnusedAssetsCount; public abstract class AggregatedUsedvsUnusedAssetsCountAggregator @@ -23,21 +23,17 @@ public abstract class AggregatedUsedvsUnusedAssetsCountAggregator Long timestamp = convertDatTimeStringToTimestamp(dateTimeString); S totalUnused = getAggregations(bucket, "totalUnused"); S totalUsed = getAggregations(bucket, "totalUsed"); - Double used = Objects.requireNonNullElse(getValue(totalUsed), 0.0); - Double unused = Objects.requireNonNullElse(getValue(totalUnused), 0.0); - Double total = used + unused; - double usedPercentage = 0.0; - double unusedPercentage = 0.0; - if (total != 0.0) { - usedPercentage = used / total; - unusedPercentage = unused / total; - } + Optional used = getValue(totalUsed); + Optional unused = getValue(totalUnused); + Optional total = used.flatMap(u -> unused.map(uu -> u + uu)); + Double usedPercentage = used.flatMap(u -> total.map(t -> u / t)).orElse(null); + Double unusedPercentage = unused.flatMap(uu -> total.map(t -> uu / t)).orElse(null); data.add( new AggregatedUsedVsUnusedAssetsCount() .withTimestamp(timestamp) - .withUnused(unused) + .withUnused(unused.orElse(null)) .withUnusedPercentage(unusedPercentage) - .withUsed(used) + .withUsed(used.orElse(null)) .withUsedPercentage(usedPercentage)); } return data; @@ -51,5 +47,5 @@ public abstract class AggregatedUsedvsUnusedAssetsCountAggregator protected abstract S getAggregations(B bucket, String key); - protected abstract Double getValue(S aggregations); + protected abstract Optional getValue(S aggregations); } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUsedvsUnusedAssetsSizeAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUsedvsUnusedAssetsSizeAggregator.java index 1d6d9433972..45c25b1fbb5 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUsedvsUnusedAssetsSizeAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/AggregatedUsedvsUnusedAssetsSizeAggregator.java @@ -3,7 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; -import java.util.Objects; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.AggregatedUsedVsUnusedAssetsSize; public abstract class AggregatedUsedvsUnusedAssetsSizeAggregator @@ -23,21 +23,17 @@ public abstract class AggregatedUsedvsUnusedAssetsSizeAggregator Long timestamp = convertDatTimeStringToTimestamp(dateTimeString); S totalUnused = getAggregations(bucket, "totalUnused"); S totalUsed = getAggregations(bucket, "totalUsed"); - Double used = Objects.requireNonNullElse(getValue(totalUsed), 0.0); - Double unused = Objects.requireNonNullElse(getValue(totalUnused), 0.0); - Double total = used + unused; - double usedPercentage = 0.0; - double unusedPercentage = 0.0; - if (total != 0.0) { - usedPercentage = used / total; - unusedPercentage = unused / total; - } + Optional used = getValue(totalUsed); + Optional unused = getValue(totalUnused); + Optional total = used.flatMap(u -> unused.map(uu -> u + uu)); + Double usedPercentage = used.flatMap(u -> total.map(t -> u / t)).orElse(null); + Double unusedPercentage = unused.flatMap(uu -> total.map(t -> uu / t)).orElse(null); data.add( new AggregatedUsedVsUnusedAssetsSize() .withTimestamp(timestamp) - .withUnused(unused) + .withUnused(unused.orElse(null)) .withUnusedPercentage(unusedPercentage) - .withUsed(used) + .withUsed(used.orElse(null)) .withUsedPercentage(usedPercentage)); } return data; @@ -51,5 +47,5 @@ public abstract class AggregatedUsedvsUnusedAssetsSizeAggregator protected abstract S getAggregations(B bucket, String key); - protected abstract Double getValue(S aggregations); + protected abstract Optional getValue(S aggregations); } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/EntitiesDescriptionAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/EntitiesDescriptionAggregator.java index e464769af28..94c70006b30 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/EntitiesDescriptionAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/EntitiesDescriptionAggregator.java @@ -3,6 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.PercentageOfEntitiesWithDescriptionByType; public abstract class EntitiesDescriptionAggregator @@ -26,15 +27,18 @@ public abstract class EntitiesDescriptionAggregator S sumCompletedDescriptions = getAggregations(entityTypeBucket, COMPLETED_DESCRIPTION_FRACTION); S sumEntityCount = getAggregations(entityTypeBucket, ENTITY_COUNT); + Optional entityCount = getValue(sumEntityCount); + Optional completedDescription = getValue(sumCompletedDescriptions); + Double completedDescriptionFraction = + completedDescription.flatMap(cd -> entityCount.map(ec -> cd / ec)).orElse(null); data.add( new PercentageOfEntitiesWithDescriptionByType() .withTimestamp(timestamp) .withEntityType(entityType) - .withEntityCount(getValue(sumEntityCount)) - .withCompletedDescription(getValue(sumCompletedDescriptions)) - .withCompletedDescriptionFraction( - getValue(sumCompletedDescriptions) / getValue(sumEntityCount))); + .withEntityCount(entityCount.orElse(null)) + .withCompletedDescription(completedDescription.orElse(null)) + .withCompletedDescriptionFraction(completedDescriptionFraction)); } } return data; @@ -50,5 +54,5 @@ public abstract class EntitiesDescriptionAggregator protected abstract S getAggregations(B bucket, String key); - protected abstract Double getValue(S aggregations); + protected abstract Optional getValue(S aggregations); } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/EntitiesOwnerAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/EntitiesOwnerAggregator.java index 33d6bb3add2..a7d0a838fb1 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/EntitiesOwnerAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/EntitiesOwnerAggregator.java @@ -3,6 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.PercentageOfEntitiesWithOwnerByType; public abstract class EntitiesOwnerAggregator @@ -25,20 +26,24 @@ public abstract class EntitiesOwnerAggregator String entityType = getKeyAsString(entityTypeBucket); S sumHasOwner = getAggregations(entityTypeBucket, HAS_OWNER_FRACTION); S sumEntityCount = getAggregations(entityTypeBucket, ENTITY_COUNT); + Optional entityCount = getValue(sumEntityCount); + Optional hasOwner = getValue(sumHasOwner); + Double hasOwnerFraction = + hasOwner.flatMap(ho -> entityCount.map(ec -> ho / ec)).orElse(null); data.add( new PercentageOfEntitiesWithOwnerByType() .withTimestamp(timestamp) .withEntityType(entityType) - .withEntityCount(getValue(sumEntityCount)) - .withHasOwner(getValue(sumHasOwner)) - .withHasOwnerFraction(getValue(sumHasOwner) / getValue(sumEntityCount))); + .withEntityCount(entityCount.orElse(null)) + .withHasOwner(hasOwner.orElse(null)) + .withHasOwnerFraction(hasOwnerFraction)); } } return data; } - protected abstract Double getValue(S sumEntityCount); + protected abstract Optional getValue(S sumEntityCount); protected abstract S getAggregations(B entityTypeBucket, String key); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/MostActiveUsersAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/MostActiveUsersAggregator.java index 8a45ce6cd3d..84f81e14c12 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/MostActiveUsersAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/MostActiveUsersAggregator.java @@ -2,6 +2,7 @@ package org.openmetadata.service.dataInsight; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.MostActiveUsers; public abstract class MostActiveUsersAggregator @@ -28,23 +29,32 @@ public abstract class MostActiveUsersAggregator // we'll assign the first team in the list if user belongs to multiple teams team = getKeyAsString(getBuckets(teamBucket).get(0)); } + Optional lastSessionOptional = getMaxValue(lastSession); + Optional sumPageViewsOptional = getSumValue(sumPageViews); + Optional sumSessionDurationOptional = getSumValue(sumSessionDuration); + Optional sumSessionOptional = getSumValue(sumSession); + Double avgSessionDuration = + sumSessionDurationOptional + .flatMap(s -> sumSessionOptional.map(ss -> s / ss)) + .orElse(null); + data.add( new MostActiveUsers() .withUserName(userName) - .withLastSession(getMaxValue(lastSession)) - .withPageViews(getSumValue(sumPageViews)) - .withSessionDuration(getSumValue(sumSessionDuration)) - .withSessions(getSumValue(sumSession)) + .withLastSession(lastSessionOptional.orElse(null)) + .withPageViews(sumPageViewsOptional.orElse(null)) + .withSessionDuration(sumSessionDurationOptional.orElse(null)) + .withSessions(sumSessionOptional.orElse(null)) .withTeam(team) - .withAvgSessionDuration(getSumValue(sumSessionDuration) / getSumValue(sumSession))); + .withAvgSessionDuration(avgSessionDuration)); } return data; } - protected abstract Double getSumValue(S key); + protected abstract Optional getSumValue(S key); - protected abstract Long getMaxValue(X key); + protected abstract Optional getMaxValue(X key); protected abstract String getKeyAsString(B bucket); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/MostViewedEntitiesAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/MostViewedEntitiesAggregator.java index 108f811c079..a3f670dd0a4 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/MostViewedEntitiesAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/MostViewedEntitiesAggregator.java @@ -2,6 +2,7 @@ package org.openmetadata.service.dataInsight; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.MostViewedEntities; public abstract class MostViewedEntitiesAggregator @@ -25,6 +26,7 @@ public abstract class MostViewedEntitiesAggregator String owner = getFirstValueFromBucketOrNull(ownerBucket); String entityType = getFirstValueFromBucketOrNull(entityTypeBucket); String entityHref = getFirstValueFromBucketOrNull(entityHrefBucket); + Optional pageViews = getValue(sumPageViews); data.add( new MostViewedEntities() @@ -32,13 +34,13 @@ public abstract class MostViewedEntitiesAggregator .withOwner(owner) .withEntityType(entityType) .withEntityHref(entityHref) - .withPageViews(getValue(sumPageViews))); + .withPageViews(pageViews.orElse(null))); } return data; } - protected abstract Double getValue(S sumPageViews); + protected abstract Optional getValue(S sumPageViews); protected abstract M getBucketAggregation(B bucket, String key); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/PageViewsByEntitiesAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/PageViewsByEntitiesAggregator.java index b19abbc17d8..c9a61a2a03f 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/PageViewsByEntitiesAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/PageViewsByEntitiesAggregator.java @@ -3,6 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.PageViewsByEntities; public abstract class PageViewsByEntitiesAggregator @@ -24,18 +25,19 @@ public abstract class PageViewsByEntitiesAggregator for (B entityTypeBucket : getBuckets(entityTypeBuckets)) { String entityType = getKeyAsString(entityTypeBucket); S sumPageViews = getSumAggregations(entityTypeBucket, "pageViews"); + Optional pageViews = getValue(sumPageViews); data.add( new PageViewsByEntities() .withEntityType(entityType) .withTimestamp(timestamp) - .withPageViews(getValue(sumPageViews))); + .withPageViews(pageViews.orElse(null))); } } return data; } - protected abstract Double getValue(S key); + protected abstract Optional getValue(S key); protected abstract S getSumAggregations(B bucket, String key); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/ServicesDescriptionAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/ServicesDescriptionAggregator.java index 2853be77e56..bf0aa9861e8 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/ServicesDescriptionAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/ServicesDescriptionAggregator.java @@ -3,6 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.PercentageOfServicesWithDescription; public abstract class ServicesDescriptionAggregator @@ -26,21 +27,24 @@ public abstract class ServicesDescriptionAggregator S sumCompletedDescriptions = getSumAggregations(serviceBucket, COMPLETED_DESCRIPTION_FRACTION); S sumEntityCount = getSumAggregations(serviceBucket, ENTITY_COUNT); + Optional completedDescription = getValue(sumCompletedDescriptions); + Optional entityCount = getValue(sumEntityCount); + Double completedDescriptionFraction = + completedDescription.flatMap(cdf -> entityCount.map(ec -> cdf / ec)).orElse(null); data.add( new PercentageOfServicesWithDescription() .withTimestamp(timestamp) .withServiceName(serviceName) - .withEntityCount(getValue(sumEntityCount)) - .withCompletedDescription(getValue(sumCompletedDescriptions)) - .withCompletedDescriptionFraction( - getValue(sumCompletedDescriptions) / getValue(sumEntityCount))); + .withEntityCount(entityCount.orElse(null)) + .withCompletedDescription(completedDescription.orElse(null)) + .withCompletedDescriptionFraction(completedDescriptionFraction)); } } return data; } - protected abstract Double getValue(S key); + protected abstract Optional getValue(S key); protected abstract S getSumAggregations(B bucket, String key); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/ServicesOwnerAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/ServicesOwnerAggregator.java index ab3f7e92765..db55647561f 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/ServicesOwnerAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/ServicesOwnerAggregator.java @@ -3,6 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.PercentageOfServicesWithOwner; public abstract class ServicesOwnerAggregator @@ -25,20 +26,24 @@ public abstract class ServicesOwnerAggregator String serviceName = getKeyAsString(serviceBucket); S sumHasOwner = getSumAggregations(serviceBucket, HAS_OWNER_FRACTION); S sumEntityCount = getSumAggregations(serviceBucket, ENTITY_COUNT); + Optional entityCount = getValue(sumEntityCount); + Optional hasOwner = getValue(sumHasOwner); + Double hasOwnerFraction = + hasOwner.flatMap(hof -> entityCount.map(ec -> hof / ec)).orElse(null); data.add( new PercentageOfServicesWithOwner() .withTimestamp(timestamp) .withServiceName(serviceName) - .withEntityCount(getValue(sumEntityCount)) - .withHasOwner(getValue(sumHasOwner)) - .withHasOwnerFraction(getValue(sumHasOwner) / getValue(sumEntityCount))); + .withEntityCount(entityCount.orElse(null)) + .withHasOwner(hasOwner.orElse(null)) + .withHasOwnerFraction(hasOwnerFraction)); } } return data; } - protected abstract Double getValue(S key); + protected abstract Optional getValue(S key); protected abstract S getSumAggregations(B bucket, String key); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/TotalEntitiesAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/TotalEntitiesAggregator.java index a796d186c8e..92ae7d9bedc 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/TotalEntitiesAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/TotalEntitiesAggregator.java @@ -3,6 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.TotalEntitiesByType; public abstract class TotalEntitiesAggregator @@ -26,13 +27,14 @@ public abstract class TotalEntitiesAggregator for (B entityTypeBucket : getBuckets(entityTypeBuckets)) { String entityType = getKeyAsString(entityTypeBucket); S sumEntityCount = getSumAggregations(entityTypeBucket, ENTITY_COUNT); + Optional entityCountOptional = getValue(sumEntityCount); data.add( new TotalEntitiesByType() .withTimestamp(timestamp) .withEntityType(entityType) - .withEntityCount(getValue(sumEntityCount))); - entityCount.add(getValue(sumEntityCount)); + .withEntityCount(entityCountOptional.orElse(null))); + entityCount.add(entityCountOptional.orElse(0.0)); } } @@ -46,7 +48,7 @@ public abstract class TotalEntitiesAggregator return data; } - protected abstract Double getValue(S key); + protected abstract Optional getValue(S key); protected abstract S getSumAggregations(B bucket, String key); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/TotalEntitiesByTierAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/TotalEntitiesByTierAggregator.java index f63b6fc274e..f444d84ebc2 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/TotalEntitiesByTierAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/dataInsight/TotalEntitiesByTierAggregator.java @@ -3,6 +3,7 @@ package org.openmetadata.service.dataInsight; import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.openmetadata.schema.dataInsight.type.TotalEntitiesByTier; public abstract class TotalEntitiesByTierAggregator @@ -27,12 +28,14 @@ public abstract class TotalEntitiesByTierAggregator for (B entityTierBucket : getBuckets(entityTierBuckets)) { String entityTier = getKeyAsString(entityTierBucket); S sumEntityCount = getSumAggregations(entityTierBucket, ENTITY_COUNT); + Optional entityCount = getValue(sumEntityCount); + timestampData.add( new TotalEntitiesByTier() .withTimestamp(timestamp) .withEntityTier(entityTier) - .withEntityCount(getValue(sumEntityCount))); - totalEntityCount = totalEntityCount + getValue(sumEntityCount); + .withEntityCount(entityCount.orElse(null))); + totalEntityCount = totalEntityCount + entityCount.orElse(0.0); } for (TotalEntitiesByTier el : timestampData) { if (totalEntityCount != 0.0) { @@ -46,7 +49,7 @@ public abstract class TotalEntitiesByTierAggregator return data; } - protected abstract Double getValue(S key); + protected abstract Optional getValue(S key); protected abstract S getSumAggregations(B bucket, String key); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUnusedAssetsCountAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUnusedAssetsCountAggregator.java index 42bd911f240..b0c4d3ccfde 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUnusedAssetsCountAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUnusedAssetsCountAggregator.java @@ -5,6 +5,7 @@ import es.org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import es.org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Bucket; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.AggregatedUnusedAssetsCountAggregator; public class ElasticSearchAggregatedUnusedAssetsCountAggregator @@ -34,7 +35,7 @@ public class ElasticSearchAggregatedUnusedAssetsCountAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUnusedAssetsSizeAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUnusedAssetsSizeAggregator.java index df2b184eb73..a8d7c955cb2 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUnusedAssetsSizeAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUnusedAssetsSizeAggregator.java @@ -5,6 +5,7 @@ import es.org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import es.org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Bucket; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.AggregatedUnusedAssetsSizeAggregator; public class ElasticSearchAggregatedUnusedAssetsSizeAggregator @@ -34,7 +35,7 @@ public class ElasticSearchAggregatedUnusedAssetsSizeAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUsedvsUnusedAssetsCountAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUsedvsUnusedAssetsCountAggregator.java index f3406d0541d..c45bf9ed315 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUsedvsUnusedAssetsCountAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUsedvsUnusedAssetsCountAggregator.java @@ -5,6 +5,7 @@ import es.org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import es.org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Bucket; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.AggregatedUsedvsUnusedAssetsCountAggregator; public class ElasticSearchAggregatedUsedvsUnusedAssetsCountAggregator @@ -34,7 +35,7 @@ public class ElasticSearchAggregatedUsedvsUnusedAssetsCountAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUsedvsUnusedAssetsSizeAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUsedvsUnusedAssetsSizeAggregator.java index dddc6f97bfa..02247177715 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUsedvsUnusedAssetsSizeAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchAggregatedUsedvsUnusedAssetsSizeAggregator.java @@ -5,6 +5,7 @@ import es.org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import es.org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Bucket; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.AggregatedUsedvsUnusedAssetsSizeAggregator; public class ElasticSearchAggregatedUsedvsUnusedAssetsSizeAggregator @@ -34,7 +35,7 @@ public class ElasticSearchAggregatedUsedvsUnusedAssetsSizeAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchEntitiesDescriptionAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchEntitiesDescriptionAggregator.java index 803bc5f771b..046b9e80c72 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchEntitiesDescriptionAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchEntitiesDescriptionAggregator.java @@ -4,6 +4,7 @@ import es.org.elasticsearch.search.aggregations.Aggregations; import es.org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.EntitiesDescriptionAggregator; public class ElasticSearchEntitiesDescriptionAggregator @@ -42,7 +43,7 @@ public class ElasticSearchEntitiesDescriptionAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchEntitiesOwnerAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchEntitiesOwnerAggregator.java index b01f18a947a..b5ba28df617 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchEntitiesOwnerAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchEntitiesOwnerAggregator.java @@ -4,6 +4,7 @@ import es.org.elasticsearch.search.aggregations.Aggregations; import es.org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.EntitiesOwnerAggregator; public class ElasticSearchEntitiesOwnerAggregator @@ -15,8 +16,8 @@ public class ElasticSearchEntitiesOwnerAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchMostActiveUsersAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchMostActiveUsersAggregator.java index 4c41cb9f445..447042f31a2 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchMostActiveUsersAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchMostActiveUsersAggregator.java @@ -5,6 +5,7 @@ import es.org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import es.org.elasticsearch.search.aggregations.metrics.Max; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.MostActiveUsersAggregator; public class ElasticSearchMostActiveUsersAggregator @@ -16,13 +17,13 @@ public class ElasticSearchMostActiveUsersAggregator } @Override - protected Double getSumValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getSumValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override - protected Long getMaxValue(Max key) { - return key != null ? (long) key.getValue() : 0; + protected Optional getMaxValue(Max key) { + return Optional.ofNullable(key != null ? (long) key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchMostViewedEntitiesAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchMostViewedEntitiesAggregator.java index 0555451912d..1f973b5d761 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchMostViewedEntitiesAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchMostViewedEntitiesAggregator.java @@ -4,6 +4,7 @@ import es.org.elasticsearch.search.aggregations.Aggregations; import es.org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.MostViewedEntitiesAggregator; public class ElasticSearchMostViewedEntitiesAggregator @@ -14,8 +15,8 @@ public class ElasticSearchMostViewedEntitiesAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchPageViewsByEntitiesAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchPageViewsByEntitiesAggregator.java index 3ffaccdf238..5c80fd300d3 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchPageViewsByEntitiesAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchPageViewsByEntitiesAggregator.java @@ -4,6 +4,7 @@ import es.org.elasticsearch.search.aggregations.Aggregations; import es.org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.PageViewsByEntitiesAggregator; public class ElasticSearchPageViewsByEntitiesAggregator @@ -15,8 +16,8 @@ public class ElasticSearchPageViewsByEntitiesAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchServicesDescriptionAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchServicesDescriptionAggregator.java index 46c3551bfbb..ce933a349b8 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchServicesDescriptionAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchServicesDescriptionAggregator.java @@ -4,6 +4,7 @@ import es.org.elasticsearch.search.aggregations.Aggregations; import es.org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.ServicesDescriptionAggregator; public class ElasticSearchServicesDescriptionAggregator @@ -14,8 +15,8 @@ public class ElasticSearchServicesDescriptionAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchServicesOwnerAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchServicesOwnerAggregator.java index 6cbbfb5dd41..f7324b09230 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchServicesOwnerAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchServicesOwnerAggregator.java @@ -4,6 +4,7 @@ import es.org.elasticsearch.search.aggregations.Aggregations; import es.org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.ServicesOwnerAggregator; public class ElasticSearchServicesOwnerAggregator @@ -14,8 +15,8 @@ public class ElasticSearchServicesOwnerAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchTotalEntitiesAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchTotalEntitiesAggregator.java index 305bee6212d..24e0e44e45c 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchTotalEntitiesAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchTotalEntitiesAggregator.java @@ -4,6 +4,7 @@ import es.org.elasticsearch.search.aggregations.Aggregations; import es.org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.TotalEntitiesAggregator; public class ElasticSearchTotalEntitiesAggregator @@ -14,8 +15,8 @@ public class ElasticSearchTotalEntitiesAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchTotalEntitiesByTierAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchTotalEntitiesByTierAggregator.java index 6778d4bf3ae..cf8edaa32d7 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchTotalEntitiesByTierAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/dataInsightAggregators/ElasticSearchTotalEntitiesByTierAggregator.java @@ -4,6 +4,7 @@ import es.org.elasticsearch.search.aggregations.Aggregations; import es.org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; import es.org.elasticsearch.search.aggregations.metrics.Sum; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.TotalEntitiesByTierAggregator; public class ElasticSearchTotalEntitiesByTierAggregator @@ -14,8 +15,8 @@ public class ElasticSearchTotalEntitiesByTierAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUnusedAssetsCountAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUnusedAssetsCountAggregator.java index 44e92ebfa58..3b22c2fe4e6 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUnusedAssetsCountAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUnusedAssetsCountAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.AggregatedUnusedAssetsCountAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.histogram.Histogram; @@ -34,7 +35,7 @@ public class OpenSearchAggregatedUnusedAssetsCountAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUnusedAssetsSizeAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUnusedAssetsSizeAggregator.java index f69883e065f..aca9e656c64 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUnusedAssetsSizeAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUnusedAssetsSizeAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.AggregatedUnusedAssetsSizeAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.histogram.Histogram; @@ -34,7 +35,7 @@ public class OpenSearchAggregatedUnusedAssetsSizeAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUsedvsUnusedAssetsCountAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUsedvsUnusedAssetsCountAggregator.java index dcce4386453..2e7d32efddd 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUsedvsUnusedAssetsCountAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUsedvsUnusedAssetsCountAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.AggregatedUsedvsUnusedAssetsCountAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.histogram.Histogram; @@ -34,7 +35,7 @@ public class OpenSearchAggregatedUsedvsUnusedAssetsCountAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUsedvsUnusedAssetsSizeAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUsedvsUnusedAssetsSizeAggregator.java index 239ac065e02..53dbe329618 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUsedvsUnusedAssetsSizeAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchAggregatedUsedvsUnusedAssetsSizeAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.AggregatedUsedvsUnusedAssetsSizeAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.histogram.Histogram; @@ -34,7 +35,7 @@ public class OpenSearchAggregatedUsedvsUnusedAssetsSizeAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchEntitiesDescriptionAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchEntitiesDescriptionAggregator.java index e50c6cfed10..b047c2558e5 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchEntitiesDescriptionAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchEntitiesDescriptionAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.EntitiesDescriptionAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.MultiBucketsAggregation; @@ -42,7 +43,7 @@ public class OpenSearchEntitiesDescriptionAggregator } @Override - protected Double getValue(Sum aggregations) { - return aggregations != null ? aggregations.getValue() : 0.0; + protected Optional getValue(Sum aggregations) { + return Optional.ofNullable(aggregations != null ? aggregations.getValue() : null); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchEntitiesOwnerAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchEntitiesOwnerAggregator.java index 0cce287ac47..8375281f93c 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchEntitiesOwnerAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchEntitiesOwnerAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.EntitiesOwnerAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.MultiBucketsAggregation; @@ -15,8 +16,8 @@ public class OpenSearchEntitiesOwnerAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchMostActiveUsersAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchMostActiveUsersAggregator.java index f4f01362d28..51893b92684 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchMostActiveUsersAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchMostActiveUsersAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.MostActiveUsersAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.MultiBucketsAggregation; @@ -16,13 +17,13 @@ public class OpenSearchMostActiveUsersAggregator } @Override - protected Double getSumValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getSumValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override - protected Long getMaxValue(Max key) { - return key != null ? (long) key.getValue() : 0; + protected Optional getMaxValue(Max key) { + return Optional.ofNullable(key != null ? (long) key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchMostViewedEntitiesAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchMostViewedEntitiesAggregator.java index ca5ccdf0cd7..66e5b681c94 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchMostViewedEntitiesAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchMostViewedEntitiesAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.MostViewedEntitiesAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.MultiBucketsAggregation; @@ -14,8 +15,8 @@ public class OpenSearchMostViewedEntitiesAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchPageViewsByEntitiesAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchPageViewsByEntitiesAggregator.java index b7bccee9534..1d232967c09 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchPageViewsByEntitiesAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchPageViewsByEntitiesAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.PageViewsByEntitiesAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.MultiBucketsAggregation; @@ -15,8 +16,8 @@ public class OpenSearchPageViewsByEntitiesAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchServicesDescriptionAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchServicesDescriptionAggregator.java index 376e5c4dac9..19b00ccdcc8 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchServicesDescriptionAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchServicesDescriptionAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.ServicesDescriptionAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.MultiBucketsAggregation; @@ -14,8 +15,8 @@ public class OpenSearchServicesDescriptionAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchServicesOwnerAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchServicesOwnerAggregator.java index dbd2df5efb7..46b8f5de200 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchServicesOwnerAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchServicesOwnerAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.ServicesOwnerAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.MultiBucketsAggregation; @@ -14,8 +15,8 @@ public class OpenSearchServicesOwnerAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchTotalEntitiesAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchTotalEntitiesAggregator.java index 918c542daec..9b732a3d49c 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchTotalEntitiesAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchTotalEntitiesAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.TotalEntitiesAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.MultiBucketsAggregation; @@ -14,8 +15,8 @@ public class OpenSearchTotalEntitiesAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchTotalEntitiesByTierAggregator.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchTotalEntitiesByTierAggregator.java index 21c3f8a96b0..85d6a73d4c4 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchTotalEntitiesByTierAggregator.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/dataInsightAggregator/OpenSearchTotalEntitiesByTierAggregator.java @@ -1,6 +1,7 @@ package org.openmetadata.service.search.opensearch.dataInsightAggregator; import java.util.List; +import java.util.Optional; import org.openmetadata.service.dataInsight.TotalEntitiesByTierAggregator; import os.org.opensearch.search.aggregations.Aggregations; import os.org.opensearch.search.aggregations.bucket.MultiBucketsAggregation; @@ -14,8 +15,8 @@ public class OpenSearchTotalEntitiesByTierAggregator } @Override - protected Double getValue(Sum key) { - return key != null ? key.getValue() : 0.0; + protected Optional getValue(Sum key) { + return Optional.ofNullable(key != null ? key.getValue() : null); } @Override diff --git a/openmetadata-spec/src/main/resources/json/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.json b/openmetadata-spec/src/main/resources/json/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.json index bef5a113c2d..62aeb25b71a 100644 --- a/openmetadata-spec/src/main/resources/json/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.json +++ b/openmetadata-spec/src/main/resources/json/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.json @@ -13,23 +13,38 @@ "properties": { "threeDays": { "description": "Data Asset Count or Size for 3 days", - "type": "number" + "anyOf": [ + {"type": "number"}, + {"type": "null"} + ] }, "sevenDays": { "description": "Data Asset Count or Size for 7 days", - "type": "number" + "anyOf": [ + {"type": "number"}, + {"type": "null"} + ] }, "fourteenDays": { "description": "Data Asset Count or Size for 14 days", - "type": "number" + "anyOf": [ + {"type": "number"}, + {"type": "null"} + ] }, "thirtyDays": { "description": "Data Asset Count or Size for 30 days", - "type": "number" + "anyOf": [ + {"type": "number"}, + {"type": "null"} + ] }, "sixtyDays": { "description": "Data Asset Count or Size for 60 days", - "type": "number" + "anyOf": [ + {"type": "number"}, + {"type": "null"} + ] } }, "additionalProperties": false