1.ClikcHouse
目前ClikcHouse只能在 Linux, x86_64 with SSE 4.2下运行,其他系统只能使用万能又无敌的docker。
2.开始使用Docker安装
2.1 下载
docker pull yandex/clickhouse-client
docker pull yandex/clickhouse-server
在终端输入上面2条命令后会进行漫长的下载过程
2.2 启动
都成功后就可以使用下面的命令启动了
docker run -d --name ch-server --ulimit nofile=262144:262144 -p 8123:8123 -p 9000:9000 -p 9009:9009 yandex/clickhouse-server
如果成功就会返回一个容器ID,你也可以使用docker ps -a
查看,如下图:
2.3 进入容器
确定名称ch-server后可以使用下面的命令进入容器:
docker exec -i -t ch-server /bin/bash
docker exec:在运行的容器中执行命令,操作的对象是 容器
docker run :根据镜像创建一个容器并运行一个命令,操作的对象是 镜像;
这样就进入容器了,前面就是你的容器ID
2.4 进入clickhouse命令行模式
使用clickhouse-client
命令 进入clickhouse命令行模式
这样你就成功的在容器中部署了ClickHouse,进入了操作界面。
3 常用命令
下面是ClickHouse的一些常用命令
查看所有的数据库
show databases
创建表
CREATE TABLE IF NOT EXISTS example (
country_code FixedString(2),
os_id UInt8,
browser_id UInt8,
categories Array(Int16),
action_day Date,
action_time DateTime
) engine=Memory
重命名表
rename table tbl1 to btl2;
删除表
drop table tbl;
添加列
alter table dsp_statis add column cost UInt32 default 0;
查看表结构
desc tbl;
执行 SQL 文件
clickhouse-client -d 数据库 --multiquery < /tmp/your.sql.file
ClickHouse导入,导出 CSV 文件数据
注意:导入导出的工作是在容器内,不用进入ClickHouse命令行模式内
也就是在下面这个目录:
导出CSV 文件:clickhouse-client --query=" select * from example format CSV" > /tmp/1.csv
导入CSV 文件:cat /tmp/2.csv | clickhouse-client --query="INSERT INTO bindo FORMAT CSV";
4 远程暴露端口,云服务器访问
clickhouse 允许远程访问,将clickhouse的配置文件拷贝出来
docker cp clickhouse-server:/etc/clickhouse-server/ /etc/clickhouse-server/
修改 /etc/clickhouse-server/config.xml 中 65行 注释去掉<listen_host>::</listen_host>
用自定义配置文件启动容器
docker run -d --name docker-clickhouse --ulimit nofile=262144:262144 -p 8123:8123 -p 9000:9000 -p 9009:9009 -v /etc/clickhouse-server/config.xml:/etc/clickhouse-server/config.xml yandex/clickhouse-server
5 docker和本机文件的导入导出
从docker复制文件到本地
docker container cp 64f4da13c199:/tmp/1.csv /Users/xxx/Desktop
把本地文件复制到docker
docker cp /Users/xxx/Desktop/1.csv 64f4da13c199:/tmp/2.csv
其中/Users/xxx/Desktop
是你本机文件所在的目录地址,
64f4da13c199:/tmp/2.csv
前面是你的容器ID,后面是指在容器中的地址