当前位置: 首页 > news >正文

【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

image-20241203223516441

查看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

image-20241203224249154

image-20241203225121443

执行如下命令,初始化Superset。

image-20241203122716643

填入URL:IP地址:8088,输入用户名和密码。均为admin。

image-20241204145351369

2.4 开通 OB Cloud 云数据库

查看实例详细信息。

image-20241204115606101

点击连接,获取链接串。

image-20241204115657932

2.5 获取连接串

  1. 获取公共网络连接;如:xxxxxxxxxxxxxxxx.aliyun-cn-hangzhou-internet.oceanbase.cloud
  2. 安全设置,添加到租户白名单中的 IP 地址可以访问该租户的数据库;如,0.0.0.0/0
  3. 选择数据库和账号获取示例连接串;

image-20241204115752461

2.6 使用 Superset 连接 OceanBase 数据库

打开运行的 Superset 控制台页面,在右上角选择 + > Data > Connect database

image-20241203222417988

在弹出框中,完成如下配置:

  1. 在第一步 Select a database to connect 下,选择 MySQL 数据库类型。
  2. 在第二步 Enter the required MySQL credentials 下,根据在步骤一:获取数据库连接串中的连接串信息依次完成填写HOSTPORTDATABASE NAMEUSERNAMEPASSWORD。也可以自定义DISPLAY NAME的内容。

image-20241203172207255

单击 CONNECT,然后单击 FINISH

image-20241204140723683

此时,我们就可以看到该数据库已经使用Superset连接。

image-20241203230839322

2.7 导入数据并创建表

导航至OB Cloud数据库控制台,点击导入样本数据

image-20241204103350634

等待数据导入完成。

image-20241204103600765

数据导入完成。

image-20241204103725671

通过以下命令查看 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

image-20241204103900667

New dataset 页面,完成如下配置:

配置项说明
DATABASE选择在步骤二的 DISPLAY NAME 中定义的数据库名。
SCHEMA选择在步骤一中创建的 OceanBase 数据库。
TABLE选择在步骤三种创建的表。

单击 CREATE DATASET AND CREATE CHART,完成创建数据集。

image-20241204104102593

在创建数据集后,可根据实际情况,选择一个图表类型,单击 CREATE NEW CHART,并根据需求进行图表配置。

image-20241204104300636

2.9 配置可视化图表

效果展示如下

image-20241204105941395

image-20241204110812489

image-20241204110835457

三、参考链接

使用 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 文档&#xff1a; https://github.com/DaveGamble/cJSON 项目结构 . ├── libs │ ├── cJSON.c │ └── cJSON.h └── main.c示例 struct 转 json #include "libs/cJSON.h" #include <stdio.h>// defi…...

在Linux中,如何查看和修改网络接口配置?

在Linux中&#xff0c;查看和修改网络接口配置主要依赖于几个命令行工具。这里详细介绍两种传统的命令行方式以及一些图形化工具&#xff08;前提&#xff1a;系统支持&#xff09;&#xff1a; 一、临时性修改 1. 使用ifconfig命令&#xff08;部分系统已被弃用&#xff09;…...

使用深度学习来实现图像超分辨率 综述!

今天给大家介绍一篇图像超分辨率邻域的综述&#xff0c;这篇综述总结了图像超分辨率领域的几方面&#xff1a;problem settings、数据集、performance metrics、SR方法、特定领域应用以结构组件形式&#xff0c;同时&#xff0c;总结超分方法的优点与限制。讨论了存在的问题和挑…...

基于深度学习的视觉检测小项目(六) 项目的信号和变量的规划

• 关于前后端分离 当前流行的一种常见的前后端分离模式是vueflask&#xff0c;vueflask模式的前端和后端之间进行数据的传递通常是借助 API&#xff08;应用程序编程接口&#xff09;来完成的。vue通过调用后端提供的 API 来获取或提交数据。例如&#xff0c;前端可能通过发送…...

【Android项目学习】3. MVVMHabit

项目链接 文章目录 一. 项目结构1. 项目整体划分2. 模块细分 二. Android知识点学习1. registerActivityLifecycleCallbacks方法2. 一. 项目结构 1. 项目整体划分 MVVMHabit是以谷歌DataBindingLiveDataViewModel框架为基础&#xff0c;整合OkhttpRxJavaRetrofitGlide等流行…...

