
# 创建Hudi数据（外表）
DWS通过外表方式访问OBS上的Hudi数据，与一般外表相比，Hudi外表无需额外设置更多的参数，只需指定format参数为"hudi"，即可指定数据源文件的格式。具体参见[CREATE FOREIGN TABLE (SQL on OBS or Hadoop)](https://support.huaweicloud.com/sqlreference-dws/dws_06_0161.html)。
#### 获取MRS上表定义
DWS Hudi外表为只读，因此在创建外表之前需要明确目标数据定义的字段及字段类型情况。
例如，对于MRS上的Hudi表，可以使用spark-sql来查询原始表定义：
```
SHOW create table rtd_mfdt_int_currency_t;
```
#### 编写DWS表定义
复制MRS表所有列的定义，创建hudi外表，进行适当的类型转换以适配DWS语法：
```
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，末尾要以"/"结尾。
