【OceanBase】使用 Superset 连接 OceanBase 数据库并进行数据可视化分析
文章目录
- 前言
- 一、前提条件
- 二、操作步骤
- 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
相关文章:
【OceanBase】使用 Superset 连接 OceanBase 数据库并进行数据可视化分析
文章目录 前言一、前提条件二、操作步骤2.1 准备云主机实例2.2 安装docker-compose2.3 使用docker-compose安装Superset2.3.1 克隆 Superset 的 GitHub 存储库2.3.2 通过 Docker Compose 启动 Superset 2.4 开通 OB Cloud 云数据库2.5 获取连接串2.6 使用 Superset 连接 OceanB…...
【通识安全】应急救护常识23则
一、异物入眼 任何细小的物体或液体,哪怕是一粒沙子或是一滴洗涤剂进入眼中,都会引起眼部疼痛,甚至损伤眼角膜。 急救办法:首先是用力且频繁地眨眼,用泪水将异物冲刷出去。如果不奏效,就将眼皮捏起&#…...
C语言:cJSON将struct结构体与JSON互相转换
文章目录 struct 转 jsonjson 转 struct 文档: https://github.com/DaveGamble/cJSON 项目结构 . ├── libs │ ├── cJSON.c │ └── cJSON.h └── main.c示例 struct 转 json #include "libs/cJSON.h" #include <stdio.h>// defi…...
在Linux中,如何查看和修改网络接口配置?
在Linux中,查看和修改网络接口配置主要依赖于几个命令行工具。这里详细介绍两种传统的命令行方式以及一些图形化工具(前提:系统支持): 一、临时性修改 1. 使用ifconfig命令(部分系统已被弃用)…...
使用深度学习来实现图像超分辨率 综述!
今天给大家介绍一篇图像超分辨率邻域的综述,这篇综述总结了图像超分辨率领域的几方面:problem settings、数据集、performance metrics、SR方法、特定领域应用以结构组件形式,同时,总结超分方法的优点与限制。讨论了存在的问题和挑…...
基于深度学习的视觉检测小项目(六) 项目的信号和变量的规划
• 关于前后端分离 当前流行的一种常见的前后端分离模式是vueflask,vueflask模式的前端和后端之间进行数据的传递通常是借助 API(应用程序编程接口)来完成的。vue通过调用后端提供的 API 来获取或提交数据。例如,前端可能通过发送…...
【Android项目学习】3. MVVMHabit
项目链接 文章目录 一. 项目结构1. 项目整体划分2. 模块细分 二. Android知识点学习1. registerActivityLifecycleCallbacks方法2. 一. 项目结构 1. 项目整体划分 MVVMHabit是以谷歌DataBindingLiveDataViewModel框架为基础,整合OkhttpRxJavaRetrofitGlide等流行…...
在Linux中,如何配置负载均衡器以分配网络流量?
NGINX NGINX是一款高性能的HTTP和反向代理服务器,也常用作负载均衡器。它支持多种负载均衡算法,如轮询、加权轮询、IP哈希等。 配置步骤: 安装NGINX:根据您的Linux发行版,使用相应的包管理器安装NGINX。配置负载均衡…...
手机投屏到电视的3种选择:无线本地投屏,无线远程投屏,AirPlay投屏
现在大部分手机投屏都要求连接相同的WiFi,这就意味着手机投屏到电视必须是近距离投屏,稍微远一点就会脱离WiFi连接范围,投屏失败。 如果想将手机远程投屏到安卓电视,要怎样做? 第一步,在手机和安卓电视都安…...
MySQL关联关系理论与实践
MySQL 是一种关系型数据库管理系统,以其高性能、灵活性和易用性在开发者中广受欢迎。在 MySQL 中,数据存储以表格形式存在,表与表之间的关联关系构成了关系型数据库的核心。本篇文章将介绍 MySQL 关联关系的理论基础和常见实践,包括表的类型、主外键的使用,以及连接查询的…...
多模态论文笔记——U-ViT(国内版DiT)
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍U-ViT的模型架构和实验细节,虽然没有后续的DiT在AIGC领域火爆,但为后来的研究奠定了基础,但其开创性的探索值得学习…...
在 IntelliJ IDEA 中开发 GPT 自动补全插件
背景与目标 随着 AI 的发展,GitHub Copilot 等智能代码补全工具在开发者中获得了广泛的应用,极大地提高了编程效率。本篇文章将教你如何开发一个 IntelliJ IDEA 插件,使用 OpenAI 的 GPT API 来实现类似 Copilot 的代码自动补全功能。通过这…...
7. C语言 运算符详解
本章目录: 前言C语言运算符的分类1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 杂项运算符 运算符优先级 前言 在C语言中,运算符是程序中执行各种操作的核心工具,涉及算术运算、逻辑判断、位操作等多个方面。掌握C语言中的各种运…...
Java四大常用JSON解析性能对比:Hutool、Fastjson2、Gson与Jackson测试
1. 引言 JSON 是现代软件开发中常用的数据交换格式,尤其在微服务和前后端分离的架构中更是必不可少。 本文将对 Java 中四大主流 JSON 解析库——Hutool、Fastjson2、Gson 和 Jackson 进行性能测试和对比分析,通过实测 20 万条数据解析,揭示…...
Qt 5.14.2 学习记录 —— 일 新项目
文章目录 1、创建2、查看代码 ---- main.cpp3、查看代码 ---- widgt.h4、查看代码 ---- widgt.cpp和widget.ui5、查看代码 ---- Empty.pro6、运行产生的中间文件 1、创建 左上角的文件,新建文件或项目。如果要写一个GUI程序,应当选择Application&#x…...
uni-app:实现普通选择器,时间选择器,日期选择器,多列选择器
效果 选择前效果 1、时间选择器 2、日期选择器 3、普通选择器 4、多列选择器 选择后效果 代码 <template><!-- 时间选择器 --><view class"line"><view classitem1><view classleft>时间</view><view class"right&quo…...
Unity3D仿星露谷物语开发17之空库存栏UI
1、目标 将库存栏放在游戏界面中,一般情况下角色居中展示时库存栏在底部,当角色位于界面下方时库存栏展示在顶部避免遮挡。 2、CanvasGroup组件 用于集中控制UI元素的透明度、交互性和射线投射行为。CanvasGroup的Alpha属性允许渐变效果,I…...
QT------模型/视图
一、模型/视图结构概述 基本原理: Qt 的模型/视图(Model/View)架构将数据的存储和显示分离,提高了代码的可维护性和复用性。模型(Model):负责存储和管理数据,提供数据的访问接口&am…...
Git - 记录一次由于少输入了一个命令导致的更改丢失
Git - 记录一次由于少输入了一个参数导致的更改丢失 前言 某晚我激情开发了几个小时,中途没有进行commit存档。准备睡觉时,我想创建一个新的分支并将今晚所有更改提交到新分支上(似乎应该开发时候就创建?)。 然后因…...
nodeJS下npm和yarn的关系和区别详解
一、命令对应关系 1. 初始化项目 操作npm 命令Yarn 命令初始化项目npm inityarn init跳过提问快速初始化npm init -yyarn init -y 2. 安装依赖 操作npm 命令Yarn 命令安装项目所有依赖npm installyarn install添加依赖npm install <package-name>yarn add <package…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