在Linux中,如何配置负载均衡器以分配网络流量?

NGINX NGINX是一款高性能的HTTP和反向代理服务器&#xff0c;也常用作负载均衡器。它支持多种负载均衡算法&#xff0c;如轮询、加权轮询、IP哈希等。 配置步骤&#xff1a; 安装NGINX&#xff1a;根据您的Linux发行版&#xff0c;使用相应的包管理器安装NGINX。配置负载均衡…...

手机投屏到电视的3种选择:无线本地投屏,无线远程投屏,AirPlay投屏

现在大部分手机投屏都要求连接相同的WiFi&#xff0c;这就意味着手机投屏到电视必须是近距离投屏&#xff0c;稍微远一点就会脱离WiFi连接范围&#xff0c;投屏失败。 如果想将手机远程投屏到安卓电视&#xff0c;要怎样做&#xff1f; 第一步&#xff0c;在手机和安卓电视都安…...

MySQL关联关系理论与实践

MySQL 是一种关系型数据库管理系统,以其高性能、灵活性和易用性在开发者中广受欢迎。在 MySQL 中,数据存储以表格形式存在,表与表之间的关联关系构成了关系型数据库的核心。本篇文章将介绍 MySQL 关联关系的理论基础和常见实践,包括表的类型、主外键的使用,以及连接查询的…...

多模态论文笔记——U-ViT(国内版DiT)

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍U-ViT的模型架构和实验细节&#xff0c;虽然没有后续的DiT在AIGC领域火爆&#xff0c;但为后来的研究奠定了基础&#xff0c;但其开创性的探索值得学习…...

在 IntelliJ IDEA 中开发 GPT 自动补全插件

背景与目标 随着 AI 的发展&#xff0c;GitHub Copilot 等智能代码补全工具在开发者中获得了广泛的应用&#xff0c;极大地提高了编程效率。本篇文章将教你如何开发一个 IntelliJ IDEA 插件&#xff0c;使用 OpenAI 的 GPT API 来实现类似 Copilot 的代码自动补全功能。通过这…...

7. C语言 运算符详解

本章目录: 前言C语言运算符的分类1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 杂项运算符 运算符优先级 前言 在C语言中&#xff0c;运算符是程序中执行各种操作的核心工具&#xff0c;涉及算术运算、逻辑判断、位操作等多个方面。掌握C语言中的各种运…...

Java四大常用JSON解析性能对比:Hutool、Fastjson2、Gson与Jackson测试

1. 引言 JSON 是现代软件开发中常用的数据交换格式&#xff0c;尤其在微服务和前后端分离的架构中更是必不可少。 本文将对 Java 中四大主流 JSON 解析库——Hutool、Fastjson2、Gson 和 Jackson 进行性能测试和对比分析&#xff0c;通过实测 20 万条数据解析&#xff0c;揭示…...

Qt 5.14.2 学习记录 —— 일 新项目

文章目录 1、创建2、查看代码 ---- main.cpp3、查看代码 ---- widgt.h4、查看代码 ---- widgt.cpp和widget.ui5、查看代码 ---- Empty.pro6、运行产生的中间文件 1、创建 左上角的文件&#xff0c;新建文件或项目。如果要写一个GUI程序&#xff0c;应当选择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、目标 将库存栏放在游戏界面中&#xff0c;一般情况下角色居中展示时库存栏在底部&#xff0c;当角色位于界面下方时库存栏展示在顶部避免遮挡。 2、CanvasGroup组件 用于集中控制UI元素的透明度、交互性和射线投射行为。CanvasGroup的Alpha属性允许渐变效果&#xff0c;I…...

QT------模型/视图

一、模型/视图结构概述 基本原理&#xff1a; Qt 的模型/视图&#xff08;Model/View&#xff09;架构将数据的存储和显示分离&#xff0c;提高了代码的可维护性和复用性。模型&#xff08;Model&#xff09;&#xff1a;负责存储和管理数据&#xff0c;提供数据的访问接口&am…...

Git - 记录一次由于少输入了一个命令导致的更改丢失

Git - 记录一次由于少输入了一个参数导致的更改丢失 前言 某晚我激情开发了几个小时&#xff0c;中途没有进行commit存档。准备睡觉时&#xff0c;我想创建一个新的分支并将今晚所有更改提交到新分支上&#xff08;似乎应该开发时候就创建&#xff1f;&#xff09;。 然后因…...

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…...

