搜索:clickhouse

clickhouse清空表数据

原创 2021-05-25 18:30 阅读(107)次
最近看到很多朋友问clickhouse如何清空表数据?或者有没有像mysql一样truncate删除整张表数据的语句呢? 答案是:没有。它只提供如下语句: ALTER TABLE 表名 DELETE WHERE 条件 . 并且这语句性能不是很好,也是异步删除,语句执行成功不代表真的成功。 当然你也可以使用删除分区的方式达到清空表的目的,但提前你得一个一个分区的删,太麻烦了。 那么现在你知道了:你想快速清空表,只能重建表了。 重建表要先drop表,如下: drop table 表名 . 如果你的表是在集群下,也可以使用分布式DDL来删除和重建表。 ...

clickhouse如何修改字段名

原创 2021-03-19 10:00 阅读(881)次
clickhouse如何修改字段名?也就是如何对字段重命名? 早期版本是不支持的,在ClickHousereleasev20.4.2.9,2020-05-12版本之后就开始加入了这个特性。大家记得看看自己的版本。 语法如下: ```sql ALTER TABLE visits RENAME COLUMN webBrowser TO browser ``` 分布式集群下用分布式DDL修改字段名 ```sql ALTER TABLE visits on cluster shipin_cluster RENAME COLUMN webBrowser TO browser `...

clickhouse如何删除数据库和创建数据库以及分布式DDL创建数据库

原创 2021-02-25 17:20 阅读(533)次
#### 前言 我们使用clickhouse大部分情况都是使用集群模式,那么我们希望创建库或删除库时都是一条语句在集群所有节点中运行,而不是手动在各节点单独执行创建或删除库。 语句如下: #### 1.clickhouse删除数据库 ```sql drop database base_db ``` #### 2.存在时再删除数据库 ```sql drop database IF EXISTS base_db ``` IF EXISTS是可选的 #### 3.分布式DDL删除数据库 ```sql drop database IF E...

mybatis设置全局变量

原创 2020-12-29 15:19 阅读(454)次
clickhouse在分布式子查询中会将语句发送到多个分片执行,如果语句中的表前不写上库名,查询时会报在default库中找不到表,所以我们需要给每个clickhouse的查询中都写上库名,这样才能正常执行。但库名写死在语句中并不优雅,万一库名修改或测试环境的库名不同,我们开发要将这么多查询语句都要修改,不得累到死,于是就要将clickhouse库名进行配置到公共变量,并在mybatis中获取。下面分享下如何在mybatis设置和全局变量。先要spring boot配置文件中定义需要设置的全局配置,然后在clickhouse的mybatis sessionFactory中设置全局变量,这样my...

druid执行clickhouse报错:sql injection violation, dbType clickhouse , druid-version 1.2.2, syntax error

原创 2020-12-15 11:45 阅读(1143)次
今天遇到一个druid不支持clickhouse的问题,druid执行clickhouse报错:sql injection violation, dbType clickhouse , druid-version 1.2.2, syntax error错误如下: Caused by: java.sql.SQLException: sql injection violation, dbType clickhouse, , druid-version 1.2.2, syntax error: syntax error, error in :'icle r where first_appear_ti...

clickhouse如何删除数据

原创 2020-11-27 18:09 阅读(6822)次
clickhouse删除数据提供了三种方式:一、是删除分区,数据就会删除掉二、是通过Alter语句删除数据三、是还可以通过设置日期字段或表的TTL生命周期,到期自动清除数据注意:上面前2点都可以使用分布式DDL删除集群各节点数据,第三点是创建表时定义的,暂时不提。1.删除分区alter table 表名 drop partition 分区名分区名可以用下语句查询select * from system.parts p where table = '表名'以我下面这张表为例,分区函数是toYYYYMMDD(collect_time),按天分区,那分区名就是20201010这样的日期格式,只要按这...

clickhouse执行查询内存超出限制问题:Memory limit (total) exceeded

原创 2020-11-26 18:15 阅读(2630)次
今天用clickhouse执行分布式查询报错:SQL 错误 [241]: ClickHouse exception, code: 241, host: 192.168.29.124, port: 18123; Code: 241, e.displayText() = DB::Exception: Memory limit (total) exceeded: would use 15.44 GiB (attempt to allocate chunk of 4294967296 bytes), maximum: 13.95 GiB (version 20.6.3.28 (official bui...

clickhouse执行分布式DDL报错:Table `xxx` isn't replicated, but shard #2 is replicated according to its

原创 2020-11-17 18:06 阅读(342)次
clickhouse执行分布式DDL报错:Table `xxx` isn't replicated, but shard #2 is replicated according to its cluster definition执行的语句是:alter table engs_comp_clg_result_local on cluster shipin_cluster drop partition 20191101 我是想把我集群shipin_cluster中两个节点的本地表中一个分区删除掉,但是一执行报如上错误,说是我的本地表不是复制表,但是分片2却根据定义在复制。我的集群配置如下:<y...