观远 BI

文件方式更新数据集方案说明

创建于 2022-11-01 / 最近更新于 2022-12-20 / 1135
字体: [默认] [大] [更大]

1. 路径及文件

(1)上传至服务器如下目录下:

/home/guandata/data/guandata-store/upload_dataset (非 minio 环境)

/home/guandata/data/minio/guandata-store/upload_dataset (minio 环境)


(2)每一个数据集在此目录下存储成一个目录,目录名以数据集的 id 命名,即 dsId。

2. 文件格式

(1)存为 parquet 文件格式, snappy 压缩,写成文件组,不要写单个较大的文件。

(2)需对字段名中的如下特殊字符做转义处理:
' ',  ',' ,  ';',  '{',  '}',  '(',  ')',  '\n',  '\t',  '=',  '.'

选用的转义字符为 '%' 故对 '%' 也需要做转义,scala 示例代码如下:

 private val forbiddenParquetColumNameChars = Set(' ', ',', ';', '{', '}', '(', ')', '\n', '\t', '=', '.')
  
 def encodeParquetColumnName(name: String) = name.map { x => {
   if (forbiddenParquetColumNameChars.contains(x) || x == '%') {
     f"%%${x.toInt}%02x"
   } else x.toString
 }
 }.mkString

3. 数据更新接口

将数据文件拷贝到指定路径下后,调用以下接口通知 BI 服务进行数据集更新。

URL

$home_url/public-api/data-source/{dsId}/refresh-with-file

METHOD

GET

Header

添加x-auth-token 该Token为用户登录系统后的Token,登录接口可参考以下文档1.1章节:使用API获取登录Token

PARAMETERS

Name

Location

类型

含义

是否必填

备注

dsId

Path

String

数据集   id


overwrite

Query

Boolean

是否全量更新

true:全量,false:增量

fileType

Query

String

文件类型

目前只支持   PARQUET

Response

{
  "result":"ok",  //  "ok":接口调用成功(不代表数据集更新成功),"fail":失败
  "response":     //  成功时返回生成的数据集更新任务相关信息,失败时为 null
  {
    "taskId":"9ed75970-4439-11eb-a411-93e5c8edcd0e",   // 生成的数据集更新任务 id
"status":"已提交",
"result":"处理中"
  },
"error":                                            //  失败时返回
  {
    "status": 500,                                    // 错误码
"message": "提交失败",                           // 错误信息
"detail": {}                                      // 错误的详细信息
  }
}



12 人点赞过