安装
我写了个脚本放在 gist
可以执行以下命令来自动安装:
curl -L https://gist.githubusercontent.com/emacsist/ebb98839c814cdb2f16e20efcef9474e/raw/aa8e035ad2e61fa74f4c904a7953806c62155fa3/install-clickhouse.sh | bash
下面是脚本的完整内容:
#!/usr/bin/env bash
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
grep -q sse4_2 /proc/cpuinfo || exit 1
sudo echo "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/" > /etc/apt/sources.list.d/clickhouse.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 -y
sudo apt-get update -y
sudo apt-get install clickhouse-client clickhouse-server -y
启动与关闭
sudo service clickhouse-server start
sudo service clickhouse-server stop
配置
服务配置文件在:
/etc/clickhouse-server/config.xml
用户配置文件在:
/etc/clickhouse-server/users.xml
修改数据存放目录
在 config.xml 中, 找到:
/home/username/clickhouse/
/home/username/clickhouse/tmp/
这两个分别是数据库数据存放目录和临时文件的存放目录, 可根据自身需要修改. 默认情况下是在 /var/lib/clickhouse/
开启远程登录
修改 config.xml , 找到:
, 将它修改为:
::/0
也可以显式指定你想绑定的IP地址.
再修改 users.xml, 找到:
::/0
修改为以上内容
然后重启clickhouse , 就可以在其他地方, 通过 clickhouse-client -h IP 地址来访问了, 至于用户名和密码, 就是在 users.xml 中的 的子节点, 每一个子节点就是一个用户.
常用SQL
创建表
CREATE TABLE b6logs(
eventDate Date,
impid UInt64,
uid String,
idfa String,
imei String
) ENGINE=MergeTree(eventDate, (impid, eventDate), 8192)
一般情况下, 都建议使用 MergeTree 引擎. 这个引擎必须要有一个 Date 的列来作为索引, 即上面的 eventDate.
导入CSV数据
cat xxx.csv | clickhouse-client --query="INSERT INTO b6logs FORMAT CSV";
指定分隔符
cat xxx.csv | clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO b6logs FORMAT CSV";
导入数据时忽略错误
clickhouse-client --input_format_allow