
# 使用开源Kettle导入数据
Kettle是一款开源的ETL工具，通过Kettle工具可以完成数据的抽取、转换、装入和加载。
海量数据搬迁场景下，使用Kettle自身提供的数据入库插件，入库速度在1500条/秒左右，数据搬迁耗时较高。而相同运行环境下，使用集成[dws-client](https://support.huaweicloud.com/tg-dws/dws_07_0175.html)的自定义入库插件，数据入库速度能达到7500条/秒以上，入库速度提升5\~15倍左右（仅参考数据，由客户环境例如表数据大小、列数、集群负载等情况决定）。
因此，在使用Kettle工具进行数据搬迁时，使用集成dws-client的自定义入库插件，可较大提高数据的搬迁速度。
#### 准备Kettle环境
1. 安装JDK11或以上版本，并配置相关环境变量。
2. 访问[官方网站](https://pentaho.com/pentaho-developer-edition/)下载开源Kettle工具。
   
   1. 进入Pentaho官网下载，先填入身份信息。 ![](https://support.huaweicloud.com/migration-dws/figure/zh-cn_image_0000002447453573.png "点击放大")
      
      
   
   2. 选择pdi-ce-xxx.zip进行下载。 ![](https://support.huaweicloud.com/migration-dws/figure/zh-cn_image_0000002413895580.png "点击放大")
      
   
   
   
   
 
#### 安装dws-client自定义插件
1. 下载dws-client相关插件。 
   1. **dws-kettle-plugin.jar** ：[下载地址](https://repo1.maven.org/maven2/com/huaweicloud/dws/dws-kettle-plugin/1.0.11/dws-kettle-plugin-1.0.11.jar)。
   
   2. **dws-client.jar** ：访问[下载地址](https://mvnrepository.com/artifact/com.huaweicloud.dws/dws-client/)，使用1.1.0.3版本。
      ![](https://support.huaweicloud.com/migration-dws/figure/zh-cn_image_0000002413893054.png "点击放大")
      
   
   3. **druid.jar** ：访问[下载地址](https://mvnrepository.com/artifact/com.huaweicloud.dws/dws-client/)，选择与dws-client对应依赖的版本，获取1.1.0.3下对应的druid.jar。
      ![](https://support.huaweicloud.com/migration-dws/public_sys-resources/note_3.0-zh-cn.png)
      **必须选择dws-client对应依赖的版本**，使用其他版本可能会出现不兼容问题。
      ![](https://support.huaweicloud.com/migration-dws/figure/zh-cn_image_0000002414064204.png "点击放大")
      
   
   4. **huaweicloud-dws-jdbc.jar** ：访问[下载地址](https://mvnrepository.com/artifact/com.huaweicloud.dws/dws-client/)，选择与dws-client对应依赖的版本，例如dws-client为1.1.0.3，则获取1.1.0.3下对应的huaweicloud-dws-jdbc.jar。
   
   
   
   
2. 在Kettle的安装目录data-integration\\plugins下新建目录，如dws-plugin。
3. 将**dws-kettle-plugin-** *xxx* **.jar** 放在data-integration\\plugins\\dws-plugin目录下。
   
   ![](https://support.huaweicloud.com/migration-dws/figure/zh-cn_image_0000002432853286.png "点击放大")
   
   
   
4. 在data-integration\\plugins\\dws-plugin下新建lib文件夹，将**dws-client-** *xxx* **.jar** 、**druid-** *xxx* **.jar** 放在data-integration\\plugins\\dws-plugin\\lib目录下。
   
   ![](https://support.huaweicloud.com/migration-dws/figure/zh-cn_image_0000002432854748.png "点击放大")
   
   
   
5. 将**huaweicloud-dws-jdbc-** *xxx* **.jar** 放在data-integration\\lib目录下。
   
   ![](https://support.huaweicloud.com/migration-dws/figure/zh-cn_image_0000002431928184.png "点击放大")
   
   
   
 
#### 使用Kettle工具导入
1. 双击运行Kettle安装目录pdi-ce-10.2.0.0-222\\data-integration下的Spoon.bat (Linux 环境使用spoon.sh)，打开Spoon，新建转换任务，单击"新建 \>转换"。 
   ![](https://support.huaweicloud.com/migration-dws/public_sys-resources/note_3.0-zh-cn.png)
   如果提示以下相关错误信息，表示Java版本不对，请重新安装Java版本。
   ![](https://support.huaweicloud.com/migration-dws/figure/zh-cn_image_0000002466240797.png "点击放大")
   
   
2. 添加"表输入"节点，并配置好数据库连接、和需要搬迁的表和表字段。新建数据库连接时，可在对应界面单击"测试"按钮，验证连接参数是否配置正确。配置好需要搬迁的表和表字段对应的SQL后，可以单击"预览"按钮查看需要搬迁的预览数据。 
   
   
   
   
   
3. 添加"DWS表输出"节点，并配置好数据库连接、目标表、目标表字段与数据源字段对应关系及其它参数。"DWS表输出"控制对应的数据源只支持PostgreSQL。 
   
   
   
4. 保存转换任务，并启动任务。 
   
   
   
5. 查看运行结果，去目标数据表检查搬迁数据总数和明细数据是否与需要搬迁的数据一致。
 