深入解析XDG_RUNTIME_DIR:从Linux桌面到Docker容器的环境变量配置实战

1. 理解XDG_RUNTIME_DIR的前世今生 第一次在终端里看到"XDG_RUNTIME_DIR not set"的警告时&#xff0c;我盯着这行字发了五分钟呆。这个看起来像乱码的变量名&#xff0c;其实是Linux桌面环境中一个至关重要的配置项。让我们从一个真实案例说起&#xff1a;上周同事在…...

BUUCTF:[安洵杯 2019]easy_serialize_php 反序列化字符串逃逸漏洞深度解析

1. 漏洞背景与场景还原 这道来自BUUCTF安洵杯2019的题目&#xff0c;典型地展示了PHP反序列化漏洞中一个精妙的攻击手法——字符串逃逸。题目环境模拟了一个简单的图片查看功能&#xff0c;用户可以通过show_image功能查看指定图片。表面上看&#xff0c;系统对用户输入进行了严…...

51万行核心代码一夜“开源”,信仰崩塌:“我不想用Ai了”

点击“开发者技术前线”&#xff0c;选择“星标”让一部分开发者看到未来来源丨开发者技术前线Claude Code 51万行核心代码一夜“开源”&#xff0c;以“AI安全”为信仰的 Anthropic 因一个 .map 文件翻车。随后官方立马修复了这个问题。但一场人为失误引发的连锁反应&#xff…...

基于STM32LXXX的模数转换芯片ADC(SGM58031XMS10G/TR)驱动C程序设计

一、简介: SGM58031是一款低功耗、16位高精度Δ-Σ(ΔΣ)模数转换器(ADC),工作电压范围为3V至5.5V。 该器件集成片上参考电压源与振荡器,配备IC兼容接口并支持四个IC从设备址选择功能,滤波器数据采样率最高可达960SPS。内置PGA(电平调整器)可提供低至256mV的输入范围…...

2026年大模型学习指南|小白/程序员必看收藏,抢占AI高薪赛道

ChatGPT的横空出世&#xff0c;彻底点燃了全球AI大模型的发展热潮&#xff0c;2023年作为AI元年开启了行业新篇章&#xff0c;而历经三年迭代&#xff0c;2026年的AI大模型已正式迈入“工业级应用深化期”&#xff0c;从实验室走向千行百业&#xff0c;深度融入大众生活与职场办…...

F2803x DSP ePWM模块实战:从基础配置到高精度电机控制

1. ePWM模块基础配置与电机控制入门 第一次接触F2803x的ePWM模块时&#xff0c;我完全被那些专业术语搞懵了。什么时基模块、比较模块、动作模块&#xff0c;听起来就像天书。但当我真正动手配置一个简单的电机驱动电路后&#xff0c;才发现这套系统设计得非常巧妙。下面我就用…...

2025届学术党必备的降重复率方案推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要降低AIGC检测率&#xff0c;需从文本特征着手。首先&#xff0c;得对词汇多样性予以调整&…...

Linux 的 pwd 命令

Linux 的 pwd 命令详解 pwd&#xff08;Print Working Directory&#xff09;是 Linux 和 Unix 系统中一个基本但非常重要的命令&#xff0c;用于显示当前工作目录的完整路径。 基本用法 最简单的使用方式是直接在终端输入&#xff1a; pwd命令执行后会输出当前所在目录的绝…...

python lint-staged

# 聊聊 Python 项目中的 lint-staged&#xff1a;一个被低估的提效工具 在 Python 项目里&#xff0c;代码质量检查工具大家都不陌生&#xff0c;像 flake8、black、isort 这些几乎是标配。但很多人可能遇到过这样的场景&#xff1a;每次提交代码前&#xff0c;都要手动跑一遍检…...

从零开始:基于hyper模板的独角发卡2.0.6二次开发完整教程(含源码解析)

从零开始&#xff1a;基于Hyper模板的独角发卡2.0.6二次开发完整教程&#xff08;含源码解析&#xff09; 在数字商品交易领域&#xff0c;发卡系统作为自动化交易的核心工具&#xff0c;其灵活性和可定制性直接影响业务运营效率。独角发卡系统凭借其开源特性和模块化设计&…...