ClickHouse 简单操作
Click House官方中文文档-SQL语法
1.创建&查看&使用数据库
1 2 3 4 5 6 7 8
| # 语法: CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] # 示例: create database test; # 查看数据库 show databases; # 选择/使用数据库 use test;
|
2.创建表
1 2 3 4 5 6 7 8 9 10 11
| # 语法: CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ( name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [compression_codec] [TTL expr1], name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [compression_codec] [TTL expr2], ... ) ENGINE = engine # 示例:(TinyLog是最简单的表的引擎,用于将数据存储在磁盘上。常用于小表。) create table t1 (id Int32,name String) engine=TinyLog; # 查看所有表 show tables;
|
3.插入&查询数据
1 2 3 4
| # 插入数据 insert into t1 (id, name) values (1, 'abc'), (2, 'bbbb'),(3,'sdfg'); # 查询所有数据 select * from t1;
|
ClickHouse 命令行客户端
- 交互模式:
1 2
| clickhouse-client clickhouse-client --host=... --port=... --user=... --password=...
|
- 启用多行查询:
1 2
| clickhouse-client -m clickhouse-client --multiline
|
- 以批处理模式运行查询:
1 2 3
| clickhouse-client --query='SELECT 1' echo 'SELECT 1' | clickhouse-client clickhouse-client <<< 'SELECT 1'
|
- 从指定格式的文件中插入数据:
1 2
| clickhouse-client --query='INSERT INTO table VALUES' < data.txt clickhouse-client --query='INSERT INTO table FORMAT TabSeparated' < data.tsv
|
ClickHouse HTTP 访问
默认情况下,ClickHouse 会在8123
端口监听 HTTP 请求。如果你发送一个不带参数的 GET 请求,它会返回一个 OK 字符串,你可以将它用在 ClickHouse 的健康检查脚本中。
1 2
| $ curl 'http://localhost:8123/' Ok.
|
在使用 curl 等工具访问 ClickHouse 的 HTTP 接口时,可以通过 URL 中的 query 参数发送请求,或者发送 POST 请求,或者将查询的开头部分放在 query 参数中,而将其它部分放在 POST 中。
1 2 3
| # 可用HTTP客户端工具访问http://localhost:8123/?query=select * from test.t1 # 作为 query 参数,需要对 URL 进行编码,如空格编码为`%20`。 $ curl 'http://localhost:8123/?query=select%20*%20from%20test.t1'
|