Uploaded image for project: 'Kylin'
  1. Kylin
  2. KYLIN-5314

can not export TDS file

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 5.0-alpha
    • Others
    • None

    Description

      Root Cause

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

      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 会保留校验逻辑。

      Attachments

        Activity

          People

            jlelehe Jiale He
            jlelehe Jiale He
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: