| 项目 | 信息 |
|---|---|
| 文档版本 | v1.1 (已实现) |
| 创建日期 | 2025-10-27 |
| 更新日期 | 2025-10-30 |
| 当前版本 | Linkis 1.17.0 |
| 负责模块 | linkis-pes-publicservice + pipeline + linkis-storage |
| 开发分支 | feature/1.17.0-resultset-field-masking |
| 状态 | ✅ 开发完成,已测试 |
本次开发包含敏感字段屏蔽和字段截取两个功能:
15 files changed, 4166 insertions(+), 386 deletions(-)
| 文件 | 行数 | 说明 |
|---|---|---|
ResultUtils.java | 514行 | 核心工具类,包含字段屏蔽和截取逻辑 |
FieldTruncationResult.java | 73行 | 字段截取结果封装实体类 |
OversizedFieldInfo.java | 68行 | 超长字段信息实体类 |
| 文件 | 修改类型 | 说明 |
|---|---|---|
LinkisStorageConf.scala | 配置扩展 (+11行) | 新增字段截取相关配置项 |
WorkSpaceConfiguration.java | 配置扩展 (+4行) | 新增功能开关配置 |
FsRestfulApi.java | 功能增强 (218改动) | 下载接口支持字段屏蔽和截取 |
PipelineEngineConnExecutor.scala | 语法扩展 (+16改动) | 支持without和truncate子句 |
CSVExecutor.scala | 功能增强 (70改动) | CSV导出支持屏蔽和截取 |
ExcelExecutor.scala | 功能增强 (140改动) | Excel导出支持屏蔽和截取 |
| 文档 | 新增4份 | 需求和设计文档 |
ResultUtils工具类,实现代码复用applyFieldMaskingAndTruncation方法)CommonVars配置管理(truncated to N chars)后缀标记ResultUtils工具类方法:
detectAndHandle(): 检测并处理超长字段(主入口方法)detectOversizedFields(): 检测超长字段,返回超长字段列表truncateFields(): 截取超长字段值applyFieldMaskingAndTruncation(): 同时应用字段屏蔽和截取结果集查看、下载和导出接口优化 - 超长字段截取功能
当前结果集查看功能存在以下问题:
为结果集查看、下载、导出功能增加超长字段检测和截取能力,提升系统稳定性和用户体验。
CommonVars 统一管理JobhistoryConfiguration 的配置方式需要在结果集相关接口的响应中增加以下信息:
{ "hasOversizedFields": true, "oversizedFields": [ { "fieldName": "column1", "rowIndex": 0, "actualLength": 15000, "maxLength": 10000 } ], "maxOversizedFieldCount": 20, "data": "结果集数据" }
| 配置项名称 | 默认值 | 说明 |
|---|---|---|
linkis.resultset.field.truncation.enabled | false | 功能总开关 |
linkis.resultset.field.view.max.length | 10000 | 查看功能字段最大长度 |
linkis.resultset.field.download.max.length | 10000 | 下载功能字段最大长度 |
linkis.resultset.field.export.max.length | 32767 | 导出功能字段最大长度 |
linkis.resultset.field.oversized.max.count | 20 | 最多收集超长字段数量 |
(truncated to N chars)CommonVars 管理org.apache.linkis.jobhistory.conf.JobhistoryConfigurationorg.apache.linkis.common.conf.CommonVars