Clickhouse创建物化视图时,因为存在null值报错DB::Exception: Data type Nullable(Nothing) cannot be used in tables.

水昊阳
2023-12-01

问题描述

使用Clickhouse创建物化视图时,因存在null值,出现报错,报错信息如下:

SQL 错误 [1002]: ClickHouse exception, code: 1002, host: xxx.xxx.xxx.xxx, port: 8123; Code: 370. DB::Exception: Data type Nullable(Nothing) cannot be used in tables. (DATA_TYPE_CANNOT_BE_USED_IN_TABLES) (version 21.9.7.2 (official build))

原因分析:

根据报错可知,是因为待创建的物化视图数据存在null


解决方案:

创建视图时,将数据存在null的字段的字段类型改为Nullable(TYPE)

例如:创建的物化视图    `building` 和`phone`存在 数据为null情形

此时在创建物化视图时,指定字段的字段类型即可

create MATERIALIZED view if not exists test_mv 
(
    `id` String,
    `building` Nullable(String),
    `phone` Nullable(Int8),
    `create_time` DateTime,
    `update_time` DateTime
)

 类似资料: