文章目录
ClickHouse—DML操作
1. 数据的写入
- ClickHouse内部所有的数据操作都是面向Block数据块的,所以INSERT查询最终会将数据转换为Block数据块。
- INSERT语句在单个数据块的写入过程中是具有原子性的。
- 在默认的情况下,每个数据块最多可以写入1,048,576行数据(由max_insert_block_size参数控制)。
- 如果一条INSERT语句写入的数据少于 max_insert_block_size 行,则这批数据的写入具有原子性,即要么全部成功,要么全部失败。
- 需要注意的是,只有在 ClickHouse 服务端处理数据的时候才具有这种原子写入的特性,例如使用JDBC或者HTTP接口时。因为max_insert_block_size 参数在使用 CLI 命令行或者 INSERT SELECT 子句写入时是不生效的。
数据写入的三种方式
现在我们有一张表student
因为在default
库下面,所以没有写库名
CREATE table student(
id Int,
name String
)
ENGINE = MergeTree
PRIMARY KEY(id)