1、项目介绍

SuperSonic是融合Headless BI和Chat BI的新一代数据分析平台,致力于通过自然语言对话来分析数据,与传统交互的分析产品组合,推动数据民主化。SuperSonic提供两套开箱即用的产品界面:

  • Headless BI界面,用于构建语义数据模型,并设置数据访问权限
  • Chat BI界面,用于输入自然语言,并获得可视化的数据结果

image.png

2、license

MIT(放心使用)

3、代码 & 官网文档

代码 : https://github.com/tencentmusic/supersonic.git
官方文档 : https://supersonicbi.github.io

4、技术组件 & 部署

4.1、 技术组件

只支持单机模式

JDK 1.8 可以使用,官网推荐JDK 11

SpringBoot(2.7.2)、Tomcat启动、MybatisPlus(3.5.7)、MySQL元数据存储(默认h2);前端 react
image.png

4.2、部署

4.2.1、IDEA

1、创建 supersonic 数据库
CREATE DATABASE supersonic CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2、数据库表初始化
use supersonic;
source /Users/qiaozhanwei/IdeaProjects/supersonic/launchers/standalone/src/main/resources/db/schema-mysql.sql;
source /Users/qiaozhanwei/IdeaProjects/supersonic/launchers/standalone/src/main/resources/db/data-mysql.sql;
 
3、配置YAML文件,conf下application-local.yaml
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/supersonic?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true
    username: root
    password: root@123
    driver-class-name: com.mysql.jdbc.Driver
 
4、后端启动
com.tencent.supersonic.StandaloneLauncher
 
5、前端启动
sh assembly/bin/supersonic-build.sh webapp
 
6、访问
http://localhost:9080

4.2.2、源代码编译包启动

1、下载相应版本source code
2、执行编译脚本:sh assembly/bin/supersonic-build.sh 注:前端编译需要Node,推荐安装版本v20.16.0;后端编译需要JDK,推荐安装版本11
3、编译完成后从assembly/build目录获取release包
4、解压release包,unzip supersonic-standalone-{revision}.zip
5、进行release目录,执行启动脚本sh bin/supersonic-daemon.sh start
6、访问浏览器:http://localhost:9080

5、数据库管理

支持 mysql、Clickhouse,PostgreSQL,H2

6、构建模型

6.1、 创建一个主题域和模型集

image.png

6.2、 创建数据模型

创建好了一个模型集后, 我们就可以把物理数据抽象为一个个数据模型并创建到模型集下。如下图, SuperSonic提供了两种创建数据模型的方式
快速创建可以直接指定一张物理表来把它创建为数据模型
SQ脚本则提供了更灵活的数据模型创建方式, 我们可以通过写一条逻辑SQL来把它指定为数据模型
image.png

6.3、 新建模型

**当前使用快速创建,快速创建和SQL创建有两个不同的点 :
1、快速创建只能生成数据库表中已有的字段进行语义建模
2、SQL创建可以创建给建模生成表中没有字段,比如说 SELECT imp_date, user_name, page, 1 as pv, user_name as user_id FROM supersonic_test.s2_pv_uv_statis
其实这个表 s2_pv_uv_statis,只有字段 imp_date、user_name、page;pv和user_id是跟进其他列生成的或者直接常量增加一个列**
image.png
注意 : 模型英文名称不能为中划线

image.png

**注意 : 语义类型有 : 主键、度量和维度;主键上绑定标签对象,可以做标签(下面详细说);度量不用多说就是算指标值的,维度就是计算指标的需要的哪些列,比如说按照哪些维度进行下钻;
如果快速创建上打钩了,就会快速创建对应的指标和维度,这里的指标是原子指标。也可以根据原子指标创建衍生指标**

创建完毕模型之后,点击模型,比如说我们刚创建的指标度量值模型
image.png

如下,可以看到上面默认字段打钩的快速创建,就会在这里自动给创建上
image.png

指标的一半_衍生指标 : 这个指标是跟进指标数据值计算出来的衍生指标
实体种类指标: 这个指标是通过列进行聚合算子进行计算出来的
image.png

首先点击一下指标数值
image.png

会出现基本信息和表达式
image.png

基本信息中可以配置 下钻维度配置,它是会动态展示到页面上的,可以根据维度进行下钻查询,如果多个下钻维度,是可选多个维度的
image.png

表达式 其实就是说计算指标的方式
可以选择 按度量、按指标、按字段
度量就是建模的时候选择的聚合列(可能有多个),这里可以选择若干个
image.png
其中 metric_value是模型的英文名称,value是模型字段名称。使用下划线(_)进行链接

按指标,其实就是可以做衍生指标
image.png

按字段,可以按照字段进行聚合算子的统计
image.png

指标市场
image.png
image.png

标签就是选择一个维度,展示其中的类别,count统计
创建一个标签对象
image.png

将标签对象绑定到主键user_name,查看标签的分类
image.png

image.png


journey
32 声望22 粉丝