You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kylin.apache.org by "Jiale He (Jira)" <ji...@apache.org> on 2022/12/01 06:52:00 UTC

[jira] [Created] (KYLIN-5314) can not export TDS file

Jiale He created KYLIN-5314:
-------------------------------

             Summary: can not export TDS file
                 Key: KYLIN-5314
                 URL: https://issues.apache.org/jira/browse/KYLIN-5314
             Project: Kylin
          Issue Type: Bug
          Components: Others
            Reporter: Jiale He
             Fix For: 5.0-alpha


 

校验的信息扩展到了整个模型上,因此只要出现了列名和度量名一样的情况下,用户就无法导出 TDS,这样对原来的产品行为破坏性挺大;但如果不对重名的问题进行校验,那么就可能导出用户无法打开的 TDS 文件,两种处理方式都比较极端,因此需要考虑一个更为折中的方案来处理重名问题。
h1. Dev Design

根据定义,需要在校验的时候就知道导出的级别是什么,根据导出的级别来进行校验:
 * 如果导出级别是 {{AGG_INDEX_COL}} 那么只会对聚合索引用到的维度和度量信息进行校验;

 * 如果导出级别是 {{AGG_INDEX_AND_TABLE_INDEX_COL}} 那么会对索引用到的维度和度量信息进行校验;

 * 如果导出级别是 {{ALL_COLS}} 那么会对模型上所有可用的列以及度量进行校验;

 * 如果级别是 {{CUSTOM_COLS}} 那么会结合用户传入的 dimension 和 measures 进行校验(目前前端没有这个功能,一个叫 bi_export 的API 有这个能力和 KE 前端不是同一接口)。

相应地,前端需要将这个导出级别参数传递到后端,这个参数后端会做一个可选参数,如果不填,默认就是 {{{}AGG_INDEX_COL{}}}。前端之所以要做分开校验是基于下载 TDS 走的是浏览器下载的一个调用,与我们常规的 API 请求存在差异,这种调用无法获取到 API 请求的结果。因此,内部使用的 API 不再在导出的接口中校验,但是 OpenAPI 会保留校验逻辑。



--
This message was sent by Atlassian Jira
(v8.20.10#820010)