clickhouse(九、metabase链接及时区配置)
文章目录安装metabase配置clickhouse驱动metabase时区配置安装metabase# 选用docker方式,下载镜像docker pull metabase/metabase# 创建插件目录mkdir -p /data/docker/metabase/plugins# 启动容器,将目录挂载到容器/tmp 目录下docker run -d -v /data/docker/metab
安装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的驱动:
metabase时区配置
首先我们要确保clickhouse服务器的时间配置正常。/etc/clickhouse-server/config.xml
中的时区配置。
<timezone>Asia/Shanghai</timezone>
链接clickhouse服务,执行select now();
看是否和当前时间一致。
接下来看metabase中的时区配置是在管理员-> 基本设置-> 时区报表里。国内可以配置Asia/Hong_Kong
,只是很可惜在ck中并不生效。可以通过metabase主页右上角的写SQL查询。
select now();
于是开始查看clickhouse的数据源配置,可以看到链接clickhouse是使用的jdbc方式,而jdbc url理论是可以带参数的。
于是尝试配置常规参数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_zone
和use_server_time_zone
必须有一个被使用而已,为什么配置一个还报错。尝试配置另一个use_time_zone
,同样报错。虽然刚到莫名其妙,但看到这样的提示也觉得这个参数配置最少在链接上启到了作用。之后尝试同时配置后终于通过。这里的UTC+8
和Asia/Shanghai
是等价的。
use_time_zone=UTC+8&use_server_time_zone=UTC+8
之后界面测试select now();
,查询数据库DateTime格式列时间显示正常。
更多推荐
所有评论(0)