数据分析两件套ClickHouse+Metabase(一)
ClickHouse篇
安装ClickHouse
ClickHouse有中文文档, 安装简单 -> 文档
官方提供了四种包的安装方式, deb/rpm/tgz/docker
, 自行选择适合自己操作系统的安装方式
这里我们选deb的方式, 其他方式看文档
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee
/etc/apt/sources.list.d/clickhouse.list
sudo apt-get update
sudo apt-get install -y clickhouse-server clickhouse-client
到这里先不慌着启动, 改一波配置
服务端配置默认地址在/etc/clickhouse-server
尽量不要直接修改config.xml, 而是在config.d子目录中新建配置文件, 易于维护和升级, 文件名随意但会按字母顺序生效
一些简单配置:
<clickhouse>
<listen_host>::</listen_host> # 打开远程访问
<path>xxx</path> # 表数据存储路径
<tmp_path>xxxx</tmp_path> # 一些临时数据
<max_server_memory_usage>21474836480</max_server_memory_usage> # 服务器进程的最大内存使用量, 根据自己情况设置
<logger>
<level>warning</level> # 日志级别
<log>xxx</log> # 日志路径
<errorlog>xxx</errorlog> # 错误日志路径
</logger>
</clickhouse>
配置完, 启动服务
sudo service clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you've set up a password.
建表
大部分操作和mysql差不多
不过ClickHouse有一套自己的字段类型, 简单建一个表
CREATE TABLE test
(
`column1` Date, # 日期类型
`column2` FixedString(7), # 固定长度字符串
`column3` UInt32, # 无符号int类型
`column4` Nullable(String), # 可为空字符串
`column5` Float64 # 浮点数
)
ENGINE = MergeTree()
order by column1
更多字段类型以及不同engine的作用详见文档
PySpark写入ClickHouse
spark写入ClickHouse还是很方便的
需要下载一个新的驱动包, 放到每个worker节点的jars目录下 -> 官方jdbc驱动
目前是 clickhouse-jdbc-0.4.6.jar
properties = {'driver': 'com.clickhouse.jdbc.ClickHouseDriver',
"socket_timeout": "300000",
"rewriteBatchedStatements": "true",
"batchsize": "1000000",
"numPartitions": "8",
'user': 'default',
'password': '123456', # 配置自己的用户名密码
'isolationLevel': 'NONE'
}
df = spark.read.parquet('xx') # 读一个df, 注意schema和表结构一致
df.write.jdbc(url='jdbc:clickhouse://服务器ip:8123/数据库名', table='表名', mode='append', properties=properties)
不想要监控可以省略以下步骤, 本篇到此结束
监控
ClickHouse自带各种统计表都存在system库里, 我们需要一个可视化平台接入一下比如Grafana
选择适合自己的版本下载 -> 官网下载地址
以及有其他问题可以翻阅文档 -> 官方文档
下载后解压, Grafana中默认数据源是没有ClickHouse的, 需要装一个扩展 -> 地址
grafana-cli --pluginsDir=可指定安装路径 plugins install vertamedia-clickhouse-datasource
不需要什么配置直接./bin/grafana server
即可启动, 不过建议改一下web页面的端口, 默认是3000, 会和后面的metabase冲突
配置文件在conf/defaults.ini
, 比如修改http_port=2999
然后在浏览器访问页面, 默认账户密码admin, admin
进来以后选Data source
添加数据源, 搜ClickHouse, 然后按图改名字, 填ip, 填账号密码, 然后保存即可
下一步直接导入一个现成的ClickHouse仪表盘 -> 地址
省流, DashboardID: 13606
页面右上角点击 import dashboard
填入dashboardID, 点击右侧load
然后选择刚添加的数据源, 导入即可
图表很多, 不一一展示了, 至此监控安装完毕