You need to enable JavaScript to run this app.
导航
Apache Superset
最近更新时间:2025.01.14 19:23:40首次发布时间:2023.03.20 14:46:25

Apache Superset (下文简称Superset)是一个用于数据探索和数据可视化的开源软件应用程序,能够处理PB级的数据,本文为您介绍如何将Superset连接ByteHouse进行数据分析。

背景信息
  • 由于当前基于bytehouse-sqlalchemyByteHouse Superset Connector正在进行维护和更新,当前建议使用开源**ClickHouse Superset Connector**来连接ByteHouse。
  • 由于ByteHouse无法原生支持开源的**ClickHouse Superset Connector,因此您还需要使用ByteHouse clickhouse-connect支持包**对开源连接器进行修改支持。

综上。您在安装Superset后连接ByteHouse时,需同时使用开源的ClickHouse Superset Connector、ByteHouse clickhouse-connect支持包。

注意事项

细分项

已验证版本/注意事项

Superset

4.1.0

开源Clickhouse Superset Connector

0.8.6

ByteHouse clickhouse-connect支持包

0.8.6+

Python

Python3.8

已获取ByteHouse帐户 API Token

API Token的获取方式请参阅文档 获取 API Token

ByteHouse侧配置

step1 配置公网域名

登录并进入ByteHouse控制台后,在顶部租户管理基本信息页面,查看网络组配置,确认已绑定VPC,并绑定了公网域名。
Image

  • 如果未绑定VPC和公网域名,需参考设置网络信息文档完成绑定配置。
  • 完成绑定后,可单击复制公网域名,用于后续对接参数配置。

step2 获取API Key

进入顶部租户管理连接信息页面,在API Key模块新建一个API key,并将API Key保存至本地,用于后续的配置使用。
Image

说明

一个子账号最多支持创建两个API Key,如果此前您有已创建好的API key,也可直接使用已创建好的API Key。

step3 设置默认计算组

进入顶部租户管理参数设置页面,查看已设置了默认计算组,并确保此计算组是正在运行的状态,未被停止。后续对接ByteHouse后的数据查询等操作,即会使用此处配置的默认计算组。
Image

Superset侧配置

step1 准备工作

  1. 安装Superset。操作步骤请参考Superset官网文档
  2. 安装 ByteHouse clickhouse-connect支持包。完整的安装说明可以参考Superset官方文档,以下为一个简单的安装操作示例。
    • 通过pip安装:

      pip install https://github.com/bytehouse-docs/ecosystem/raw/main/dist/clickhouse-connect/clickhouse-connect-0.8.6+bytehouse.tar.gz
      
    • Docker中安装:

      git clone https://github.com/apache/superset.git
      cd superset
      git checkout 4.1.0
      echo "https://github.com/bytehouse-docs/ecosystem/raw/main/dist/clickhouse-connect/clickhouse-connect-0.8.6+bytehouse.tar.gz" >> ./docker/requirements-local.txt
      docker compose -f docker-compose-image-tag.yml up
      

step2 创建连接器

  1. 登录Superset。安装完成后,您可以使用默认创建的帐户访问浏览器中的http://localhost:8088登录Superset,默认用户名/密码为admin/admin。
  2. 创建数据库连接器,连接ByteHouse。
    1. 单击屏幕右上角的Settings页签并选择Database Connections
      Image

    2. 单击+DATABASE按钮创建新的数据库连接。
      Image

    3. 从可用数据库的下拉框中选择ClickHouse Connect(SuperSet)
      Image

    4. 如下图所示填写连接详细信息并单击CONNECT按钮。
      Image

      参数

      配置说明

      HOST

      配置为ByteHouse的公网域名,格式为:gateway-v2.tenant-{TENANT_ID}-{REGION}-public.bytehouse.volces.com,您可以在ByteHouse控制台的租户管理>基本信息>网络信息中获取。

      PORT

      数据库端口号,配置为固定取值:8123。

      DATABASE NAME

      配置为ByteHouse已创建的数据库名称。

      USERNAME & PASSWORD

      登录ByteHouse数据库的用户名和密码。

      • 用户名默认为 bytehouse
      • 密码为<API_Key>,可以在ByteHouse控制台的租户管理>连接信息中获取的API Key。

      DISPLAY NAME

      自定义连接器的显示名称。

      ADDITIONAL PARAMETERS

      配置为:secure=True&compress=False

      SSL

      打开SSL开关。

      注意

      ByteHouse 需要加密认证,从而保护数据安全,因此您需打开SSL。

    5. (可选)如果您有多个计算组,希望后续Superset查询ByteHouse数据时使用指定计算组,您可以在ADDITIONAL PARAMETERS指定具体的计算组。
      配置示例如下:

      ADDITIONAL PARAMETERS

      secure=True&compress=False&virtual_warehouse=vw-accountId-vwName

    6. 完成配置后单击CONNECT,完成连接器创建。

