
# Oracle到Doris参数调优
#### 源端优化
Oracle抽取优化。
可通过在作业任务配置参数单击中"添加自定义属性"来新增Oracle同步参数。
图1添加自定义属性   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002096006468.png "点击放大")
可使用的调优参数具体如下：
表1全量阶段优化参数 
| 参数名                              | 类型  | 默认值  | 说明                                                                                             |
|:---|:---|:---|:---|
| scan.snapshot.fetch.size         | int | 1024 | 全量阶段抽取数据时，从PostgreSQL侧单次请求抽取数据的最大条数，适当增加请求条数可以减少对PostgreSQL的请求次数提升性能。                          |
| debezium.max.queue.size          | int | 8192 | 数据缓存队列条数，默认为8192，当源表中单条数据过大时（如1MB），缓存过多数据会导致内存溢出，可以考虑减小该值。                                     |
| debezium.max.queue.size.in.bytes | int | 0    | 数据缓存队列大小，默认为0，即表示缓存队列不考虑数据大小，只按照数据条数计算。在debezium.max.queue.size无法有效限制内存占用时，考虑显式设置该值来限制缓存数据的大小。 |
   
表2增量阶段优化参数 
| 参数名                              | 类型  | 默认值  | 说明                                                                                             |
|:---|:---|:---|:---|
| debezium.max.queue.size          | int | 8192 | 数据缓存队列条数，默认为8192，当源表中单条数据过大时（如1MB），缓存过多数据会导致内存溢出，可以考虑减小该值。                                     |
| debezium.max.queue.size.in.bytes | int | 0    | 数据缓存队列大小，默认为0，即表示缓存队列不考虑数据大小，只按照数据条数计算。在debezium.max.queue.size无法有效限制内存占用时，考虑显式设置该值来限制缓存数据的大小。 |
   
#### 目的端优化
可通过在Doris的目的端配置中修改写入相关配置，且可以通过单击高级配置的"查看编辑"按钮，添加高级属性。
图2添加高级属性   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002131638381.png "点击放大")
表3Doris写入优化参数 
| 参数名                              | 类型     | 默认值      | 单位      | 说明                                                                                                                                                |
|:---|:---|:---|:---|:---|
| sink.properties.format           | string | json     | -       | Stream Load 使用的数据格式，可选择json/csv，使用csv写入格式并配套压缩参数，可提升写入速率，不建议在如下doris版本使用csv写入，如 1.2， 2.0.x（x＜14），2.1.x（x\<6）, 3.0.x（x\<1），存在开源问题可能会导致用csv写特殊字符异常。 |
| sink.properties.Content-Encoding | string | -        | -       | HTTP头部消息体压缩格式，目前只支持 CSV 文件的压缩，支持gzip。                                                                                                             |
| sink.properties.compress_type    | string | -        | -       | 文件的压缩格式，目前只支持 CSV 文件的压缩。支持 gz, lzo, bz2, lz4, lzop, deflate 压缩格式。                                                                                 |
| doris.sink.flush.tasks           | int    | 1        | -       | 单个taskmanager的flush并发数，在资源充足情况下可以适当提高该值提升写入速率。                                                                                                    |
| sink.batch.interval              | string | 1s       | h/min/s | 异步线程写入数据的时间间隔，在源端数据量较大时可增加该值，如30s，减少与数据库的I/O。                                                                                                     |
| sink.batch.size                  | int    | 20000    | -       | 单次写（插入、更新、删除）数据的最大行数，在源端数据量较大时可增加该值，如50000，减少与数据库的I/O。                                                                                            |
| sink.batch.bytes                 | int    | 10485760 | bytes   | 单次写（插入、更新、删除）数据的最大字节数，在源端数据量较大时可增加该值，如50485760，减少与数据库的I/O。                                                                                        |
   
