更新时间:2025-09-12 GMT+08:00
创建Hudi数据(外表)
DWS通过外表方式访问OBS上的Hudi数据,与一般外表相比,Hudi外表无需额外设置更多的参数,只需指定format参数为“hudi”,即可指定数据源文件的格式。具体参见CREATE FOREIGN TABLE (SQL on OBS or Hadoop)。
获取MRS上表定义
DWS Hudi外表为只读,因此在创建外表之前需要明确目标数据定义的字段及字段类型情况。
例如,对于MRS上的Hudi表,可以使用spark-sql来查询原始表定义:
1
|
SHOW create table rtd_mfdt_int_currency_t; |
编写DWS表定义
复制MRS表所有列的定义,创建hudi外表,进行适当的类型转换以适配DWS语法:
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE FOREIGN TABLE rtd_mfdt_int_currency_ft( _hoodie_commit_time text, _hoodie_commit_seqno text, _hoodie_record_key text, _hoodie_partition_path text, _hoodie_file_name text, ... )SERVER hudi_server OPTIONS ( foldername '/erpgc-test-01/s000/u1/rtd_mfdt_int_currency_t/', format 'hudi', encoding 'utf-8' )distribute by roundrobin; |
其中,foldername为hudi数据在OBS上存储路径,对应MRS中Spark-sql表定义中的LOCATION,末尾要以“/”结尾。