更新时间:2024-12-25 GMT+08:00
分享

SparkSQL建表参数规范

规则

  • 建表必须指定primaryKey和preCombineField。

    Hudi表提供了数据更新的能力和幂等写入的能力,该能力要求数据记录必须设置主键用来识别重复数据和更新操作。不指定主键会导致表丢失数据更新能力,不指定preCombineField会导致主键重复。

    参数名称

    参数描述

    输入值

    说明

    primaryKey

    hudi主键

    按需

    必须指定,可以是复合主键但是必须全局唯一

    preCombineField

    预合并键,相同主键的多条数据按该字段进行合并

    按需

    必须指定,相同主键的数据会按该字段合并,不能指定多个字段

  • 禁止建表时将hoodie.datasource.hive_sync.enable指定为false。

    指定为false将导致新写入的分区无法同步到Hive Metastore中。由于缺失新写入的分区信息,查询引擎读取该时会丢数。

  • 禁止指定Hudi的索引类型为INMEMORY类型。

    该索引仅是为了测试使用。生产环境上使用该索引将导致数据重复。

建表示例

create table data_partition(id int, comb int, col0 int,yy int, mm int, dd int) 
using hudi                               --指定hudi 数据源
partitioned by(yy,mm,dd)                 --指定分区, 支持多级分区
location 'obs://bucket/path/data_partition'       --指定路径,使用DLI提供的元数据服务时只支持创建OBS表
options(
type='mor',                              --表类型 mor 或者 cow
primaryKey='id',                         --主键,可以是复合主键但是必须全局唯一
preCombineField='comb'                   --预合并字段,相同主键的数据会按该字段合并,当前不能指定多个字段  
)

相关文档