ClickHouse常用语句整理
数据库
建库语法:
CREATE DATABASE [IF NOT EXISTS] db_name [ENGINE=engine];
Clickhouse的数据库也支持设置引擎。数据库目前一共支持5种引擎:
- Ordinary: 默认引擎,在此数据库里可以使用任意类型的表引擎。
- Dictionary: 字典引擎,此类数据库会自动为所有数据字典创建他们的数据表。
- Memory: 内存引擎,此类数据库里的表只会停留在内存中,不涉及磁盘操作,服务重启数据会被清除。
- Lazy:日志引擎,此类数据库里的表只能使用Log系列的表引擎。
- MySQL:MySQL引擎,此类数据库会自动拉取MySQL中的表,并为他们创建MySQL表引擎的数据表。
注:在绝大多数情况下只需使用默认数据库引擎即可,语法如下:
localhost :) CREATE DATABASE IF NOT EXISTS testdb ENGINE=Ordinary;
建库之后,clickhouse会在path路径的data目录下创建对应的数据库目录文件,如下:
# ls -l data/
drwxr-x--- 2 clickhouse clickhouse 6 Feb 23 17:48 testdb
# ls -l metadata/
drwxr-x--- 2 clickhouse clickhouse 6 Feb 23 17:48 testdb
-rw-r----- 1 clickhouse clickhouse 41 Feb 23 17:48 testdb.sql
删库语法:
DROP DATABASE [IF EXISTS] db_name;
数据表
建表
Clickhouse目前提供了三种最基本的建表方法。
1、常规定义方法:
CREATE TABLE [IF NOT EXISTS] [db_name].tb_name (
name1 [type] [Default|Materialized|Alias expr],
name2 [type] [Default|Materialized|Alias expr],
....
) ENGINE=engine
使用[db_name].参数可以为表指定数据库,不指定默认使用default库。
2、复制其他表结构:
CREATE TABLE [IF NOT EXISTS] [db_name2].tb_name2 AS [db_name1