diff --git a/launchers/standalone/src/main/resources/db/schema-mysql.sql b/launchers/standalone/src/main/resources/db/schema-mysql.sql index 33edd5eee..8983cfd14 100644 --- a/launchers/standalone/src/main/resources/db/schema-mysql.sql +++ b/launchers/standalone/src/main/resources/db/schema-mysql.sql @@ -201,7 +201,6 @@ CREATE TABLE `s2_dictionary_task` ( CREATE TABLE `s2_dimension` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '维度ID', `model_id` bigint(20) DEFAULT NULL, - `datasource_id` bigint(20) NOT NULL COMMENT '所属数据源id', `name` varchar(255) NOT NULL COMMENT '维度名称', `biz_name` varchar(255) NOT NULL COMMENT '字段名称', `description` varchar(500) NOT NULL COMMENT '描述', diff --git a/launchers/standalone/src/main/resources/db/sql-update.sql b/launchers/standalone/src/main/resources/db/sql-update.sql index 89443d8bb..c17f4ad92 100644 --- a/launchers/standalone/src/main/resources/db/sql-update.sql +++ b/launchers/standalone/src/main/resources/db/sql-update.sql @@ -115,4 +115,5 @@ CREATE TABLE s2_model_rela PRIMARY KEY (`id`) ); -alter table s2_view_info change model_id domain_id bigint; \ No newline at end of file +alter table s2_view_info change model_id domain_id bigint; +alter table s2_dimension drop column datasource_id; \ No newline at end of file diff --git a/semantic/api/src/main/java/com/tencent/supersonic/semantic/api/model/pojo/RelateDimension.java b/semantic/api/src/main/java/com/tencent/supersonic/semantic/api/model/pojo/RelateDimension.java index 9e1e82ec5..285ba1ade 100644 --- a/semantic/api/src/main/java/com/tencent/supersonic/semantic/api/model/pojo/RelateDimension.java +++ b/semantic/api/src/main/java/com/tencent/supersonic/semantic/api/model/pojo/RelateDimension.java @@ -1,5 +1,6 @@ package com.tencent.supersonic.semantic.api.model.pojo; +import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -12,6 +13,6 @@ import java.util.List; @Builder public class RelateDimension { - List drillDownDimensions; + List drillDownDimensions = Lists.newArrayList(); } diff --git a/semantic/query/src/main/java/com/tencent/supersonic/semantic/query/service/DownloadServiceImpl.java b/semantic/query/src/main/java/com/tencent/supersonic/semantic/query/service/DownloadServiceImpl.java index a171188e8..600ea3e2f 100644 --- a/semantic/query/src/main/java/com/tencent/supersonic/semantic/query/service/DownloadServiceImpl.java +++ b/semantic/query/src/main/java/com/tencent/supersonic/semantic/query/service/DownloadServiceImpl.java @@ -28,6 +28,7 @@ import com.tencent.supersonic.semantic.query.utils.DataTransformUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; + import javax.servlet.http.HttpServletResponse; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -197,7 +198,12 @@ public class DownloadServiceImpl implements DownloadService { if ("指标名".equals(head)) { 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()); data.add(row); @@ -257,6 +263,10 @@ public class DownloadServiceImpl implements DownloadService { private List getMetricRelaDimensions(MetricSchemaResp metricSchemaResp, Map dimensionRespMap) { + if (metricSchemaResp.getRelateDimension() == null + || CollectionUtils.isEmpty(metricSchemaResp.getRelateDimension().getDrillDownDimensions())) { + return Lists.newArrayList(); + } return metricSchemaResp.getRelateDimension().getDrillDownDimensions() .stream().map(drillDownDimension -> dimensionRespMap.get(drillDownDimension.getDimensionId())) .filter(Objects::nonNull)