---
order: 4
---
# 引入待加工数据

开始一个数据加工时，我们需要将已有的待加工的数据连接到数据加工中作为加工的素材，SuccBI支持多种将数据连接入数据加工的方法：

\[\[toc]]

## 连接数据仓库中已有的模型数据进行加工{#connect-model}

可以是经过加工后的模型表或者ODS模型表，从左侧资源面板**模型**中选择需要进行加工的模型，拖至加工流程图区域

![模型](./images/2019-12-18-11-51-35.png)

## 直接使用业务系统的物理表或视图进行加工{#use-table}

1. 直接连接业务系统的数据库，在资源面板**数据源**中选择对应数据源下需要进行加工的数据库表，拖至加工流程图区域。若未添加对应业务系统的数据库，可参考文档[数据连接-数据库连接](../data-connect/README.md#upload-data-file)

   ![连接数据库表](./images/connect-data.gif)

2. 使用SQL查询数据库表，参考文档[SQL](./transform/sql.md)

## 使用来自文件中的数据进行加工{#use-data-file}

从**文件数据源**当中拖入需要进行加工的数据文件，上传数据文件可参考文档[数据连接-上传数据文件](../data-connect/README.md#upload-data-file)

![添加文件](./images/2019-12-18-11-32-23.png)

## 使用SQL调用存储过程进行加工{#use-stored-procedure}

添加**SQL**组件，在SQL编辑器中调用存储过程中的数据进行加工，参考文档[SQL](./transform/sql.md)

## 引入节点属性设置{#setting}

引入的来源表节点可以在[数据加工设计器](./designer.md)的左下角进行相关属性设置。

### 预览数据集{#debugdatasets}

**预览数据集**查询时只查询抽样数据，常用来提升查询性能，具体可参考[预览数据集](./optimization/README.md#debugdatasets)文档。

### 提取前检查{#check-before-extraction}

**提取前检查**是指数据加工在执行数据提取到目标库前对来源表进行的检查，加工中只有所有来源表都满足提取前检查时，才会真正执行数据的提取。[全量提取](./data-output/README.md#extractmethod)时，系统会先清空目标表再提取数据，这样可能会导致数据仓库数据丢失，为了保证数据的安全性，可以在提取前先进行检查，如果发现错误就不提取，主要有以下两种情况：

- 避免上游数据错误时（比如来源表中数据被清空）执行提取，导致数据仓库数据丢失
- 避免上游数据结构变化时导致提取错误

![提取前检查](./images/2021-08-11-10-39-06.png)
**提取前检查**支持三个属性条件来检查来源表数据：

- **表存在，且所需字段都存在**：默认为勾选状态，检查加工输入表是否还存在，同时检查加工中引用该输入节点的字段在来源表中是否存在
- **表中必须存在至少N行数据**：可以检查来源表数据行数，当行数大于等于N时满足条件，N可以指定，默认为空
- **表中数据必须比上次抽取多N行数据**：可以检查对比上次从该来源表抽取的数据和现在该来源表的数据行数，N可以指定，默认为空

当不满足任一勾选的检查条件时，无论是手动点击，还是计划调度，都不会进行数据的提取，同时会显示相应的错误信息，主要内容如下：

- **手动点击提取数据按钮**：弹出对话框显示“提取前检查失败”的错误日志信息，并取消当前执行的加工
- **通过计划执行提取数据**：日志中显示任务为取消状态，计划为失败状态