step3 结果验证

以下为您提供了一份测试数据,用于测试Superset连接ByteHouse的结果,并示例连接后通过Superset进行数据分析操作。

  1. 准备示例数据。在ByteHouse中执行以下查询以准备示例数据。

    CREATE DATABASE test_db;
    
    CREATE TABLE test_db.online_store_sales (
        order_id String,
        order_date DateTime,
        customer_id String,
        product_id String,
        category String,
        sub_category String,
        region String,
        sales_amount Float64,
        quantity UInt32
    ) 
    ENGINE = CnchMergeTree()
    PARTITION BY toYYYYMM(order_date)
    ORDER BY (order_date, customer_id);
    
    INSERT INTO test_db.online_store_sales VALUES
    ('OID001', '2024-11-01 10:00:00', 'CID001', 'PID001', 'Electronics', 'Smartphones', 'North America', 899.99, 2),
    ('OID004', '2024-11-02 09:20:00', 'CID004', 'PID004', 'Furniture', 'Desks', 'North America', 1599.99, 5),
    ('OID005', '2024-11-02 14:10:00', 'CID005', 'PID005', 'Home Decor', 'Lamps', 'South America', 49.99, 100),
    ('OID006', '2024-11-02 17:50:00', 'CID006', 'PID006', 'Electronics', 'Tablets', 'Europe', 799.99, 7),
    ('OID007', '2024-11-03 11:00:00', 'CID007', 'PID007', 'Clothing', 'Jackets', 'Asia', 149.99, 25),
    ('OID008', '2024-11-03 13:40:00', 'CID008', 'PID008', 'Clothing', 'Shoes', 'Africa', 89.99, 50),
    ('OID010', '2024-11-04 19:30:00', 'CID010', 'PID010', 'Electronics', 'Cameras', 'North America', 399.99, 3),
    ('OID013', '2024-11-05 08:50:00', 'CID013', 'PID013', 'Electronics', 'Headphones', 'North America', 99.99, 100),
    ('OID014', '2024-11-05 11:30:00', 'CID014', 'PID014', 'Furniture', 'Coffee Tables', 'Asia', 499.99, 50),
    ('OID015', '2024-11-05 14:00:00', 'CID015', 'PID015', 'Clothing', 'T-Shirts', 'Europe', 19.99, 300),
    ('OID016', '2024-11-06 09:40:00', 'CID016', 'PID016', 'Furniture', 'Bookshelves', 'North America', 999.99, 10),
    ('OID017', '2024-11-06 13:25:00', 'CID017', 'PID017', 'Electronics', 'Laptops', 'Europe', 2299.99, 4),
    ('OID020', '2024-11-07 14:00:00', 'CID020', 'PID020', 'Home Decor', 'Rugs', 'Africa', 199.99, 20);
    
  2. 在Superset中创建数据集。

    1. 在Superset页面右上角单击+按钮,选择Data>Create dateset。
      Image
    2. 在下拉框中选择已创建的DATABASE,SCHEMA和TABLE,然后单击CREATE DATASET AND CREATE CHART按钮,完成数据集创建。
      Image
  3. 创建Superset图表。

    1. 从Charts选项卡中,选择先前创建的数据集并选择Line Chart作为图表类型。继续单击CREATE NEW CHART按钮。
      Image

    2. 参考下图配置图表的参数,即可得到查询到的ByteHouse数据结果图。

      图表参数

      配置结果示意

      Image

      Image