更新时间:2024-06-29 GMT+08:00
分享

创建Hudi数据描述(外表)

外表是对OBS上数据的映射。GaussDB(DWS)通过外表方式访问OBS上的Hudi数据,具体可参见CREATE FOREIGN TABLE (SQL on OBS or Hadoop)

与一般OBS外表相比,Hudi外表没有特别的参数需要指定,只需要指定format为'hudi'即可。

获取MRS上表定义

DWS Hudi外表是只读的,因此在创建外表之前需要明确目标数据定义了多少字段,每个字段是什么类型。Hudi外表支持的最大列数为5000列。

例如,对于MRS上的Hudi表,可以使用spark-sql来查询原始表定义:

1
SHOW create table rtd_mfdt_int_currency_t;

编写DWS表定义

复制MRS表所有列的定义,做适当的类型转换以适配DWS语法,创建OBS外表:

 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 obs_server OPTIONS (
foldername '/erpgc-obs-test-01/s000/sbi_fnd/rtd_mfdt_int_currency_t/',
format 'hudi',
encoding 'utf-8'
)distribute by roundrobin;

其中,foldername为hudi数据在OBS上存储路径,对应MRS中Spark-sql表定义中的LOCATION,末尾要以“/”结尾。

相关文档