---
order: 5
---
# 数据加工脚本组件

SuccApp数据加工提供了常见的加工组件，通过简单的设置就可以使用，但是实际数据加工中可能存在一些无法满足的个性化加工需求，比如：

1. 调用外部程序，如python从互联网爬取数据、Shell命令等。
2. 调用互联网上的一些API服务来加工数据，比如将企业文本地址转换为经纬度。
3. 读取一个特殊格式的数据文件进行加工。
4. 执行一个复杂的业务逻辑（数据库存储过程无法实现）并将结果输出。
5. 遍历加工流程中的上游节点的输出数据并进行处理后输出给下游加工节点。

为此SuccApp提供了“脚本”加工组件，帮助连接任意位置的任意格式的数据进行加工分析：

\[\[toc]]

## 脚本加工

“脚本”加工节点可以让数据加工过程中拥有“编程”能力，完成任意个性化需求，脚本加工节点提供了如下能力：

1. 调用外部程序的能力。
2. 执行SQL的能力。
3. 脚本编程能力（详见[脚本开发](../README.md)）。
4. 访问加工流程的上下文信息的能力。比如获取上游节点输出的数据、获取上游节点产生的SQL、输出数据给下游节点……

## API

### 与脚本相关的数据接口

<<< @/public/dev-types/svr-api/types/etl.types.d.ts

### 脚本模板

<<< @/../../bi/com.succez.bi/web/static-file/dev/svr-script-examples/etl/script-node-template.ts

## 脚本示例

### 使用高德API查询企业经纬度信息

<<< @/../../bi/com.succez.bi/web/static-file/dev/svr-script-examples/etl/script-node-example-transform-locations.ts

### 爬取企查查数据作为测试数据

<<< @/../../bi/com.succez.bi/web/static-file/dev/svr-script-examples/etl/script-node-example-transform-crawl.ts

### 备份物理表

<<< @/../../bi/com.succez.bi/web/static-file/dev/svr-script-examples/etl/script-node-example-transform-dbbackup.ts

### 获取api接口的json数据，并解析成结构化数据

<<< @/../../bi/com.succez.bi/web/static-file/dev/svr-script-examples/etl/script-node-example-transform-api.ts

### 读取MongoDB的数据，并解析成结构化数据

通过jdbc连接MongoDB数据库需要`org.mongodb:mongodb-driver-sync:4.8.1`的jar包，可以通过maven下载对应的jar包后，添加至tomcat目录下的lib文件夹后启动web服务器，并正确配置用户名、密码、IP、端口等信息，本脚本即可正常运行。

<<< @/../../bi/com.succez.bi/web/static-file/dev/svr-script-examples/etl/script-node-example-transform-mongodb.ts
