# 管理数据源、文件与训练集

更新连接和同步范围，管理文件、训练集与元数据。

在数据源详情和设置页中，可以修改名称、连接和同步范围，管理上传文件及训练数据。

## 开始前

| 项目 | 要求                                                       |
| -- | -------------------------------------------------------- |
| 权限 | 项目负责人或项目管理员                                              |
| 前置 | 数据源已创建，见 [连接数据源](https://docs.asktable.com/data/connect) |
| 入口 | 左侧主导航 → 「更多」→ 「数据源」→ 点一张数据源卡片                            |

## 操作步骤

**先认识详情页的三块区域**

打开数据源后，页面分三块：

- 顶栏：面包屑（「全部数据源」→ 数据源名 →「设置」）、状态指示器、主操作按钮。
- 左侧栏：「基本信息」「训练集」两个固定项；数据源可用时下方还有搜索框和库/表树，搜索框可以按表名过滤。
- 右侧：当前选中的内容。

顶栏主操作按钮按类型变化：数据库类是「重新选表」，Excel 是「文件管理」；最右是「设置」。

状态指示器显示为正常可用、同步中、初始化中或不可用，点开能看到上次同步时间和错误详情；出错时底部出现「重新初始化」或「重新同步」按钮。

**改名称和描述**

点左侧「基本信息」。数据源名称直接在输入框里改，失焦即保存；描述是两行文本框，同样失焦保存。

描述上限 255 字，超出时右下角计数变红，改动不会保存。同一页还能看到只读的类型、ID（带复制按钮）、库表统计和创建时间。

**改连接配置（数据库类）**

点顶栏「设置」，在「连接配置」分区里能看到主机地址、用户名和数据库。点「编辑」打开连接信息弹窗改，「测试连接」随时验证当前配置。

密码留空表示不修改。

**换要同步的表（数据库类）**

点顶栏「重新选表」，弹窗里重新勾选后点「确认选择 (N)」。已在元数据里的表默认勾上；同步进行中该按钮不可点。

单个表结构变了不用整源重来：进这张表的「字段结构」页，点表名下方的「重新同步」。它只重跑这张表的结构与统计，不覆盖人工标注，触发后提示已开始刷新。

**管理上传的文件（Excel）**

点顶栏「文件管理」，弹窗标题是「文件管理」，列出「文件列表（N）」。

点「选择文件」加新文件，新加的行带新文件徽标；已入库的行可以预览、下载、删除。删过的行会在下方标注保存后将被永久移除。改完点「保存更改」。

**维护训练集**

点左侧「训练集」。表格列是用户问题、正确 SQL、来源、创建时间、是否启用、操作，来源列显示手动添加或点赞反馈。

右上角「添加训练数据」新建；行内开关控制单条是否生效，鼠标移到行上出现编辑和删除按钮。搜索框可以按用户问题或 SQL 过滤。

**导出或导入元数据**

点顶栏「设置」，在「元数据」分区：

- 点「导出」弹出「确认导出元数据」，写明会导出字段描述、字段可见性设置和训练数据，确认后下载 JSON。
- 点「导入」选 JSON 文件。导入会覆盖字段描述与可见性，训练数据是追加，不会删除已有数据。

同一分区还有「dbt 语义层」，点「导出 YAML」把当前数据源的实体和维度导出为 dbt YAML。

**删除数据源**

点顶栏「设置」，最下方「危险区」里是「删除数据源」；数据源列表卡片右上角的「···」菜单里另有「快速对话」和「删除数据」。删除前会二次确认，确认后不可撤销。

删除只移除 AskTable 侧这份数据源和它的配置，数据库或文件本身不受影响。

## 关键约束

| 项目             | 值或默认                                        | 在哪里改                                                   |
| -------------- | ------------------------------------------- | ------------------------------------------------------ |
| 数据源描述长度        | 上限 255 字，超出标红且不保存                           | 「基本信息」页的描述字段                                           |
| 查询超时           | 单数据源默认继承全局（全局默认 30 秒），可填 1–300 秒；超出范围时保存被拒绝 | 数据源 → 「设置」→ 查询超时（秒）；全局值在 头像菜单 → 「设置」→ 「数据源」→ 全局查询超时（秒） |
| 单数据源可选表数       | 默认 100 张                                    | 头像菜单 → 「设置」→ 「数据源」→ 单数据源最大表数（云端部署生效）                   |
| 训练数据唯一性        | 同一数据源下用户问题不能重复，重复写入会被数据库拒绝                  | —                                                      |
| 训练 SQL 保存校验    | 只读、可解析、不含 SELECT \*、表名带 schema、表已在元数据中      | —                                                      |
| 元数据导入的影响       | 覆盖字段描述与可见性；训练数据追加，不删除已有                     | 「设置」→ 「元数据」→「导入」                                       |
| 文件删除           | 保存后永久移除                                     | 「文件管理」弹窗                                               |
| 构建 Value Index | 需要数据源状态为正常可用                                | 「设置」→ 「索引维护」                                           |
| 删除数据源          | 二次确认后不可撤销                                   | 「设置」→ 「危险区」，或列表卡片菜单                                    |

以上数值都是默认值，可在管理后台调整（训练数据校验类的除外）。

## 出问题怎么判断

| 现象           | 判定条件                            | 处理                                                   |
| ------------ | ------------------------------- | ---------------------------------------------------- |
| 卡片一直在转       | 鼠标移到状态指示器上，提示为正在分析元数据或排队中       | 列表每 3 秒自动刷新，等它结束；长时间不动就点状态指示器看错误详情                   |
| 元数据解析失败      | 状态提示为分析元数据失败，或顶栏状态显示为不可用        | 点状态指示器看错误正文；文件类可点「重新初始化」重跑                           |
| 部分 Sheet 没进来 | 状态弹窗里列出无法解析的 Sheet，并逐条给出错误原因和建议 | 按提示改文件后重新上传                                          |
| 「重新选表」点不动    | 数据源状态为同步中                       | 等同步结束后再操作                                            |
| 描述改了没保存      | 计数超过 255 并标红                    | 精简到 255 字以内                                          |
| 训练数据存不上      | 保存被拒绝：SQL 未通过校验，或表不在元数据里        | 确认 SQL 只读、表名带 schema、表已完成元数据同步                       |
| 导入后提示有内容被跳过  | 结果页提示导入完成但有项目未找到，并列出被跳过的条目      | 目标数据源里没有同名的库/表/字段，按列出的缺失 Schema、缺失表、缺失字段核对           |
| 导入后描述没变      | 文件型数据源的库名形如 file\_abc1          | 文件型数据源的 schema 名是系统生成的，不是文件名；按它核对导入文件里的 schema\_name |

## 下一步

- 表名和字段名要写业务含义：[表与字段备注](https://docs.asktable.com/data/semantics)
- 让 AI 忽略或脱敏敏感列：[字段隐藏与脱敏](https://docs.asktable.com/data/hidden-fields)
- 用简称也能查到值：[AI 索引](https://docs.asktable.com/data/ai-search)
- 再加一个数据源：[连接数据源](https://docs.asktable.com/data/connect)
