Database 在Clickhouse数据导入中,是否存在忽略/替换目标列类型不正确的数据的设置?

Database 在Clickhouse数据导入中,是否存在忽略/替换目标列类型不正确的数据的设置?,database,import,clickhouse,Database,Import,Clickhouse,我正在尝试将数据导入Clickhouse。 问题是有很多字段填充了数据,比如“N/a”,同时它们应该是浮动的 是否有设置表明,如果要插入的数据不是目标列的正确类型,Clickhouse应该忽略它或将其替换为nan或null create table XYZ(K Int64, A Float64 default NaN, B Nullable(Float64)) Engine=Memory; insert into XYZ(K) values(1); insert into XYZ(K, A, B

我正在尝试将数据导入Clickhouse。 问题是有很多字段填充了数据,比如“N/a”,同时它们应该是浮动的

是否有设置表明,如果要插入的数据不是目标列的正确类型,Clickhouse应该忽略它或将其替换为nan或null

create table XYZ(K Int64, A Float64 default NaN, B Nullable(Float64)) Engine=Memory;
insert into XYZ(K) values(1);
insert into XYZ(K, A, B) values(2, NaN, Null);

SELECT * FROM XYZ

┌─K─┬───A─┬────B─┐
│ 1 │ nan │ ᴺᵁᴸᴸ │
│ 2 │ nan │ ᴺᵁᴸᴸ │
└───┴─────┴──────┘





对于预处理输入数据,可以使用以下标准Unix实用程序:

不适用->不适用

cat data.csv | sed's/N\/A/NaN/g'|单击房屋客户端--query=“插入到表中_name格式csv”
不适用->空

cat data.csv | sed's/N\/A//g'|单击房屋客户端--query=“插入到表中”_nameformat csv”

用于预处理输入数据的标准Unix实用程序如下所示:

不适用->不适用

cat data.csv | sed's/N\/A/NaN/g'|单击房屋客户端--query=“插入到表中_name格式csv”
不适用->空

cat data.csv | sed's/N\/A//g'|单击房屋客户端--query=“插入到表中”_nameformat csv”
echo -e "3,N/A,N/A\n4,0.5,0.5"
3,N/A,N/A
4,0.5,0.5

echo -e "3,N/A,N/A\n4,0.5,0.5"|clickhouse-client -q "insert into XYZ SELECT K, ifNull(toFloat64OrNull(A),NaN), toFloat64OrNull(B) FROM input('K Int64, A String, B String') FORMAT CSV";

SELECT * FROM XYZ

┌─K─┬───A─┬────B─┐
│ 3 │ nan │ ᴺᵁᴸᴸ │
│ 4 │ 0.5 │  0.5 │
└───┴─────┴──────┘
create table XYZ_null (K Int64, A String, B String) Engine=Null;
create materialized view XYZ_mv to XYZ as SELECT K, ifNull(toFloat64OrNull(A),NaN) A, toFloat64OrNull(B) B from XYZ_null

echo -e "5,N/A,N/A\n6,0.5,0.5"|clickhouse-client -q "insert into XYZ_null FORMAT CSV";

SELECT * FROM XYZ

┌─K─┬───A─┬────B─┐
│ 5 │ nan │ ᴺᵁᴸᴸ │
│ 6 │ 0.5 │  0.5 │
└───┴─────┴──────┘