You need to enable JavaScript to run this app.
导航
Metabase
最近更新时间:2025.09.17 16:32:59首次发布时间:2024.09.20 18:02:26
复制全文
我的收藏
有用
有用
无用
无用

Metabase 一款开源的轻量 BI 工具,帮助您快速从数据库中分析数据、生成可视化报表。本文将介绍如何使用 Metabase 连接至 ByteHouse。

准备工作
  1. 安装 Docker,用于使用 Docker 运行 Metabase。
  2. 获取 ByteHouse 企业版集群连接地址、ByteHouse 企业版账号和密码,用于后续 Metabase 连接配置,详情请参考获取集群连接信息

Metabase 侧配置
  1. 执行以下命令,使用 Docker 运行 Metabase。执行后,在浏览器中打开 http://localhost:3000/ 以访问 Metabase 界面。具体用法可参考 Metabase 官方网站

    docker run -d -p 3000:3000 --name metabase metabase/metabase
    
  2. 下载 ClickHouse Metabase 插件 jar 文件。
    由于 Metabase 通过 Docker 容器部署,所以需要进入容器并下载 ClickHouse Metabase 插件 jar 文件到 plugins 目录下。
    使用时,请将 <container_id> 替换为您实际使用的容器 ID,您可通过执行 docker ps 查看运行中的容器。

    docker exec -it <container_id> bash
    cd plugins
    wget https://github.com/ClickHouse/metabase-clickhouse-driver/releases/download/1.3.3/clickhouse.metabase-driver.jar
    
  3. 退出并重启容器,确保 ClickHouse Metabase 插件可生效。

    docker restart <container_id>
    
  4. 重新打开 http://localhost:3000/ 以访问 Metabase 界面。

ByteHouse 侧配置

数据准备

这里以 SSB 数据集为例,执行下面的命令,使用 dbgen(Database Generator)工具生成数据。请注意,如果您不需要执行性能测试,您可以缩减数据量,或在 ByteHouse 中按需创建数据库、表,详情请参考新建数据库/表

./dbgen -s 1 -T c 
./dbgen -s 1 -T l 
./dbgen -s 1 -T p 
./dbgen -s 1 -T s

Metadata 视图准备

目前您需要在 ByteHouse 后端手动创建系统视图(自动化创建逻辑正在开发中),该视图将为 Metadata 提供元数据查找能力。Metabase 需要将以下视图用于同步数据库元数据和表元数据。
使用时,请注意将语句中的 <account_id> 替换为您实际的火山引擎账号 ID,您可在火山引擎控制台,单击右上角个人中心,查看并复制账号 ID。

CREATE DATABASE `<account_id>.system`;


-- 需执行 USE 步骤,否则系统将在默认数据库中建表
USE `<account_id>.system`; 


CREATE VIEW settings AS
SELECT
  `name`,
  `value`,
  `changed`,
  `description`,
  `min`,
  `max`,
  `readonly`,
  `type`
FROM
  system.settings
  
CREATE VIEW databases as SELECT
substring_index(name, '.', -1) `name`,
    `engine`,
    `data_path` ,
    `metadata_path` ,
    `uuid` 
FROM system.databases
WHERE system.databases.name LIKE '<account_id>%'

CREATE VIEW tables as
SELECT
    substring_index(database, '.', -1) `database`, 
    name,
    uuid,
    engine,
    is_temporary,
    data_paths,
    metadata_path,
    metadata_modification_time,
    dependencies_database,
    dependencies_table,
    create_table_query,
    engine_full,
    partition_key,
    sorting_key,
    primary_key,
    sampling_key,
    storage_policy,
    total_rows,
    total_bytes,
    lifetime_rows,
    lifetime_bytes,
    comment
FROM system.tables
WHERE system.tables.database LIKE '<account_id>%'

CREATE VIEW columns as
SELECT
    substring_index(database, '.', -1) `database`, 
    table,
    name,
    type,
    position,
    default_kind,
    default_expression,
    data_compressed_bytes,
    data_uncompressed_bytes,
    marks_bytes,
    comment,
    is_in_partition_key,
    is_in_sorting_key,
    is_in_primary_key,
    is_in_sampling_key,
    compression_codec
FROM system.columns
WHERE system.columns.database LIKE '<account_id>%'

CREATE VIEW mutations as SELECT  
substring_index(database, '.', -1) `database`, 
    `table` ,
    `mutation_id` ,
    `query_id` ,
    `command` ,
    `create_time` ,
    `block_numbers.partition_id` ,
    `block_numbers.number`,
    `parts_to_do_names` ,
    `parts_to_do` ,
    `is_done` ,
    `latest_failed_part` ,
    `latest_fail_time` ,
    `latest_fail_reason` 
FROM cnch(server, system.mutations)
WHERE database LIKE '<account_id>%'

Metabase 连接至 ByteHouse

添加数据库

  1. 单击右上角的齿轮图标,然后选择管理员 Admin Settings,访问您的 Metabase 管理页面

  2. 单击添加数据库 Add a database。或者,您可以单击“数据库 Databases”选项卡并选择“添加数据库 Add database”按钮。

  3. 如果您的驱动程序安装成功,您将在数据库类型 Database type 的下拉菜单中看到 ClickHouse
    Image

  4. 为您的数据库指定一个显示名称 Display name,您可自定义名称。

  5. 输入 ByteHouse 数据库的连接详细信息。

    参数

    配置说明

    Host

    ByteHouse 集群连接地址。您可在 ByteHouse 企业版控制台的集群管理 > 集群名称 > 基本信息 > 网络信息中查看并复制公网网关地址,详情请参见获取集群连接信息

    Port

    ByteHouse 集群连接端口,设置为 8123,如果您启用了 SSL,也可设置为 8443。

    Username

    ByteHouse 用户名,支持使用 IAM 子用户和数据库用户访问,二者的区别可参见用户类型

    • IAM 子用户:您可登录 ByteHouse 企业版控制台,单击右上角 ByteHouse 个人中心,单击账号管理,查看并复制集群连接账号中的用户名,详情请参见获取集群连接信息
    • 数据库用户:您可登录 ByteHouse 企业版控制台,单击顶部权限管理,单击用户,在用户列表中查看用户类别为 Database 的用户,并复制该用户名。

    Password

    ByteHouse 密码。您可登录 ByteHouse 企业版控制台,单击右上角 ByteHouse 个人中心,单击账号管理,查看并复制集群连接账号中的密码,详情请参见获取集群连接信息

    Database

    需连接的 ByteHouse 数据库名。

    Use a secure connection (SSL)

    是否启用安全连接(SSL)。

    Image

  6. 单击“保存”按钮,Metabase 将扫描数据库中的表,您可使用 Metabase 对获取的 ByteHouse 数据进行分析,更堵数据分析的操作请参见 Metabase 官方文档