更新时间:2022-02-22 GMT+08:00

为什么INSERT INTO CARBON TABLE失败?

问题

为什么INSERT INTO CARBON TABLE命令无法在日志文件中记录以下信息?

Data load failed due to bad record

回答

在以下场景中,INSERT INTO CARBON TABLE命令会失败:

  • 当源表和目标表的列数据类型不同时,源表中的数据将被视为Bad Records,则INSERT INTO命令会失败。
  • 源列上的aggregartion函数的结果超过目标列的最大范围,则INSERT INTO命令会失败。

    解决方法:

    在进行插入操作时,可在对应的列上使用cast函数。

    示例:

    1. 使用DESCRIBE命令查询目标表和源表。

      DESCRIBE newcarbontable;

      结果:

      col1 int
      col2 bigint

      DESCRIBE sourcetable;

      结果:

      col1 int
      col2 int
    2. 添加cast函数以将BigInt类型数据转换为Integer类型数据。

      INSERT INTO newcarbontable select col1, cast(col2 as integer) from sourcetable;