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

DLI datasourceV1表和datasourceV2表

什么是DLI datasourcev1表和DLI datasourcev2表?

  • DLI datasource v1表(以下简称V1表):DLI的Datasource表格式,建表/插入/truncate命令使用DLI自定义的command,表的数据路径为$tablepath/UUID/数据文件。
    图1 DLI datasource v1表
  • DLI datasource v2表(以下简称V2表):spark开源的Datasource表,建表/插入/truncate命令使用spark开源的command,表的数据路径为$tablepath/数据文件。
    图2 DLI datasource v2表

DLI各Spark版本对V1、V2表兼容性

表1 DLI各Spark版本对V1、V2表兼容列表

表类型

Spark2.3 SQL队列

Spark2.3 通用队列

Spark2.4 SQL队列

Spark2.4 通用队列

Spark3.1 SQL队列

Spark3.1 通用队列

Spark3.3 SQL队列

Spark3.3 通用队列

V1表

部分支持

V2表

×

×

(238开始支持,237不支持)

(238开始支持,237不支持)

×

×

表2 Spark3.3 通用队列语法支持列表

表类型

select

create table

create table like

CTAS

insert into

insert overwrite

load data

alter table set location

truncate table

V1表

×

×

×

×

×

×

V2表

怎么确认当前用户创建的表是v1还是v2表?

1. 使用datasource语法建表:

CREATE TABLE IF NOT EXISTS table_name (id STRING) USING parquet;

2. 执行show create table查看TBLPROPERTIES下的"verison"字段的值

"v1"为V1表;"v2"则为V2表。

如需修改V1表为V2表请提交工单联系客户支持获取操作帮助。

升级示例

升级Spark引擎和修改数据表时,如新建队列时切换了计算资源类型可能会导致计费资源的费用变化。

  • 如果原队列使用的是弹性资源池类型的计算资源,那么新建队列不涉及计算资源的费用变化。
  • 如果原队列使用的是非弹性资源池的类型的计算资源,那么使用弹性资源池资源新建队列后计算资源的费用将发生变化,具体情况以计算资源的价格详情为准。
  • 示例1:使用SQL队列,将Spark版本从Spark 2.4.x升级至Spark 3.3.1对数据表的版本有影响吗?

    不需要,Spark 2.4.x的SQL队列支持V1表和V2表,因此升级Spark版本只需要考虑Spark版本对SQL语法的兼容性。

  • 示例2:使用通用队列,将Spark版本从Spark 2.4.x升级至Spark 3.3.1对数据表的版本有影响吗?

    Spark 2.4.x通用队列支持V1表和V2表,但Spark3.3.x通用队列不支持V1表。

    因此如需将Spark版本从Spark 2.4.x升级至Spark 3.3.1需经过以下步骤:

    1. 将Spark 2.4.x的V1表修改为V2表。
    2. 升级Spark 2.4.x的V2表升级为Spark 3.3.1的V2表。
      同时还需考虑Spark jar作业API语法的兼容性。
      表3 DLI各Spark版本对V1、V2表兼容列表

      表类型

      Spark2.4 通用队列

      Spark3.3 通用队列

      V1表

      部分支持

      V2表

  • 示例3:使用通用队列,怎样将Spark 2.3.2的V1表升级为Spark 3.3.1的V2表?

    Spark 2.3.2通用队列不支持V2表,Spark 3.3.1通用队列不支持V1表:

    1. 将Spark 2.3.2的V1表升级至Spark 2.4.5的V1表。
    2. 将Spark 2.4.5的V1表修改为V2表。
    3. 升级Spark 2.4.5的V2表升级为Spark 3.3.1的V2表。

      同时还需考虑Spark jar作业API语法的兼容性。

    表4 DLI各Spark版本对V1、V2表兼容列表

    表类型

    Spark2.3 通用队列

    Spark2.4 通用队列

    Spark3.3 通用队列

    V1表

    部分支持

    V2表

    ×

相关文档