string ,int,float等等
特殊:
1.string中的-inf是负无穷
inf是正无穷
nan是空值
FixedString(N),类似与mysql中的varchar,可以指定字符串的长度
2.枚举类型,clickhouse不支持boolean类型,需要使用枚举来做
包括 Enum8 和 Enum16 类型。Enum 保存 ‘string‘= integer 的对应关系。
Enum8 用 ‘String‘= Int8 对描述。
Enum16 用 ‘String‘= Int16 对描述。
用法演示:
创建一个带有一个枚举 Enum8(‘hello‘ = 1, ‘world‘ = 2) 类型的列:
CREATE TABLE t_enum
(
x Enum8(‘hello‘ = 1, ‘world‘ = 2)
)
ENGINE = TinyLog
这个 x
列只能存储类型定义中列出的值:‘hello‘
或‘world‘
。如果尝试保存任何其他值,ClickHouse 抛出异常。
:) INSERT INTO t_enum VALUES (‘hello‘), (‘world‘), (‘hello‘)
INSERT INTO t_enum VALUES
Ok.
3 rows in set. Elapsed: 0.002 sec.
:) insert into t_enum values(‘a‘)
INSERT INTO t_enum VALUES
Exception on client:
Code: 49. DB::Exception: Unknown element ‘a‘ for type Enum8(‘hello‘ = 1, ‘world‘ = 2)
从表中查询数据时,ClickHouse 从 Enum
中输出字符串值。
SELECT * FROM t_enum
┌─x─────┐
│ hello │
│ world │
│ hello │
└───────┘
如果需要看到对应行的数值,则必须将 Enum
值转换为整数类型。
SELECT CAST(x, ‘Int8‘) FROM t_enum
┌─CAST(x, ‘Int8‘)─┐
│ 1 │
│ 2 │
│ 1 │
└─────────────────┘
3.数组,tuple,date,还有很多类型,可以去官网上看。
1.tinylog:
特点:
应用场景:小表,这个表一般只用于查询,例如国家,省份等
使用方式:创建表的时候指定引擎即可
2.memory
特点:
1.内存引擎,速度快,可以达到每秒10g,官网建议上限1亿条数据
2.不支持索引
使用方式:用于测试
3.merge
特点:
1.本身不存储数据,通过合并其他表的数据来得到自身的数据
4.mergetree(重点)
会自动的合并多个分支,减少了数据的存储
特点:
索引粒度:每个索引有多少行,默认值是8192
数据片段头在zk中的存储方式
使用直接io来操作磁盘合并时所需要的最小数据量,数据小于10g采用缓存io,大于10g采用磁盘io
linux中的io方式:直接io,缓存io
5.replacingmergetree
这个引擎是在mergertree的基础上,添加了删除重复数据的功能,该引擎和mergetree的不同之处在于它会删除
具有相同主键的重复项.
ver:版本列
原文:https://www.cnblogs.com/javazyh/p/13093552.html