
# 使用CDL从PgSQL同步数据到Hudi
#### 操作场景
本章节指导用户通过MRS 3.2.0版本开启Kerberos认证的集群的CDLService WebUI界面，从PgSQL导入数据到Hudi。
#### 前提条件
- 集群已安装CDL、Hudi服务且运行正常。
- PgSQL数据库需要开启前置要求，操作步骤请参考[PostgreSQL数据库修改预写日志的策略](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24124.html#mrs_01_24124__li1868193914169)。
- 在FusionInsight Manager中创建一个人机用户，例如"cdluser"，加入用户组**cdladmin、hadoop、kafka** 、**supergroup**，主组选择"cdladmin"组，关联角色"System_administrator"。
 
#### 操作步骤
1. 使用**cdluser**用户登录FusionInsight Manager（首次登录需要修改密码），选择"集群 \> 服务 \> CDL"，单击"CDLService UI"右侧的超链接，进入CDLService WebUI界面。
2. 选择"连接管理 \> 新增连接"，进入"新增连接"参数配置窗口，参考下表，分别新增"pgsql"、"hudi"连接，相关数据连接参数介绍请参见[创建CDL数据库连接](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24238.html)。
   
   表1PgSQL数据连接配置参数 
   | 参数名称        | 示例            |
   |:---|:---|
   | Link Type   | pgsql         |
   | Name        | pgsqllink     |
   | Host        | 10.10.10.10   |
   | Port        | 5432          |
   | DB Name     | testDB        |
   | User        | user          |
   | Password    | *user* *用户密码* |
   | Description | -             |
      
   表2Hudi数据连接配置参数 
   | 参数名称            | 示例                                                  |
   |:---|:---|
   | Link Type       | hudi                                                |
   | Name            | hudilink                                            |
   | Storage Type    | hdfs                                                |
   | Auth KeytabFile | /opt/Bigdata/third_lib/CDL/user_libs/cdluser.keytab |
   | Principal       | cdluser                                             |
   | Description     | xxx                                                 |
      
   
   
3. 参数配置完成后，单击"测试连接"，检查数据连通是否正常。 
   连接校验通过后，单击"确定"完成数据连接创建。
   
   
4. （可选）选择"ENV管理 \> 新建ENV"，进入"新建ENV"参数配置窗口，参考下表进行参数配置。 
   表3新建ENV配置参数 
   | 参数名称             | 示例       |
   |:---|:---|
   | Name             | test-env |
   | Driver Memory    | 1GB      |
   | Type             | spark    |
   | Executor Memory  | 1GB      |
   | Executor Cores   | 1        |
   | Number Executors | 1        |
   | Queue            | -        |
   | Description      | -        |
      
   参数配置完成后，单击"确定"创建ENV。
   
   
5. 选择"作业管理 \> 数据同步任务 \> 新建作业"，在"新建作业"窗口中填写配置。单击"下一步"，进入作业参数配置页面。 
   其中：
   
   | 参数名称 | 示例           |
   |:---|:---|
   | Name | job_pgtohudi |
   | Desc | -            |
      
   
   
6. 配置PgSQL作业参数。 
   1. 在作业参数配置页面，选取左侧"pgsql"图标拖入右侧编辑区域，然后双击此图标进入PgSQL作业参数配置窗口。参考下表进行参数配置，相关作业参数介绍请参见[创建CDL数据同步任务作业](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24239.html)。
      表4PgSQL作业参数 
      | 参数名称                  | 示例                   |
      |:---|:---|
      | Link                  | pgsqllink            |
      | Tasks Max             | 1                    |
      | Mode                  | insert、update、delete |
      | dbName Alias          | pgsqldb              |
      | Schema                | pgschema             |
      | Slot Name             | pg_slot              |
      | Enable FailOver Slot  | 否                    |
      | Slot Drop             | 否                    |
      | Connect With Hudi     | 是                    |
      | Use Exist Publication | 否                    |
      | Publication Name      | publicationtest      |
         
      
   
   2. 单击"+"按钮展开更多选项。 ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724866777.png "点击放大")
      ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
      - "Start Time" ：同步表起始时间。
      
      - "WhiteList"：输入数据库中的表。
      
      - "BlackList": 输入不抓取数据的数据库中的表。
      
      - "Topic Table Mapping"：
        - 如果"Connect With Hudi"选择"是"，则该参数为必填项。
        
        - 第一个框输入表名（例如"test"）。 第二个框输入Topic名（例如"test_topic"，该值与第一个框的表名只能是一对一的关系）。
         
        
   
   3. 单击"确定"，Pgsql作业参数配置完成。
   
   
   
   
7. 配置Hudi作业参数。 
   1. 在作业参数配置页面，选取左侧Sink区域的"hudi"图标拖入右侧编辑区域，然后双击此图标进入Hudi作业参数配置窗口。参考下表进行参数配置，相关作业参数介绍请参见[创建CDL数据同步任务作业](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24239.html)。
      表5Sink Hudi作业参数 
      | 参数名称                                | 示例            |
      |:---|:---|
      | Link                                | hudilink      |
      | Path                                | /cdl/test     |
      | Interval                            | 10            |
      | Max Rate Per Partition              | 0             |
      | Parallelism                         | 10            |
      | Target Hive Database                | default       |
      | Hudi表属性配置方式                         | 可视化视图         |
      | Hudi表属性全局配置                         | -             |
      | Hudi表属性配置-Table Name                | test          |
      | Hudi表属性配置-Table Type Opt Key        | COPY_ON_WRITE |
      | Hudi表属性配置-Hudi TableName Mapping    | -             |
      | Hudi表属性配置-Hive TableName Mapping    | -             |
      | Hudi表属性配置-Table Primarykey Mapping  | id            |
      | Hudi表属性配置-Table Hudi Partition Type | -             |
      | Hudi表属性配置-Custom Config             | -             |
         
      ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724747133.png "点击放大")
      
   
   2. （可选）单击"+"按钮展开更多选项，选择已创建的ENV，默认为"defaultEnv"。 ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724747129.png)
      
   
   3. 单击"确定"，完成Hudi作业参数配置。
   
   
   
   
8. 作业参数配置完成后，拖拽图标将作业进行关联，然后单击"保存"，作业配置完成。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724746905.png)
   
   
9. 在"作业管理"的作业列表中，找到创建的作业名称，单击操作列的"启动"，等待作业启动。 
   观察数据传输是否生效，例如在PgSQL数据库中对表进行插入数据操作，查看Hudi导入的文件内容。
   
   
 
