xiaozhongcheng created HUDI-4603:
------------------------------------

             Summary: Improve HMS Catalog function in flink
                 Key: HUDI-4603
                 URL: https://issues.apache.org/jira/browse/HUDI-4603
             Project: Apache Hudi
          Issue Type: Improvement
            Reporter: xiaozhongcheng
             Fix For: 0.12.0


1. Make users can choose to sync ro and rt table or not when using hms catalog 
in flink.

Currently, if users use hms catalog in flink, ro and rt table will be also sync 
to the hms.

But If I just want to sync the metadata of hudi table, I don't want to sync ro 
and rt table.

So, I think users should be able to choose to sync the ro and rt table or not.

 

2. Make users can sync ro and rt table correctly when the table is partitioned 
table.

Currently, If users create the partitioned table in hms catalog, but the 
partition field is not in the form of yyyy/mm/dd. If they don't make 
hive_sync.partition_extractor_class to 
org.apache.hudi.hive.HiveStylePartitionValueExtractor, ro and rt table will not 
be synced correctly

The stacks is list below:

 
{code:java}
org.apache.hudi.exception.HoodieException: Got runtime exception when hive 
syncing student22
  at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:144) 
~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at 
org.apache.hudi.sink.StreamWriteOperatorCoordinator.doSyncHive(StreamWriteOperatorCoordinator.java:335)
 ~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at 
org.apache.hudi.sink.StreamWriteOperatorCoordinator.syncHive(StreamWriteOperatorCoordinator.java:326)
 ~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at 
org.apache.hudi.sink.StreamWriteOperatorCoordinator.handleEndInputEvent(StreamWriteOperatorCoordinator.java:426)
 ~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at 
org.apache.hudi.sink.StreamWriteOperatorCoordinator.lambda$handleEventFromOperator$3(StreamWriteOperatorCoordinator.java:278)
 ~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at 
org.apache.hudi.sink.utils.NonThrownExecutor.lambda$wrapAction$0(NonThrownExecutor.java:130)
 ~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
[?:1.8.0_241]
  at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_241]
  at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:1.8.0_241]
  at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:1.8.0_241]
  at java.lang.Thread.run(Thread.java:748) [?:1.8.0_241]
Caused by: org.apache.hudi.hive.HoodieHiveSyncException: Failed to sync 
partitions for table student22_ro
  at org.apache.hudi.hive.HiveSyncTool.syncPartitions(HiveSyncTool.java:340) 
~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:232) 
~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at org.apache.hudi.hive.HiveSyncTool.doSync(HiveSyncTool.java:157) 
~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:141) 
~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  ... 10 more
Caused by: java.lang.IllegalArgumentException: Partition path school=beida is 
not in the form yyyy/mm/dd 
  at 
org.apache.hudi.hive.SlashEncodedDayPartitionValueExtractor.extractPartitionValuesInPath(SlashEncodedDayPartitionValueExtractor.java:58)
 ~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at 
org.apache.hudi.sync.common.HoodieSyncClient.getPartitionEvents(HoodieSyncClient.java:144)
 ~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at org.apache.hudi.hive.HiveSyncTool.syncPartitions(HiveSyncTool.java:318) 
~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:232) 
~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at org.apache.hudi.hive.HiveSyncTool.doSync(HiveSyncTool.java:157) 
~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:141) 
~[hudi-flink1.15-bundle-0.12.0-rc2.jar:0.12.0-rc2]
  ... 10 more {code}
 

 

 

 

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to