diff --git a/doc/profiles.md b/doc/profiles.md
index 7a33257a..480cb47b 100644
--- a/doc/profiles.md
+++ b/doc/profiles.md
@@ -34,23 +34,23 @@
- 日志生成目录
```
- spring-boot配置参数,默认logging.file=${app.home}/logs/data-porter.log。
- 其中${app.home}是在启动脚本中指定的,指的是datas-porter的根目录
+ spring-boot配置参数,默认logging.file=${app.home}/logs/data-node.log。
+ 其中${app.home}是在启动脚本中指定的,指的是datas-node的根目录
```
## 节点编号
-- porter.id
+- node.id
```
用于指定任务节点编号,在所属分布式环境中唯一。用于自描述并在zookeeper上报心跳、实现分布式锁。
eg.
- porter.id=100
+ node.id=100
```
## 统计
-- porter.statistic.upload
+- node.statistic.upload
```
是否上传统计信息,包括日志、TPS指标.
@@ -59,7 +59,7 @@
## 集群
-### porter.cluster
+### node.cluster
```
分布式集群实现,当前仅支持zookeeper
@@ -67,72 +67,72 @@
-- porter.cluster.strategy
+- node.cluster.strategy
```
指定分布式集群的实现策略
eg.
- porter.cluster.strategy=ZOOKEEPER
+ node.cluster.strategy=ZOOKEEPER
```
-- porter.cluster.client.url
+- node.cluster.client.url
```
集群连接参数
eg.
- porter.cluster.client.url=127.0.0.1:2181
+ node.cluster.client.url=127.0.0.1:2181
```
-- porter.cluster.client.sessionTimeout
+- node.cluster.client.sessionTimeout
```
集群连接超时时间
eg.
- porter.cluster.client.sessionTimeout=超时时间,单位为毫秒。
+ node.cluster.client.sessionTimeout=超时时间,单位为毫秒。
```
## 告警
-### porter.alert
+### node.alert
```
告警策略驱动,当前仅支持邮件
```
-- porter.alert.strategy
+- node.alert.strategy
```
指定告警方式
eg.
- porter.alert.strategy=EMAIL
+ node.alert.strategy=EMAIL
```
-- porter.alert.frequencyOfSeconds
+- node.alert.frequencyOfSeconds
```
相同内容通知接收频率
eg.
- porter.alert.frequencyOfSeconds=60
+ node.alert.frequencyOfSeconds=60
```
-- porter.alert.client
+- node.alert.client
```
- porter.alert.client.host=smtp服务器
- porter.alert.client.username=邮箱
- porter.alert.client.password=密码
- porter.alert.client.smtpAuth=true
- porter.alert.client.smtpStarttlsEnable=true
- porter.alert.client.smtpStarttlsRequired=false
+ node.alert.client.host=smtp服务器
+ node.alert.client.username=邮箱
+ node.alert.client.password=密码
+ node.alert.client.smtpAuth=true
+ node.alert.client.smtpStarttlsEnable=true
+ node.alert.client.smtpStarttlsRequired=false
```
-- porter.alert.receiver
+- node.alert.receiver
```
全局告警通知人
类型:ArrayList
- porter.alert.receiver[index].realName=姓名
- porter.alert.receiver[index].email=邮箱
- porter.alert.receiver[index].phone=手机号
+ node.alert.receiver[index].realName=姓名
+ node.alert.receiver[index].email=邮箱
+ node.alert.receiver[index].phone=手机号
```
## 公用连接池
@@ -144,8 +144,8 @@
```
-### porter.source.命名名字
-- porter.source.命名名字.sourceType
+### node.source.命名名字
+- node.source.命名名字.sourceType
```
源类型
@@ -154,49 +154,49 @@
```
-- porter.source.命名名字.url
+- node.source.命名名字.url
```
多个用逗号隔开
eg.
- porter.source.命名名字.url=jdbc连接
+ node.source.命名名字.url=jdbc连接
```
-- porter.source.命名名字.userName
+- node.source.命名名字.userName
```
账户名
eg.
- porter.source.命名名字.userName=账户
+ node.source.命名名字.userName=账户
```
-- porter.source.命名名字.password
+- node.source.命名名字.password
```
密码
eg.
- porter.source.命名名字.password=密码
+ node.source.命名名字.password=密码
```
-- porter.source.命名名字.maxWait
-- porter.source.命名名字.minPoolSize
-- porter.source.命名名字.maxPoolSize
-- porter.source.命名名字.initialPoolSize
-- porter.source.命名名字.connectionErrorRetryAttempts
+- node.source.命名名字.maxWait
+- node.source.命名名字.minPoolSize
+- node.source.命名名字.maxPoolSize
+- node.source.命名名字.initialPoolSize
+- node.source.命名名字.connectionErrorRetryAttempts
```
连接错误重试次数
类型:Int
```
[//]: # (todo)
-- porter.source.命名名字.dbType
+- node.source.命名名字.dbType
```
类型:Enum
可选参数:MYSQL、 ORACLE
```
-- porter.source.命名名字.makePrimaryKeyWhenNo(2.0.1新增)
+- node.source.命名名字.makePrimaryKeyWhenNo(2.0.1新增)
```
类型:Boolean
@@ -207,40 +207,40 @@
## 任务配置
-### porter.task
+### node.task
```
节点任务
类型:ArrayList
```
-- porter.task[index].taskId
+- node.task[index].taskId
```
任务编号
类型:String
eg.
- porter.task[index].taskId=1
+ node.task[index].taskId=1
```
-- porter.task[index].receiver
+- node.task[index].receiver
```
当前任务告警通知人
- 任务告警会通知到porter.task[index].receiver + porter.alert.receiver
+ 任务告警会通知到node.task[index].receiver + node.alert.receiver
类型:ArrayList
- porter.task[index].receiver[index].realName=姓名
- porter.task[index].receiver[index].email=邮箱
- porter.task[index].receiver[index].phone=手机号
+ node.task[index].receiver[index].realName=姓名
+ node.task[index].receiver[index].email=邮箱
+ node.task[index].receiver[index].phone=手机号
```
-- porter.task[index].consumer
+- node.task[index].consumer
```
任务消费源配置
类型:DataConsumerConfig
```
-- porter.task[index].consumer.consumerNameme
+- node.task[index].consumer.consumerNameme
```
消费器插件
@@ -248,7 +248,7 @@
可选择参数:CanalFetch、KafkaFetch
```
-- porter.task[index].consumer.converter
+- node.task[index].consumer.converter
```
消息转换器
@@ -256,31 +256,31 @@
可选择参数:canalRow(1.0新增)、oggJson
```
-- porter.task[index].consumer.source
+- node.task[index].consumer.source
```
消费器数据来源
类型:Map
CanalFetch:(1.0新增)
- porter.task[index].consumer.source.sourceType=CANAL
- porter.task[index].consumer.source.slaveId=mysql slaveId
- porter.task[index].consumer.source.address=ip:port
- porter.task[index].consumer.source.database=数据库名
- porter.task[index].consumer.source.username=账户
- porter.task[index].consumer.source.password=密码
- porter.task[index].consumer.source.filter=订阅表正则
+ node.task[index].consumer.source.sourceType=CANAL
+ node.task[index].consumer.source.slaveId=mysql slaveId
+ node.task[index].consumer.source.address=ip:port
+ node.task[index].consumer.source.database=数据库名
+ node.task[index].consumer.source.username=账户
+ node.task[index].consumer.source.password=密码
+ node.task[index].consumer.source.filter=订阅表正则
KafkaFetch:
- porter.task[0].consumer.source.sourceType=KAFKA
- porter.task[0].consumer.source.servers=ip:port,ip:port
- porter.task[0].consumer.source.topics=主题
- porter.task[0].consumer.source.group=消费分组
- porter.task[0].consumer.source.autoCommit=true|false
+ node.task[0].consumer.source.sourceType=KAFKA
+ node.task[0].consumer.source.servers=ip:port,ip:port
+ node.task[0].consumer.source.topics=主题
+ node.task[0].consumer.source.group=消费分组
+ node.task[0].consumer.source.autoCommit=true|false
```
-- porter.task[index].consumer.metaSource
+- node.task[index].consumer.metaSource
```
@@ -288,40 +288,40 @@
类型:Map
不做配置时,将不会做源端与目标端数据一致对比。(1.1新增规则)
形式1:
- porter.task[index].consumer.metaSource.sourceName=公共数据源名字
+ node.task[index].consumer.metaSource.sourceName=公共数据源名字
形式2:
- porter.task[index].consumer.metaSource.dbType
- porter.task[index].consumer.metaSource.url
- porter.task[index].consumer.metaSource.userName
- porter.task[index].consumer.metaSource.password
- porter.task[index].consumer.metaSource.maxWait
- porter.task[index].consumer.metaSource.minPoolSize
- porter.task[index].consumer.metaSource.maxPoolSize
- porter.task[index].consumer.metaSource.initialPoolSize
- porter.task[index].consumer.metaSource.connectionErrorRetryAttempts
+ node.task[index].consumer.metaSource.dbType
+ node.task[index].consumer.metaSource.url
+ node.task[index].consumer.metaSource.userName
+ node.task[index].consumer.metaSource.password
+ node.task[index].consumer.metaSource.maxWait
+ node.task[index].consumer.metaSource.minPoolSize
+ node.task[index].consumer.metaSource.maxPoolSize
+ node.task[index].consumer.metaSource.initialPoolSize
+ node.task[index].consumer.metaSource.connectionErrorRetryAttempts
```
-- porter.task[index].consumer.eventProcessor.className(1.1新增)
+- node.task[index].consumer.eventProcessor.className(1.1新增)
```
自定义同步数据数据抽取器
格式:package.className
```
-- porter.task[index].consumer.eventProcessor.content(1.1新增)
+- node.task[index].consumer.eventProcessor.content(1.1新增)
```
class路径、jar路径、源码内容
```
-- porter.task[index].consumer.eventProcessor.emptyFetchNoticeSpan(2.0.1新增)
+- node.task[index].consumer.eventProcessor.emptyFetchNoticeSpan(2.0.1新增)
```
空查询通知间隔,单位秒
默认3600
```
-- porter.task[index].consumer.eventProcessor.emptyFetchThreshold(2.0.1新增)
+- node.task[index].consumer.eventProcessor.emptyFetchThreshold(2.0.1新增)
```
空查询通知时间阀值,单位秒
@@ -329,14 +329,14 @@
```
-- porter.task[index].loader
+- node.task[index].loader
```
任务载入器配置
类型:DataLoaderConfig
```
-- porter.task[index].loader.loaderName
+- node.task[index].loader.loaderName
```
目标端载入器插件
@@ -344,7 +344,7 @@
可选参数:JdbcBatch、JdbcSingle
```
-- porter.task[index].loader.source
+- node.task[index].loader.source
```
@@ -352,58 +352,57 @@
类型:Map
形式1:
- porter.task[index].loader.source.sourceName=公共数据源名字
+ node.task[index].loader.source.sourceName=公共数据源名字
形式2:
- porter.task[index].loader.source.dbType
- porter.task[index].loader.source.url
- porter.task[index].loader.sourceuserName
- porter.task[index].loader.source.password
- porter.task[index].loader.source.maxWait
- porter.task[index].loader.source.minPoolSize
- porter.task[index].loader.source.maxPoolSize
- porter.task[index].loader.source.initialPoolSize
- porter.task[index].loader.source.connectionErrorRetryAttempts
+ node.task[index].loader.source.dbType
+ node.task[index].loader.source.url
+ node.task[index].loader.sourceuserName
+ node.task[index].loader.source.password
+ node.task[index].loader.source.maxWait
+ node.task[index].loader.source.minPoolSize
+ node.task[index].loader.source.maxPoolSize
+ node.task[index].loader.source.initialPoolSize
+ node.task[index].loader.source.connectionErrorRetryAttempts
```
-- porter.task[index].loader.insertOnUpdateError(2.0新增)
+- node.task[index].loader.insertOnUpdateError(2.0新增)
```
目标端更新失败转插入开关参数,默认开启
类型:Boolean
```
-- porter.task[index].mapper
+- node.task[index].mapper
```
源端与目标端schema映射,用于处理源端和目标端命名不一致的情况
类型:List
```
-- porter.task[index].mapper[下标].schema
+- node.task[index].mapper[下标].schema
```
- porter.task[index].mapper[index].schema=源端schema,目标端schema
+ node.task[index].mapper[index].schema=源端schema,目标端schema
```
-- porter.task[index].mapper[下标].table
+- node.task[index].mapper[下标].table
```
- porter.task[index].mapper[index].table=源端表名,目标端表名
+ node.task[index].mapper[index].table=源端表名,目标端表名
```
-- porter.task[index].mapper[下标].updateDate
+- node.task[index].mapper[下标].updateDate
```
如果不配置或配置错误,数据同步结果检查功能不启用
- porter.task[index].mapper[下标].updateDate=源端表自动更新时间字段,目标端表自动更新时间字段
+ node.task[index].mapper[下标].updateDate=源端表自动更新时间字段,目标端表自动更新时间字段
```
-- porter.task[index].mapper[下标].column
+- node.task[index].mapper[下标].column
```
字段映射,可不配置。
- porter.task[index].mapper[下标].column.源端字段名=目标端字段名
-```
-
\ No newline at end of file
+ node.task[index].mapper[下标].column.源端字段名=目标端字段名
+```
\ No newline at end of file
diff --git a/doc/profiles_EN.md b/doc/profiles_EN.md
index 6380f190..758e493a 100644
--- a/doc/profiles_EN.md
+++ b/doc/profiles_EN.md
@@ -31,23 +31,23 @@
- Log generation directory
```
- spring-boot configuration parameters,default : logging.file=${app.home}/logs/data-porter.log.
- ${app.home} is specified in the startup script and refers to the root directory of datas-porter.
+ spring-boot configuration parameters,default : logging.file=${app.home}/logs/data-node.log.
+ ${app.home} is specified in the startup script and refers to the root directory of datas-node.
```
## Node number
-- porter.id
+- node.id
```
Used to specify the task node number, which is unique in the distributed environment. Used to self-describe and report heartbeats on zookeeper to implement distributed locks.
eg.
- porter.id=100
+ node.id=100
```
## Statistic
-- porter.statistic.upload
+- node.statistic.upload
```
Whether to upload statistics, including logs, TPS indicators.
@@ -56,7 +56,7 @@
## Cluster
-### porter.cluster
+### node.cluster
```
Distributed cluster implementation, currently only supports zookeeper
@@ -64,72 +64,72 @@
-- porter.cluster.strategy
+- node.cluster.strategy
```
Specify the implementation strategy of the distributed cluster.
eg.
- porter.cluster.strategy=ZOOKEEPER
+ node.cluster.strategy=ZOOKEEPER
```
-- porter.cluster.client.url
+- node.cluster.client.url
```
Cluster connection parameters.
eg.
- porter.cluster.client.url=127.0.0.1:2181
+ node.cluster.client.url=127.0.0.1:2181
```
-- porter.cluster.client.sessionTimeout
+- node.cluster.client.sessionTimeout
```
Cluster connection timeout
eg.
- porter.cluster.client.sessionTimeout=overtime time, in milliseconds.
+ node.cluster.client.sessionTimeout=overtime time, in milliseconds.
```
## Alert
-### porter.alert
+### node.alert
```
Alarm policy driver, currently only supports mail.
```
-- porter.alert.strategy
+- node.alert.strategy
```
Specify the alarm mode
eg.
- porter.alert.strategy=EMAIL
+ node.alert.strategy=EMAIL
```
-- porter.alert.frequencyOfSeconds
+- node.alert.frequencyOfSeconds
```
Same content notification receiving frequency.
eg.
- porter.alert.frequencyOfSeconds=60
+ node.alert.frequencyOfSeconds=60
```
-- porter.alert.client
+- node.alert.client
```
- porter.alert.client.host=smtp server
- porter.alert.client.username=mail address
- porter.alert.client.password=password
- porter.alert.client.smtpAuth=true
- porter.alert.client.smtpStarttlsEnable=true
- porter.alert.client.smtpStarttlsRequired=false
+ node.alert.client.host=smtp server
+ node.alert.client.username=mail address
+ node.alert.client.password=password
+ node.alert.client.smtpAuth=true
+ node.alert.client.smtpStarttlsEnable=true
+ node.alert.client.smtpStarttlsRequired=false
```
-- porter.alert.receiver
+- node.alert.receiver
```
Global alarm informer
Type :ArrayList
- porter.alert.receiver[index].realName=name
- porter.alert.receiver[index].email=mail address
- porter.alert.receiver[index].phone=phone number
+ node.alert.receiver[index].realName=name
+ node.alert.receiver[index].email=mail address
+ node.alert.receiver[index].phone=phone number
```
## Public connection pool
@@ -141,8 +141,8 @@
```
-### porter.source.Named name
-- porter.source.Named name.sourceType
+### node.source.Named name
+- node.source.Named name.sourceType
```
Source type
@@ -151,49 +151,49 @@
```
-- porter.source.Name name.url
+- node.source.Name name.url
```
Multiple separated by ","
eg.
- porter.source.Named name.url=jdbc link
+ node.source.Named name.url=jdbc link
```
-- porter.source.Named name.userName
+- node.source.Named name.userName
```
account name
eg.
- porter.source.命名名字.userName=account name
+ node.source.命名名字.userName=account name
```
-- porter.source.Named name.password
+- node.source.Named name.password
```
password
eg.
- porter.source.Named name.password=password
+ node.source.Named name.password=password
```
-- porter.source.Named name.maxWait
-- porter.source.Named name.minPoolSize
-- porter.source.Named name.maxPoolSize
-- porter.source.Named name.initialPoolSize
-- porter.source.Named name.connectionErrorRetryAttempts
+- node.source.Named name.maxWait
+- node.source.Named name.minPoolSize
+- node.source.Named name.maxPoolSize
+- node.source.Named name.initialPoolSize
+- node.source.Named name.connectionErrorRetryAttempts
```
Connection error retries
Type : Int
```
[//]: # (todo)
-- porter.source.Named name.dbType
+- node.source.Named name.dbType
```
Type : Enum
Optional parameters : MYSQL、 ORACLE
```
-- porter.source.Connection error retries.makePrimaryKeyWhenNo(2.0.1 add)
+- node.source.Connection error retries.makePrimaryKeyWhenNo(2.0.1 add)
```
Type : Boolean
@@ -204,40 +204,40 @@
## Task configuration
-### porter.task
+### node.task
```
Node task
Type : ArrayList
```
-- porter.task[index].taskId
+- node.task[index].taskId
```
Task number
Type : String
eg.
- porter.task[index].taskId=1
+ node.task[index].taskId=1
```
-- porter.task[index].receiver
+- node.task[index].receiver
```
Current task alarm informer
- Task alert will be notified : porter.task[index].receiver + porter.alert.receiver
+ Task alert will be notified : node.task[index].receiver + node.alert.receiver
Type :ArrayList
- porter.task[index].receiver[index].realName=name
- porter.task[index].receiver[index].email=mail address
- porter.task[index].receiver[index].phone=phone number
+ node.task[index].receiver[index].realName=name
+ node.task[index].receiver[index].email=mail address
+ node.task[index].receiver[index].phone=phone number
```
-- porter.task[index].consumer
+- node.task[index].consumer
```
Task consumption source configuration
Type : DataConsumerConfig
```
-- porter.task[index].consumer.consumerNameme
+- node.task[index].consumer.consumerNameme
```
Consumer plugin
@@ -245,7 +245,7 @@
Optional parameter : CanalFetch、KafkaFetch
```
-- porter.task[index].consumer.converter
+- node.task[index].consumer.converter
```
Message converter
@@ -253,31 +253,31 @@
Optional parameter : canalRow(1.0 add)、oggJson
```
-- porter.task[index].consumer.source
+- node.task[index].consumer.source
```
Consumer data source
Type : Map
CanalFetch:(1.0 add)
- porter.task[index].consumer.source.sourceType=CANAL
- porter.task[index].consumer.source.slaveId=mysql slaveId
- porter.task[index].consumer.source.address=ip:port
- porter.task[index].consumer.source.database=database
- porter.task[index].consumer.source.username=account
- porter.task[index].consumer.source.password=password
- porter.task[index].consumer.source.filter=Subscription form regular
+ node.task[index].consumer.source.sourceType=CANAL
+ node.task[index].consumer.source.slaveId=mysql slaveId
+ node.task[index].consumer.source.address=ip:port
+ node.task[index].consumer.source.database=database
+ node.task[index].consumer.source.username=account
+ node.task[index].consumer.source.password=password
+ node.task[index].consumer.source.filter=Subscription form regular
KafkaFetch:
- porter.task[0].consumer.source.sourceType=KAFKA
- porter.task[0].consumer.source.servers=ip:port,ip:port
- porter.task[0].consumer.source.topics=topic
- porter.task[0].consumer.source.group=Consumer group
- porter.task[0].consumer.source.autoCommit=true|false
+ node.task[0].consumer.source.sourceType=KAFKA
+ node.task[0].consumer.source.servers=ip:port,ip:port
+ node.task[0].consumer.source.topics=topic
+ node.task[0].consumer.source.group=Consumer group
+ node.task[0].consumer.source.autoCommit=true|false
```
-- porter.task[index].consumer.metaSource
+- node.task[index].consumer.metaSource
```
@@ -285,40 +285,40 @@
Type : Map
When the configuration is not done, the data between the source and the target will not be compared.(1.1 new rule)
Form 1:
- porter.task[index].consumer.metaSource.sourceName=public data source name
+ node.task[index].consumer.metaSource.sourceName=public data source name
Form 2:
- porter.task[index].consumer.metaSource.dbType
- porter.task[index].consumer.metaSource.url
- porter.task[index].consumer.metaSource.userName
- porter.task[index].consumer.metaSource.password
- porter.task[index].consumer.metaSource.maxWait
- porter.task[index].consumer.metaSource.minPoolSize
- porter.task[index].consumer.metaSource.maxPoolSize
- porter.task[index].consumer.metaSource.initialPoolSize
- porter.task[index].consumer.metaSource.connectionErrorRetryAttempts
+ node.task[index].consumer.metaSource.dbType
+ node.task[index].consumer.metaSource.url
+ node.task[index].consumer.metaSource.userName
+ node.task[index].consumer.metaSource.password
+ node.task[index].consumer.metaSource.maxWait
+ node.task[index].consumer.metaSource.minPoolSize
+ node.task[index].consumer.metaSource.maxPoolSize
+ node.task[index].consumer.metaSource.initialPoolSize
+ node.task[index].consumer.metaSource.connectionErrorRetryAttempts
```
-- porter.task[index].consumer.eventProcessor.className(1.1 add)
+- node.task[index].consumer.eventProcessor.className(1.1 add)
```
Custom sync data data extractor
Format : package.className
```
-- porter.task[index].consumer.eventProcessor.content(1.1 add)
+- node.task[index].consumer.eventProcessor.content(1.1 add)
```
class path、jar path、Source content
```
-- porter.task[index].consumer.eventProcessor.emptyFetchNoticeSpan(2.0.1 add)
+- node.task[index].consumer.eventProcessor.emptyFetchNoticeSpan(2.0.1 add)
```
Empty query notification interval, in seconds.
default : 3600
```
-- porter.task[index].consumer.eventProcessor.emptyFetchThreshold(2.0.1 add)
+- node.task[index].consumer.eventProcessor.emptyFetchThreshold(2.0.1 add)
```
Empty query notification time threshold, in seconds
@@ -326,14 +326,14 @@
```
-- porter.task[index].loader
+- node.task[index].loader
```
Task loader configuration
Type : DataLoaderConfig
```
-- porter.task[index].loader.loaderName
+- node.task[index].loader.loaderName
```
Target loader plugin
@@ -341,7 +341,7 @@
Optional parameter : JdbcBatch、JdbcSingle
```
-- porter.task[index].loader.source
+- node.task[index].loader.source
```
@@ -349,58 +349,57 @@
Type : Map
Form 1:
- porter.task[index].loader.source.sourceName=public data source name
+ node.task[index].loader.source.sourceName=public data source name
Form 2:
- porter.task[index].loader.source.dbType
- porter.task[index].loader.source.url
- porter.task[index].loader.sourceuserName
- porter.task[index].loader.source.password
- porter.task[index].loader.source.maxWait
- porter.task[index].loader.source.minPoolSize
- porter.task[index].loader.source.maxPoolSize
- porter.task[index].loader.source.initialPoolSize
- porter.task[index].loader.source.connectionErrorRetryAttempts
+ node.task[index].loader.source.dbType
+ node.task[index].loader.source.url
+ node.task[index].loader.sourceuserName
+ node.task[index].loader.source.password
+ node.task[index].loader.source.maxWait
+ node.task[index].loader.source.minPoolSize
+ node.task[index].loader.source.maxPoolSize
+ node.task[index].loader.source.initialPoolSize
+ node.task[index].loader.source.connectionErrorRetryAttempts
```
-- porter.task[index].loader.insertOnUpdateError(2.0 add)
+- node.task[index].loader.insertOnUpdateError(2.0 add)
```
The target end update fails to insert the switch parameter, default enabled.
Type : Boolean
```
-- porter.task[index].mapper
+- node.task[index].mapper
```
Source and destination schema mapping, used to handle the inconsistency between source and destination naming.
Type : List
```
-- porter.task[index].mapper[subscript].schema
+- node.task[index].mapper[subscript].schema
```
- porter.task[index].mapper[index].schema=source schema,target schema
+ node.task[index].mapper[index].schema=source schema,target schema
```
-- porter.task[index].mapper[subscript].table
+- node.task[index].mapper[subscript].table
```
- porter.task[index].mapper[index].table=source table name, target table name
+ node.task[index].mapper[index].table=source table name, target table name
```
-- porter.task[index].mapper[subscript].updateDate
+- node.task[index].mapper[subscript].updateDate
```
Data synchronization result check function is not enabled if it is not configured or configured incorrectly.
- porter.task[index].mapper[subscript].updateDate=The source table automatically updates the time field, and the target table automatically updates the time field.
+ node.task[index].mapper[subscript].updateDate=The source table automatically updates the time field, and the target table automatically updates the time field.
```
-- porter.task[index].mapper[subscript].column
+- node.task[index].mapper[subscript].column
```
Field mapping, no need to configure.
- porter.task[index].mapper[subscript].column.Source field name = target field name
-```
-
\ No newline at end of file
+ node.task[index].mapper[subscript].column.Source field name = target field name
+```
\ No newline at end of file