【已解决】Flink Stream Load 方式写入类型为 array<smallint(6)> 字节不够但是却没报错,写入 [null]

Viewed 42
  1. 如题,这里应该提示报错,并给 url 展示报错原因,比如字节数不够。

  2. flink 采用 Stream Load 方式写入类型是 array<char(36)> 的时候,却能够因为字节不够,导致写入失败,并列出失败原因的 url

  3. 因为上述字节不够导致了另外一个问题,修改字段长度,array<char(36)> --> array<varchar(100)>,却报了一个错误:SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = Can not change ARRAY to ARRAY,语句如下:

-- 原本的字段定义:test_array array<char(36)> NULL COMMENT '测试修改';
alter table tableName modify column test_array array<varchar(100)> NULL COMMENT '测试修改';
2 Answers

官方文档中,关于严格模式有这样一段描述:

另外还有一个关于 max_filter_ratio 的描述:

按照官方文档的描述,严格模式是默认关闭的,我也没有设置,有点不理解为什么当来了一个字节长度大于设置的 array<char(36)> 类型的数据时,会出现报错,并返回一个报错的 url,用来查看原因。

至于字节超出 array<smallint(6)> 类型的范围时,按照文档中的描述,严格模式对其不起作用,所以没有报错,直接给了 null 值。

  1. 开了严格模式不:stream load
  2. 修改字段长度的语句麻烦贴一下