LOAD LABEL example_db.label1(DATA INFILE("bos://my_bucket/input/file.txt")INTO TABLE `my_table`COLUMNS TERMINATED BY ",")WITH BROKER bos("bos_endpoint" = "http://bj.bcebos.com","bos_accesskey" = "xxxxxxxxxxxxxxxxxxxxxxxxxx","bos_secret_accesskey"="yyyyyyyyyyyyyyyyyyyyyyyyyy")PROPERTIES("strict_mode" = "true")
curl --location-trusted -u user:passwd \\-H "strict_mode: true" \\-T 1.txt \\http://host:port/api/example_db/my_table/_stream_load
CREATE ROUTINE LOAD example_db.test_job ON my_tablePROPERTIES("strict_mode" = "true")FROM KAFKA("kafka_broker_list" = "broker1:9092,broker2:9092,broker3:9092","kafka_topic" = "my_topic");
SET enable_insert_strict = true;INSERT INTO my_table ...;
null
,而在进行列类型转换后结果为 null
的这一类数据。列类型转换
,并不包括用函数计算得出的 null
值。decimal(1,0)
, 原始数据为 10,则属于可以通过类型转换但不在列声明的范围内。这种数据 strict 对其不产生影响。原始数据类型 | 原始数据举例 | 转换为 TinyInt 后的值 | 严格模式 | 结果 |
空值 | \\N | NULL | 开启或关闭 | NULL |
非空值 | "abc" or 2000 | NULL | 开启 | 非法值(被过滤) |
非空值 | "abc" | NULL | 关闭 | NULL |
非空值 | 1 | 1 | 开启或关闭 | 正确导入 |
abc
及 2000
在转换为 TinyInt 后,会因类型或精度问题变为 NULL。在严格模式开启的情况下,这类数据将会被过滤。而如果是关闭状态,则会导入 null
。原始数据类型 | 原始数据举例 | 转换为 Decimal 后的值 | 严格模式 | 结果 |
空值 | \\N | null | 开启或关闭 | NULL |
非空值 | aaa | NULL | 开启 | 非法值(被过滤) |
非空值 | aaa | NULL | 关闭 | NULL |
非空值 | 1 or 10 | 1 or 10 | 开启或关闭 | 正确导入 |
abc
在转换为 Decimal 后,会因类型问题变为 NULL。在严格模式开启的情况下,这类数据将会被过滤。而如果是关闭状态,则会导入 null
。10
虽然是一个超过范围的值,但是因为其类型符合 decimal 的要求,所以严格模式对其不产生影响。10
最后会在其他导入处理流程中被过滤。但不会被严格模式过滤。
本页内容是否解决了您的问题?