文档首页/ 数据湖探索 DLI/ 常见问题/ SQL作业相关问题/ 运维指导/ 从DLI导入数据到OBS,为什么数据量出现差异?
更新时间:2022-11-09 GMT+08:00

从DLI导入数据到OBS,为什么数据量出现差异?

问题现象

使用DLI插入数据到OBS临时表文件,数据量有差异。

根因分析

出现该问题可能原因如下:

  • 作业执行过程中,读取数据量错误。
  • 验证数据量的方式不正确。

通常在执行插入数据操作后,如需确认插入数据量是否正确,建议通过查询语句进行查询。

如果OBS对存入的文件数量有要求,可以在插入语句后加入“DISTRIBUTE BY number”。例如,在插入语句后添加“DISTRIBUTE BY 1”,可以将多个task生成的多个文件汇总为一个文件。

操作步骤

  1. 在管理控制台检查对应SQL作业详情中的“结果条数”是否正确。 检查发现读取的数据量是正确的。

    图1 检查读取的数据量

  2. 确认客户验证数据量的方式是否正确。客户验证的方式如下:

    1. 通过OBS下载数据文件。
    2. 通过文本编辑器打开数据文件,发现数据量缺失。

    根据该验证方式,初步定位是因为文件数据量较大,文本编辑器无法全部读取。

    通过执行查询语句,查询OBS数据进一步进行确认,查询结果确认数据量正确。

    因此,该问题为验证方式不正确造成。

参考信息

插入数据的SQL语法,请参考《数据湖探索Spark SQL语法参考》。