clickhouse(九、metabase链接及时区配置)

文章目录

  • 安装metabase
  • 配置clickhouse驱动
  • metabase时区配置

安装metabase

# 选用docker方式,下载镜像
docker pull metabase/metabase
# 创建插件目录
mkdir -p /data/docker/metabase/plugins
# 启动容器,将目录挂载到容器/tmp 目录下
docker run -d -v /data/docker/metabase/plugins:/tmp  \
			--name metabase  \
			metabase/metabase

配置clickhouse驱动

# 进入/data/docker/metabase/plugins 目录,下载clickhouse驱动包
wget https://github.com/enqueue/metabase-clickhouse-driver/releases/download/0.7.2/clickhouse.metabase-driver.jar
# 进入容器 
docker exec -it ${容器id} bash
# 移动jar到/plugins目录,之前安装github方式直接mount plugins,启动发现目录为空,所以改成其他目录导入形式
cp /tmp/clickhouse.metabase-driver.jar /plugins
# 退出重启容器
docker restart ${容器id}

localhost:3000 登入后发现clickhouse的驱动:
clickhouse(九、metabase链接及时区配置)_第1张图片

metabase时区配置

首先我们要确保clickhouse服务器的时间配置正常。/etc/clickhouse-server/config.xml中的时区配置。

<timezone>Asia/Shanghaitimezone>

链接clickhouse服务,执行select now(); 看是否和当前时间一致。
接下来看metabase中的时区配置是在管理员-> 基本设置-> 时区报表里。国内可以配置Asia/Hong_Kong,只是很可惜在ck中并不生效。可以通过metabase主页右上角的写SQL查询。

select now();

于是开始查看clickhouse的数据源配置,可以看到链接clickhouse是使用的jdbc方式,而jdbc url理论是可以带参数的。
clickhouse(九、metabase链接及时区配置)_第2张图片
于是尝试配置常规参数serverTimeZone=Asia/Shanghai,发现并没有效果。然后查看ck官方文档,发现ck时区需要客户端带有--use_client_time_zone的参数。于是在metabase配置 use_client_time_zone=Asia/Shanghai,又抛出异常:

one of use_server_time_zone or use_time_zone must be enabled

这个理解就有点奇怪了,字面理解就是use_time_zoneuse_server_time_zone必须有一个被使用而已,为什么配置一个还报错。尝试配置另一个use_time_zone,同样报错。虽然刚到莫名其妙,但看到这样的提示也觉得这个参数配置最少在链接上启到了作用。之后尝试同时配置后终于通过。这里的UTC+8Asia/Shanghai是等价的。

use_time_zone=UTC+8&use_server_time_zone=UTC+8

之后界面测试select now(); ,查询数据库DateTime格式列时间显示正常。

你可能感兴趣的:(clickhouse,大数据,metabase,metabase,clickhouse,安装,时区)