# 信息提取进表

解析资料并提取字段，将结构化结果写入指定数据库和表。适合把表单、简历或业务资料整理为表格记录。

## 开始前准备

准备源资料、JSON Schema、结果数据库、表名和输出卷。使用已有表时，先核对列名与类型。表不存在时，模板会依据字段定义创建表；已有同名表会被复用。

本模板适合把一次汇总提取保存为表格记录。若期望每份简历或每张票据对应一行，先用单份文件运行，确认结果结构，再设计批量处理。

## 使用模板

在创建工作流页面选择“从模板开始”，搜索“信息提取进表”并载入画布。

在参数表单中填写以下必填项。

| 配置 | 用途 |
| --- | --- |
| 资料来源 | 选择要解析的文档、表单、邮件或文件夹 |
| 解析档位 | 决定文档解析的速度、质量和费用 |
| 提取字段定义 | JSON Schema，定义需要提取并写入数据表的字段 |
| 提取结果数据库 | 选择用于保存提取结果的数据库 |
| 提取结果表名 | 如果所选数据库下已存在同名表，将复用已有表；不存在则自动创建。 |
| 输出位置 | 提取结果保存到 Catalog 的位置 |

保存参数后发起手动运行，系统先保存当前流程，再提交执行。

## 完整处理流程

连线表示执行顺序；各步骤通过模板配置的数据绑定取得输入。

![信息提取进表](../images/extraction-to-table-flow.svg)

## 配置字段与数据表

| 配置 | 检查重点 |
| --- | --- |
| 提取字段定义 | 字段名与目标列对应，字段类型与表结构匹配 |
| 提取指令 | 说明字段含义、格式和缺失值规则 |
| 版面敏感字段 | 对需要区分页面位置的字段填写名称 |
| 结果数据库与表名 | 确认实际写入目标；避免复用结构不匹配的同名表 |
| 输出位置 | 保存文件结果，与数据库中的表记录分别检查 |

提取步骤固定使用 `n_to_1`。它把所有输入汇总为一个 JSON 结果，并将 `result` 绑定到写表节点的 `raw_json`。本模板没有“每份文件自动一行”的循环。

多值字段需要事先确定结构，例如把教育经历定义为数组。Schema 能描述数组不代表任意现有表列都能接收该结构；应核对目标列与写入结果。写表规则见[存至 MOI 表](../nodes/data-io/save-table.md)。

## 检查数据和文件结果

1. 运行前用一份资料检查解析正文。
2. 查看提取结果，确认字段和值符合预期。
3. 检查写表节点的 `database`、`table_name`、`written_columns` 和 `affected_rows`。
4. 打开结果表，对照原文抽查字段。
5. 查看保存节点和解析文件写出结果，再检查最后的来源登记。

表写入先于文件保存和来源登记。后续步骤失败时，数据可能已经写入表，重跑前先确认已有记录。

## 示例：将一份简历写入表

先定义姓名、教育经历和工作经历字段，写明经历的组织方式。选择一份简历，配置结果数据库和专用结果表后运行。核对姓名与多段经历是否完整，再检查写入列和影响行数。完整场景见[人才简历信息提取](resume-extraction.md)。

## 常见问题

| 现象 | 检查与处理 |
| --- | --- |
| 提取正确但写表失败 | 检查目标数据库、表结构与字段类型 |
| 多个文件只生成一份结果 | 模板使用汇总提取；按文件分别处理时需要重新组织流程 |
| 嵌套字段无法写入 | 核对 Schema、目标列和写表节点接受的数据结构 |
| 运行失败但表中已有数据 | 检查失败是否发生在写表之后，避免直接重复写入 |
| 只想保存文件 | 使用[解析信息提取](document-extraction.md) |

## 继续阅读

- [工作流模板](index.md)
- [运行与调试](../run-debug.md)
