文章目录
- 前言
- 一、前提条件
- 二、操作步骤
- 2.1 准备云主机实例
- 2.2 安装docker-compose
- 2.3 使用docker-compose安装Superset
- 2.3.1 克隆 Superset 的 GitHub 存储库
- 2.3.2 通过 Docker Compose 启动 Superset
- 2.4 开通 OB Cloud 云数据库
- 2.5 获取连接串
- 2.6 使用 Superset 连接 OceanBase 数据库
- 2.7 导入数据并创建表
- 2.8 在 Superset 中创建数据集
- 2.9 配置可视化图表
- 三、参考链接
前言
在当今大数据与实时分析快速发展的时代,数据的高效存储、处理与可视化已成为推动业务决策的重要手段。OceanBase作为一款高性能分布式关系型数据库,凭借其卓越的事务处理能力与扩展性,广泛应用于金融、电信等领域。然而,如何将OceanBase的数据资产与强大的数据可视化工具结合,以直观、易懂的方式呈现数据价值,是一个备受关注的话题。
Apache Superset是一款开源数据可视化与数据探索工具,具有丰富的图表和仪表盘功能,支持多种数据库连接和实时交互分析。通过将Superset与OceanBase相结合,企业可以快速构建从数据存储到数据洞察的完整链路,实现更高效、更直观的数据分析与决策支持。
本文旨在详细介绍如何使用Superset连接OceanBase数据库,并通过可视化分析工具进行数据探索和展示。无论您是数据库开发者还是数据分析师,都可以通过本指南,快速掌握从OceanBase到Superset的数据可视化分析流程。
一、前提条件
-
准备一台云主机实例;
-
安装好Docker服务;
-
完成配置并运行 Superset;
-
准备好可用的数据集;
二、操作步骤
2.1 准备云主机实例
实例信息 | 实例参数 | 备注 |
---|---|---|
主机名 | superset | |
操作系统 | Ubuntu 24.04.1 LTS | |
系统内核 | Linux 6.8.0-1016-aws | |
实例大小 | m5.2xlarge | |
vCPU/内存 (GiB) | 8C/32G |
2.2 安装docker-compose
下载docker compose
## To download and install Compose standalone, run:
root@superset:~# curl -SL https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 61.0M 100 61.0M 0 0 19.5M 0 0:00:03 0:00:03 --:--:-- 35.9M## Apply executable permissions to the standalone binary in the target path for the installation.
root@superset:~# chmod +x /usr/local/bin/docker-compose## Test and execute Compose commands using docker-compose.
root@superset:~# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
查看docker-compose的版本号。
## root@superset:~# docker-compose version
root@superset:~# docker-compose version
Docker Compose version v2.30.3
2.3 使用docker-compose安装Superset
2.3.1 克隆 Superset 的 GitHub 存储库
git clone --depth=1 https://github.com/apache/superset.git
root@superset:~# git clone --depth=1 https://github.com/apache/superset.git
Cloning into 'superset'...
remote: Enumerating objects: 6775, done.
remote: Counting objects: 100% (6775/6775), done.
remote: Compressing objects: 100% (5505/5505), done.
remote: Total 6775 (delta 2198), reused 3319 (delta 1125), pack-reused 0 (from 0)
Receiving objects: 100% (6775/6775), 97.07 MiB | 16.79 MiB/s, done.
Resolving deltas: 100% (2198/2198), done.
root@superset:~#
2.3.2 通过 Docker Compose 启动 Superset
root@superset:~/superset# export TAG=3.1.1
root@superset:~/superset# docker compose -f docker-compose-image-tag.yml up -d
执行如下命令,初始化Superset。
填入URL:IP地址:8088,输入用户名和密码。均为admin。
2.4 开通 OB Cloud 云数据库
查看实例详细信息。
点击
连接
,获取链接串。
2.5 获取连接串
- 获取公共网络连接;如:xxxxxxxxxxxxxxxx.aliyun-cn-hangzhou-internet.oceanbase.cloud
- 安全设置,添加到租户白名单中的 IP 地址可以访问该租户的数据库;如,0.0.0.0/0
- 选择数据库和账号获取示例连接串;
2.6 使用 Superset 连接 OceanBase 数据库
打开运行的 Superset 控制台页面,在右上角选择 + > Data > Connect database
在弹出框中,完成如下配置:
- 在第一步 Select a database to connect 下,选择 MySQL 数据库类型。
- 在第二步 Enter the required MySQL credentials 下,根据在步骤一:获取数据库连接串中的连接串信息依次完成填写HOST,PORT,DATABASE NAME,USERNAME,PASSWORD。也可以自定义DISPLAY NAME的内容。
单击 CONNECT,然后单击 FINISH。
此时,我们就可以看到该数据库已经使用Superset连接。
2.7 导入数据并创建表
导航至OB Cloud数据库控制台,点击
导入样本数据
。
等待数据导入完成。
数据导入完成。
通过以下命令查看 flights_sample
表中的列名
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changedmysql> DESCRIBE flights_sample;
+-------------------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------------+---------------+------+-----+---------+-------+
| id | bigint(20) | NO | PRI | NULL | |
| fl_date | date | YES | MUL | NULL | |
| airline | varchar(100) | YES | | NULL | |
| airline_dot | varchar(100) | YES | | NULL | |
| airline_code | varchar(10) | YES | | NULL | |
| dot_code | varchar(10) | YES | | NULL | |
| fl_number | int(11) | YES | | NULL | |
| origin | varchar(10) | YES | | NULL | |
| origin_city | varchar(100) | YES | | NULL | |
| dest | varchar(10) | YES | | NULL | |
| dest_city | varchar(100) | YES | | NULL | |
| crs_dep_time | int(11) | YES | | NULL | |
| dep_time | decimal(6,2) | YES | | NULL | |
| dep_delay | decimal(6,2) | YES | | NULL | |
| taxi_out | decimal(6,2) | YES | | NULL | |
| wheels_off | decimal(6,2) | YES | | NULL | |
| wheels_on | decimal(6,2) | YES | | NULL | |
| taxi_in | decimal(6,2) | YES | | NULL | |
| crs_arr_time | int(11) | YES | | NULL | |
| arr_time | decimal(6,2) | YES | | NULL | |
| arr_delay | decimal(6,2) | YES | | NULL | |
| cancelled | tinyint(1) | YES | | NULL | |
| cancellation_code | varchar(10) | YES | | NULL | |
| diverted | tinyint(1) | YES | | NULL | |
| crs_elapsed_time | decimal(6,2) | YES | | NULL | |
| elapsed_time | decimal(6,2) | YES | | NULL | |
| air_time | decimal(6,2) | YES | | NULL | |
| distance | decimal(10,2) | YES | | NULL | |
| delay_due_carrier | decimal(6,2) | YES | | NULL | |
| delay_due_weather | decimal(6,2) | YES | | NULL | |
| delay_due_nas | decimal(6,2) | YES | | NULL | |
| delay_due_security | decimal(6,2) | YES | | NULL | |
| delay_due_late_aircraft | decimal(6,2) | YES | | NULL | |
+-------------------------+---------------+------+-----+---------+-------+
33 rows in set (0.13 sec)mysql> SELECT COUNT(*) FROM flights_sample;
+----------+
| COUNT(*) |
+----------+
| 3000000 |
+----------+
1 row in set (0.17 sec)
2.8 在 Superset 中创建数据集
导航至Superset 控制台,在右上角选择 + > Data > Create dataset。
在 New dataset 页面,完成如下配置:
配置项 | 说明 |
---|---|
DATABASE | 选择在步骤二的 DISPLAY NAME 中定义的数据库名。 |
SCHEMA | 选择在步骤一中创建的 OceanBase 数据库。 |
TABLE | 选择在步骤三种创建的表。 |
单击 CREATE DATASET AND CREATE CHART,完成创建数据集。
在创建数据集后,可根据实际情况,选择一个图表类型,单击 CREATE NEW CHART,并根据需求进行图表配置。
2.9 配置可视化图表
效果展示如下
三、参考链接
使用 Superset 和 OceanBase 进行数据分析-V4.3.4-OceanBase 数据库文档-分布式数据库使用文档
Find Open Datasets and Machine Learning Projects | Kaggle
Install Compose standalone | Docker Docs
Docker Compose | Superset