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

在DLI使用Hudi提交Spark SQL作业

登录DLI管理控制台,选择“SQL编辑器”首进入提交SQL作业的界面。提交SQL作业时需要选择支持Hudi的Spark SQL队列。

  1. 创建一张Hudi表:

    将如下的建表语句粘贴至DLI SQL编辑器的输入区域,修改 LOCATION,执行引擎选择Spark,配置队列,数据目录,数据库,随后点击右上角的执行按钮,提交作业。

    注意:由DLI提供元数据服务时,暂不支持创建Hudi内表,即必须配置 LOCATION 指向 OBS 路径。
    CREATE TABLE
      hudi_table (id int, comb long, name string, dt date) USING hudi PARTITIONED BY (dt) OPTIONS (
        type = 'cow',
        primaryKey = 'id',
        preCombineField = 'comb'
      ) LOCATION 'obs://bucket/path/hudi_table';

    等待下方执行历史显示作业执行成功,代表建表成功,此时创建了一张Hudi的COW分区表。

    可以执行 SHOW TABLES 检查建表是否成功:

    SHOW TABLES;

  2. 执行SQL写入刚才创建的Hudi表:

    INSERT INTO hudi_table VALUES (1, 100, 'aaa', '2021-08-28'), (2, 200, 'bbb', '2021-08-28');

    随后可以在编辑器下方的”执行历史(最近一天)”窗格中检查执行结果,或者点击左侧”作业管理”-> ”SQL作业”跳转到SQL作业记录中检查。

  3. 在执行SQL的时候配置Hudi参数:

    DLI不支持直接使用SET语句配置参数

    点击”设置”,随后在”参数设置”一栏可以配置键和值,Hudi的参数可以通过此处提交。配置在此处的参数会在提交SQL作业时被应用。

    随后可以在左侧菜单点击”作业管理”->”SQL作业”,随后在列表中选中执行的作业,并点击下方窗格,唤出作业详情,在”参数设置”一栏中,可以检查参数配置情况。

  4. 执行SQL查询刚才写入的内容:

    select id,comb,name,dt from hudi_table where dt='2021-08-28';

    可以在编辑器下方窗格查看查询结果。

  5. 删除刚才创建的Hudi表:

    如果创建的是外表,执行SQL删除表时仅删除Hudi表的元数据,数据仍然存在OBS桶中,需要手动清理。

    DROP TABLE IF EXISTS hudi_table;

相关文档