
# 为什么创建Hudi表没有在DLI控制台上显示？
#### 问题描述
使用Flink SQL语句创建的Hudi表未在DLI控制台显示无法通过控制台对该表进行管理和查询操作。
#### 根因分析
DLI控制台的数据管理默认使用的是Hive Catalog，而Hudi表的元数据没有正确同步到Hive Catalog中。Hudi表的元数据管理是独立于Hive的，因此需要额外的配置来确保Hudi表的元数据能够被Hive Catalog识别和同步。
#### 解决方案
Hudi表持久化是指将Hudi表的元数据和数据信息同步并保存到Hive的元数据存储中，以便 Hive 能够识别和管理这些表。
- **SQL作业**
  如果仅使用SQL来操作Hudi数据，通常不需要配置额外的"持久化参数"，因为SQL作业本身已经提供了对Hudi数据的读写支持。
  
- **Flink OpenSource SQL作业**
  为了将Hudi表的元数据持久化到DLI的数据管理（Hive Catalog），需要在创建Hudi表时添加一些特定的配置参数，这些参数用于通知Hudi将元数据同步到Hive Catalog。
  详细参数说明如[表1]所示。
  在DLI使用Hudi提交Flink SQL作业且配置，配置hive_sync相关参数，实时同步元数据至由DLI的操作示例请参考[在DLI使用Hudi提交Flink SQL作业](https://support.huaweicloud.com/sqlref-hudi-dli/dli_hudi_0029.html)。
   表1创建Hudi结果表时配置的持久化参数 
  | 参数名称                        | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
  |:---|:---|
  | hive_sync.enable            | 是否启用向Hive同步表信息。 当你需要将Hudi表的元数据同步到 Hive元数据存储中，以便通过Hive查询工具或在DLI控制台的数据管理中访问Hudi表时，需要将此参数设置为 true。 - true：Hudi 将会把表的元数据（如表结构、分区信息等）同步到 Hive 中。  - false：不会向Hive同步表信息。   开启向hive同步表信息后会使用catalog相关权限，还需配置访问catalog的委托权限。                      |
  | hive_sync.mode              | Hudi表元数据同步到Hive的方式 根据你的环境和需求选择合适的同步模式。 - **jdbc：**通过JDBC连接到 Hive Server来同步元数据。  - **hms：**通过Hive Meta Client 直接与Hive Metastore交互来同步元数据。  - **hiveql**：通过执行Hive QL语句来同步元数据。   |
  | hive_sync.table             | 同步到Hive的表名称，Hudi表的元数据将同步到这个Hive表中                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | hive_sync.db                | 同步到Hive的数据库名称，Hudi表的元数据将同步到这个Hive数据库中的表。                                                                                                                                                                                                                                                                                                                                                                                                                   |
  | hive_sync.support_timestamp | 是否支持时间戳，用于确保Hudi表的元数据同步到Hive时能够正确处理时间戳字段。 建议配置为True。                                                                                                                                                                                                                                                                                                                                                                        |
     
  
- **Spark jar作业**
  在Spark jar中操作Hudi数据时，也需要配置一些参数来实现持久化和同步到Hive。
  详细参数说明如[表2]所示。
  在DLI使用Hudi提交Spark Jar作业且开启作业同步配置的示例请参考[在DLI使用Hudi提交Spark Jar作业](https://support.huaweicloud.com/sqlref-hudi-dli/dli_hudi_0028.html)。
   表2Spark Jar作业同步Hive表参数配置 
  | 参数                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 默认值                                                         |
  |:---|:---|:---|
  | hoodie.datasource.hive_sync.enable                    | 是否同步hudi表信息到Hive。当使用DLI提供的元数据服务时，配置该参数代表同步至DLI的元数据中。 建议该值设置为true，统一使用元数据服务管理hudi表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | true                                                        |
  | hoodie.datasource.hive_sync.database                  | 要同步给Hive的数据库名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | default                                                     |
  | hoodie.datasource.hive_sync.table                     | 要同步给Hive的表名，建议和hoodie.datasource.write.table.name的值保证一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | unknown                                                     |
  | hoodie.datasource.hive_sync.partition_fields          | 用于确定Hive分区列。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | ""                                                          |
  | hoodie.datasource.hive_sync.partition_extractor_class | 用于提取hudi分区列值，将其转换成Hive分区列。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | org.apache.hudi.hive.SlashEncodedDayPartitionValueExtractor |
  | hoodie.datasource.hive_sync.support_timestamp         | 当hudi表存在timestamp类型字段时，需指定此参数为true，以实现同步timestamp类型到hive元数据中。 该值默认为false，默认将timestamp类型同步为bigInt，默认情况可能导致使用sql查询包含timestamp类型字段的hudi表出现错误。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | true                                                        |
  | hoodie.datasource.hive_sync.fast_sync                 | Hudi同步Hive分区方式： - true：从最近一次hive同步后所修改的分区直接向Hive表中做add partition if not exist操作。  - false：会根据修改的分区去hive表查询是否已存在，不存在的进行添加。                                                                                                                                                              | true                                                        |
  | hoodie.datasource.hive_sync.mode                      | hudi表同步Hive表的方式，在使用DLI提供的元数据服务时需要保证为hms： - hms：通过hive metastore client同步元数据。  - jdbc：通过hive jdbc方式同步元数据。（DLI元数据服务不支持）  - hiveql：执行hive ql方式同步元数据。（DLI元数据服务不支持）   | hms                                                         |
  | hoodie.datasource.hive_sync.username                  | 使用jdbc方式同步Hive时，指定的用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | hive                                                        |
  | hoodie.datasource.hive_sync.password                  | 使用jdbc方式同步Hive时，指定的密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | hive                                                        |
  | hoodie.datasource.hive_sync.jdbcurl                   | 连接hive jdbc指定的连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | ""                                                          |
  | hoodie.datasource.hive_sync.use_jdbc                  | 是否使用Hive jdbc方式连接Hive同步Hudi表信息。建议该值设置为false，设置为false后jdbc连接相关配置无效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | true                                                        |
     
  
 
