mysql_datatypes_support_level
decimal、datetime64、date2Date32、date2String 或 geometry 的任意组合。默认启用所有现代映射 (decimal、datetime64、date2Date32、geometry) 。
decimal:在精度允许的情况下,将NUMERIC和DECIMAL类型转换为Decimal。datetime64:当精度不为0时,将DATETIME和TIMESTAMP类型转换为DateTime64,而不是DateTime。date2Date32:将DATE转换为Date32,而不是Date。其优先次序高于date2String。date2String:将DATE转换为String,而不是Date。会被datetime64覆盖。geometry:将 MySQL 的空间类型 (LINESTRING、POLYGON、MULTILINESTRING、MULTIPOLYGON、MULTIPOINT) 转换为对应的 ClickHouse 几何类型,并将通用的GEOMETRY类型转换为总括类型Geometry。无论是否启用此选项,POINT始终都会转换为Point。由于通用的GEOMETRY列可以保存任意子类型,如果读取到某个子类型在 ClickHouse 中没有对应类型的值 (GEOMETRYCOLLECTION),会在读取时抛出异常;声明为GEOMETRYCOLLECTION的列会映射为String。除POINT外,可为 NULL 的空间列也会映射为Nullable(String),因为Point是唯一可嵌套在Nullable中的几何类型。每个此类字符串均由 4 字节的 SRID 前缀和 MySQL 返回的 WKB 载荷组成。以上内容适用于根据 MySQL 表的列类型推断 schema 的情况;当 source 为查询 (mysql表函数或MySQL表引擎的query(...)参数) 时,MySQL 会将每个空间结果列都报告为不含具体子类型的通用GEOMETRY,因此此类列 (包括POINT) 会映射为String(如果可为 NULL,则为Nullable(String)) 。