【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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/499064.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我们能否使用 ANSYS SPEOS 测量水质?

介绍 Ansys SPEOS 是动态环境科学领域的尖端工具,可为围绕水质管理的复杂问题提供深入的见解和创新解决方案。通过其光学系统功能,它为理解和改善不同环境的生态动态提供了一个强大的框架。 主要特点和优势 多材质建模: 为了准确模拟环境…

简易屏幕共享工具-基于WebSocket

前面写了两个简单的屏幕共享工具,不过那只是为了验证通过截屏的方式是否可行,因为通常手动截屏的频率很低,而对于视频来说它的帧率要求就很高了,至少要一秒30帧率左右。所以,经过实际的截屏工具验证,我了解…

论文分享 | PromptFuzz:用于模糊测试驱动程序生成的提示模糊测试

大语言模型拥有的强大能力可以用来辅助多种工作,但如何有效的辅助仍然需要人的精巧设计。分享一篇发表于2024年CCS会议的论文PromptFuzz,它利用模型提示生成模糊测试驱动代码,并将代码片段嵌入到LLVM框架中执行模糊测试。 论文摘要 制作高质…

2024年底关于期货的工作总结

十几年程序猿出身,因几年前的懵懂无畏闯入期货市场,盈了,感觉期货太简单,飘然裸辞,想当财务自由者,全职做交易。当深入学习时,却亏了,原来市场是让人敬畏的,也是反人性的…

mybatis 和 mybatisPlus 兼容性问题

项目采用的是 mybatis, 后续引入了 mybatisPlus,用 mybatisX 创建的四个类一直报错,提示找不到符号,意识到 mybatis 和 mybatisPlus 的兼容性问题,通过修改配置 两者的配置如下 #配置mybatis配置 mybatis:type-aliase…

使用maven-mvnd替换maven大大提升编译打包速度

先上结论!!! 多模块清理并打包提升:约3.5倍 多模块不清理打包提升:约5.5倍 单模块提升:约2倍 从计算结果来看,多模块提升的效率更高。在使用mvnd package打包多模块式,可在控制台…

【数据结构】(Python)差分数组。差分数组与树状数组结合

差分数组: 基于原数组构造的辅助数组。用于区间修改、单点查询。区间修改的时间复杂度O(1)。单点查询的时间复杂度O(n)。差分数组的元素:第一个元素等于原数组第一个元素,从第二个元素开始是原数组对应下标的元素与前一个元素的差&#xff0…

k8s-1.28.2 部署prometheus

一、prometheus helm仓库 ## 网站地址 # https://artifacthub.io/## prometheus 地址 # https://artifacthub.io/packages/helm/prometheus-community/prometheus. # helm repo add prometheus-community https://prometheus-community.github.io/helm-charts # helm repo …

vulhub-wordpress靶场

一.主题上传漏洞 来到靶场点击主题选择add new 这里有一个上传主题的地方 我们可以去网上找到wordpress主题下载一个 wordpress模板 网页设计模板 免费 免费下载 - 爱给网 下载完成后对我们有用的东西只有这一个目录,把它拖出来 点开moban目录后,创建…

深入浅出梯度下降与反向传播

文章目录 1. 前言2. 基本概念2.1 一元函数的导数2.2 偏导数2.3 方向导数2.4 梯度2.5 均方误差 3. 梯度下降3.1 梯度下降的公式3.2 梯度下降的类型(优化器) 4. 反向传播4.1 反向传播的基本步骤4.2 反向传播的数学推导 5. 实战5.1 手动求导5.2 自动求导5.3…

gitlab-runner的卸载与安装

如果你使用rpm方式安装gitlab-runner,则可以参考本教程。 卸载 停止和卸载gitlab-runner 停止 gitlab-runner stopchkconfig gitlab-runner off卸载 gitlab-runner uninstall删除rpm包 查询出rpm包名,根据包名删除rpm。 [rootEuler02 ~]# rpm -qa …

2024年12月31日Github流行趋势

项目名称:free-programming-books 项目地址url:https://github.com/EbookFoundation/free-programming-books项目语言:HTML历史star数:344575今日star数:432项目维护者:vhf, eshellman, davorpa, MHM5000, …

基于深度学习的视觉检测小项目(二) 环境和框架搭建

一、环境和框架要求 SAM的环境要求: Python>3.7 PyTorch>1.7 torchvision>0.8 YOLO V8的环境要求:YOLO集成在ultralytics库中,ultralytics库的环境要求: Python>3.7 PyTorch>1.10.0 1、确定pytorch版本…

深度学习——损失函数汇总

1. 连续值损失函数 总结:主要使用胡贝儿损失函数,应用于连续数值的预测之间的误差损失,参考地址 import torch import torch.nn as nna = torch.tensor([[1, 2], [3, 4]], dtype=torch.float) b = torch.tensor([[3, 5], [8, 6]], dtype=torch.float)loss_fn1 = torch.nn.M…

【分布式数据库与数据存储方案】详解

分布式数据库与数据存储方案 一、分布式数据库概述 (一)概念 分布式数据库是一种将数据分散存储在多个物理节点上的数据库系统,这些节点通过网络进行连接和通信,对外呈现出一个统一的逻辑数据库,用户或应用程序可以像…

TB1801D 线性驱动 LED 恒流芯片

1、产品概述 TB1801D是一款专为12V灯珠设计的汽车灯专用的低压差恒流芯片,输出电流恒流精度≤3%,外围结构简单。TB1801D 内置 130℃过温保护电路,可在各种散热条件下将 LED 灯珠温度控制在 140℃以内。TB1801D 内置 100V 的功率 M…

HTML——38.Span标签和字符实体

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>span标签和字符实体</title><style type"text/css">h1{text-align: center;}p{text-indent: 2em;}span{color: red;}</style></head><…

纯血鸿蒙ArkUI线性布局详解

线性布局说明 线性布局&#xff08;LinearLayout&#xff09;是开发中最常用的布局&#xff0c;通过线性容器Row和Column构建。线性布局是其他布局的基础&#xff0c;其子元素在线性方向上&#xff08;水平方向和垂直方向&#xff09;依次排列。线性布局的排列方向由所选容器组…

Debian-linux运维-docker安装和配置

腾讯云搭建docker官方文档&#xff1a;https://cloud.tencent.com/document/product/213/46000 阿里云安装Docker官方文档&#xff1a;https://help.aliyun.com/zh/ecs/use-cases/install-and-use-docker-on-a-linux-ecs-instance 天翼云常见docker源配置指导&#xff1a;htt…

【网络安全实验室】脚本关实战详情

难道向上攀爬的那条路&#xff0c;不是比站在顶峰更让人热血澎湃吗 1.key又又找不到了 点击链接&#xff0c;burp抓包&#xff0c;发送到重放模块&#xff0c;点击go 得到key 2.快速口算 python3脚本 得到key 3.这个题目是空的 试了一圈最后发现是 4.怎么就是不弹出key呢…