mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 20:51:48 +00:00
(improvement)(semantic) Batch download compatible with empty data (#445)
Co-authored-by: jolunoluo
This commit is contained in:
@@ -201,7 +201,6 @@ CREATE TABLE `s2_dictionary_task` (
|
|||||||
CREATE TABLE `s2_dimension` (
|
CREATE TABLE `s2_dimension` (
|
||||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '维度ID',
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '维度ID',
|
||||||
`model_id` bigint(20) DEFAULT NULL,
|
`model_id` bigint(20) DEFAULT NULL,
|
||||||
`datasource_id` bigint(20) NOT NULL COMMENT '所属数据源id',
|
|
||||||
`name` varchar(255) NOT NULL COMMENT '维度名称',
|
`name` varchar(255) NOT NULL COMMENT '维度名称',
|
||||||
`biz_name` varchar(255) NOT NULL COMMENT '字段名称',
|
`biz_name` varchar(255) NOT NULL COMMENT '字段名称',
|
||||||
`description` varchar(500) NOT NULL COMMENT '描述',
|
`description` varchar(500) NOT NULL COMMENT '描述',
|
||||||
|
|||||||
@@ -115,4 +115,5 @@ CREATE TABLE s2_model_rela
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
alter table s2_view_info change model_id domain_id bigint;
|
alter table s2_view_info change model_id domain_id bigint;
|
||||||
|
alter table s2_dimension drop column datasource_id;
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tencent.supersonic.semantic.api.model.pojo;
|
package com.tencent.supersonic.semantic.api.model.pojo;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -12,6 +13,6 @@ import java.util.List;
|
|||||||
@Builder
|
@Builder
|
||||||
public class RelateDimension {
|
public class RelateDimension {
|
||||||
|
|
||||||
List<DrillDownDimension> drillDownDimensions;
|
List<DrillDownDimension> drillDownDimensions = Lists.newArrayList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import com.tencent.supersonic.semantic.query.utils.DataTransformUtils;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
@@ -197,7 +198,12 @@ public class DownloadServiceImpl implements DownloadService {
|
|||||||
if ("指标名".equals(head)) {
|
if ("指标名".equals(head)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
row.add(map.getOrDefault(nameMap.getOrDefault(head, head), "").toString());
|
Object object = map.getOrDefault(nameMap.getOrDefault(head, head), "");
|
||||||
|
if (object == null) {
|
||||||
|
row.add("");
|
||||||
|
} else {
|
||||||
|
row.add(String.valueOf(object));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
row.add(metricSchemaResp.getName());
|
row.add(metricSchemaResp.getName());
|
||||||
data.add(row);
|
data.add(row);
|
||||||
@@ -257,6 +263,10 @@ public class DownloadServiceImpl implements DownloadService {
|
|||||||
|
|
||||||
private List<DimSchemaResp> getMetricRelaDimensions(MetricSchemaResp metricSchemaResp,
|
private List<DimSchemaResp> getMetricRelaDimensions(MetricSchemaResp metricSchemaResp,
|
||||||
Map<Long, DimSchemaResp> dimensionRespMap) {
|
Map<Long, DimSchemaResp> dimensionRespMap) {
|
||||||
|
if (metricSchemaResp.getRelateDimension() == null
|
||||||
|
|| CollectionUtils.isEmpty(metricSchemaResp.getRelateDimension().getDrillDownDimensions())) {
|
||||||
|
return Lists.newArrayList();
|
||||||
|
}
|
||||||
return metricSchemaResp.getRelateDimension().getDrillDownDimensions()
|
return metricSchemaResp.getRelateDimension().getDrillDownDimensions()
|
||||||
.stream().map(drillDownDimension -> dimensionRespMap.get(drillDownDimension.getDimensionId()))
|
.stream().map(drillDownDimension -> dimensionRespMap.get(drillDownDimension.getDimensionId()))
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
|
|||||||
Reference in New Issue
Block a user