mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-24 17:59:52 +00:00
Add a Workaround for the Tier Calculation on DataInsightsReport (#17555)
This commit is contained in:
parent
336b14231f
commit
d0c08fb6e6
@ -345,7 +345,7 @@ public class DataInsightsReportApp extends AbstractNativeApplication {
|
||||
// Get total Assets Data
|
||||
// This assumes that on a particular date the correct count per entities are given
|
||||
Map<String, Double> dateWithCount =
|
||||
getDateMapWithCountFromChart(
|
||||
getDateMapWithCountFromTierChart(
|
||||
"total_data_assets_by_tier", timeConfig.startTime(), timeConfig.endTime(), team);
|
||||
|
||||
Double previousHasTier = dateWithCount.getOrDefault(timeConfig.startDay(), 0D);
|
||||
@ -388,6 +388,38 @@ public class DataInsightsReportApp extends AbstractNativeApplication {
|
||||
dateMap);
|
||||
}
|
||||
|
||||
// Hack: Because on Data Insights when a Tier is not present is set as 'NoTier', this calculation
|
||||
// will return 100% of the entities
|
||||
// with Tier.
|
||||
// This should be fixed by using the .missing() attribute for ElasticSearch aggregations and
|
||||
// should be planned for 1.6.
|
||||
// Meanwhile this is a workaround.
|
||||
private Map<String, Double> getDateMapWithCountFromTierChart(
|
||||
String chartName, Long startTime, Long endTime, String team) throws IOException {
|
||||
String filter = prepareTeamFilter(team);
|
||||
Map<String, DataInsightCustomChartResultList> systemChartMap =
|
||||
systemChartRepository.listChartData(chartName, startTime, endTime, filter);
|
||||
return systemChartMap.get(chartName).getResults().stream()
|
||||
.filter(
|
||||
result ->
|
||||
!result
|
||||
.getGroup()
|
||||
.equals(
|
||||
"NoTier")) // Workaround to remove Assets without Tiers from the equation
|
||||
.map(
|
||||
result -> {
|
||||
Map<String, Double> dayCount = new HashMap<>();
|
||||
dayCount.put(
|
||||
TimestampUtils.timestampToString(result.getDay().longValue(), "dd"),
|
||||
result.getCount());
|
||||
return dayCount;
|
||||
})
|
||||
.flatMap(map -> map.entrySet().stream())
|
||||
.collect(
|
||||
Collectors.groupingBy(
|
||||
Map.Entry::getKey, Collectors.summingDouble(Map.Entry::getValue)));
|
||||
}
|
||||
|
||||
private Map<String, Double> getDateMapWithCountFromChart(
|
||||
String chartName, Long startTime, Long endTime, String team) throws IOException {
|
||||
String filter = prepareTeamFilter(team);
|
||||
|
Loading…
x
Reference in New Issue
Block a user