当前位置: 首页 > 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…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...