使用 RisingWave 和 Redash 处理和可视化实时数据

news2024/11/16 7:52:03

在创建流处理管道时,需要两个关键组件:一个用于处理和转换数据,一个用于数据可视化。RisingWave 和 Redash 就提供了一个优秀的解决方案。

RisingWave 是一个支持实时数据处理的分布式 SQL 流数据库。它提供增量更新的物化视图,使用户能够使用 SQL 进行流数据的实时连接、转换、清洗和分析。RisingWave 兼容 PostgreSQL,并且能够无缝集成各种上游和下游连接器。这使得 RisingWave 能很轻松地融入任何现有的流处理技术栈。

Redash 是一个用户友好的开源数据可视化和商业智能(BI)工具。它提供了强大的用户界面,能够出色地探索、分析、共享和展示数据。使用 Redash 可以配置各种可视化图表和综合看板,图表能定期或按需自动刷新,确保访问最新数据。且 Redash 支持多种数据源,成为跨平台数据可视化的优先选择。

在本文中,我们将演示如何配置 Redash 以读取 RisingWave 数据库中的数据,从而设置一个完整的流处理管道。

1. 设置 RisingWave

首先,我们将部署一个 RisingWave 实例并创建数据源。

1.1 启动 RisingWave 实例

在本文中,我们将在本地部署 RisingWave。要了解如何在本地启动 RisingWave 实例,请参见快速入门指南。如果您想使用完全托管的版本,请参见 RisingWave Cloud 及其相应的快速入门指南。

1.2 创建表

让我们在 RisingWave 中创建一个表,其中包含一些数据,以便稍后在 Redash 中进行查询。因为 RisingWave 提供丰富的连接器,我们可以从各种流式服务和数据库中摄取数据。本文中,我们选择使用 Kafka。首先,我们用一个数据生成器将模拟数据发送到 Kafka,模拟数据的格式如下:

{
    "year": year,
    "month": month,
    "day": day,
    "temperature": temperature in Celsius,
    "humidity": humidity %,
    "rainfall": rainfall in millimeters,
}

接着,我们使用 CREATE SOURCE 命令与 Kafka broker 建立连接。以下查询创建了一个 Source weather ,并定义了数据的架构。在 RisingWave 中,Source 不会从上游系统摄取数据。要开始摄取数据,我们需要创建一个物化视图。或者,如果需要在 RisingWave 中持久化数据,可以使用 CREATE TABLE

CREATE SOURCE weather (
    year INTEGER,
    month INTEGER,
    day INTEGER,
    temperature DOUBLE,
    humidity DOUBLE,
    rainfall DOUBLE
) WITH (
    connector = 'kafka',
    topic = 'weather_observations',
    properties.bootstrap.server = 'localhost:9092'
) FORMAT PLAIN ENCODE JSON;

Source 创建后,我们将创建一个物化视图,计算每年每月的平均温度、湿度和降雨量。

CREATE MATERIALIZED VIEW monthly_avg AS
SELECT year,
         month,
         avg(temperature) AS avg_temp,
         avg(humidity) AS avg_humidity,
         avg(rainfall) AS avg_rainfall_mm
FROM weather
GROUP BY year, month;

这样,我们就有了可以查询数据的物化视图。

2. 在 Redash 中连接 RisingWave

RisingWave 设置完毕后,让我们启动一个 Redash 实例,然后连接 RisingWave 数据库。

2.1 设置 Redash

要了解如何启动 Redash 实例,请参见设置 Redash 实例,以获取不同的部署方法。本文中,我们使用 Docker-compose 文件来部署 Redash 和所有必要的组件。

在启动 Redash 实例后,请登录或创建 Redash 帐户。

2.2 连接 RisingWave

首先,我们需要连接新的数据源。因为 RisingWave 兼容 PostgreSQL,我们可以设置新的 PostgreSQL 数据源。请从可用选项列表中找到并选择 PostgreSQL。

在 Redash 中创建新数据源

下一步,根据您的 RisingWave 数据库信息填写配置。本文中,我们使用 RisingWave 的默认端口、数据库和账户。对于主机,因为我们使用 Docker 本地部署 Redash,所以主机为 host.docker.internal。您的主机地址将根据您的设置而有所不同。设置后,请点击 Create 并测试连接,以确保 Redash 能够从 RisingWave 读取数据。

填写配置信息

数据源设置完后,我们可以开始编写查询和创建可视化图表。在 New Query 窗口下,将显示所有可用的 RisingWave 表和物化视图。可以看到,上文创建的 monthly_avg 物化视图就在其中。接下来,我们可以查询这个物化视图,也可以先进行必要的数据转换,再创建可视化图表和综合看板。

可视化图表:基于编写的 SQL 查询显示每月平均温度

能查看每月温度、湿度和降雨的综合看板

3. 总结

本文中,通过简单几步,我们将 RisingWave 与 Redash 集成。Redash 提供了广泛功能创建高级可视化图表和综合看板,而 RisingWave 则提供了强大的数据处理、转换和分析能力。此外,RisingWave 还具备更多丰富的集成可选,您可以轻松将其连接到消息系统,从而构建一个完整的流处理管道。

挑选部署流处理管道中的系统并不容易,但 RisingWave 的灵活性和用户友好性可以使整个过程变得更加可控。通过利用 RisingWave 和 Redash 的优势,您可以构建复杂的数据管道,并从流数据中解锁强大的洞察力。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL精通之路】MySQL8.0新增功能-原子DDL语句支持

太长不看系列: 本文一句话总结,MySQL8.0支持多条DDL语句执行时的原子性了(仅限Innodb) 本文属于下面这篇博客的子博客: 【MySQL精通之路】MySQL8.0官方文档-新增功能 1.意义描述 MySQL 8.0支持原子数据定义语言&…

实用的TypeScript开发工具

1、根据接口数据自动定义类型变量:https://wulunyi.github.io/typeof-sjsonc-web/build/index.html ……(持续更新中)

Vue 离线地图实现

效果图: 一、获取市的地图数据 DataV.geoAtlas 获取市地图数据 点击地图缩放至想要的市区域,通过右侧的链接打开网址,复制json数据。 二、获取镇地图数据 选择你想要的镇数据,点击下载 选择级别(清晰度&#xff09…

关闭以及启动ubuntu图形界面

关闭以及启动ubuntu图形界面 文章目录 关闭以及启动ubuntu图形界面1. 关闭图形界面2. 打开图形界面 如果你误杀了Xorg进程,需要重新启动图形界面,可以按照以下步骤操作: 1. 关闭图形界面 查看当前启动的图形界面: 使用下面命令…

【linux系统学习教程 Day03】网络安全之Linux系统学习教程,用户和用户组管理,创建用户,删除用户,创建组,删除组....

1.7 用户和用户组管理 1.7.1 用户管理 1-1 创建用户 #创建用户 useradd #创建一个用户 例子1:useradd test1 #创建用户 useradd #创建一个用户 例子1:useradd dilnur 1-2 设置密码 passwd 例子1:passwd dilnur #用root用户给…

9.1 Go语言入门(环境篇)

Go语言入门(环境篇) 目录一、什么是Go语言二、下载安装配置Go语言开发环境1. 下载2. 安装3. 配置环境变量4. 安装环境验证 三、 开发工具1. 下载2. 安装3. 激活4. 配置SDK 四、 创建go工程文件并运行1. 创建go工程2. 示例代码3. 运行代码 目录 一、什么…

操作系统 c语言简单模仿进程创建和时间片轮转调度算法中的进程调度

1.实验目的 加深对进程概念的理解,明确进程和程序的区别; 深入了解系统如何组织进程、创建进程; 进一步认识如何实现处理器调度。 2.实验预备知识 进程的概念; 进程的组织方式; 进程的创建…

CCF20220601——归一化处理

CCF20220601——归一化处理 代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int n,a[1000],sum0;scanf("%d",&n);for(int i1;i<n;i){scanf("%d",&a[i]);suma[i];}double aver1.0,b0.0,d1.0;aversum/(n*1…

深度学习之基于Django+Tensorflow卷积神经网络实时口罩检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着全球疫情的持续&#xff0c;佩戴口罩成为了公众日常生活中不可或缺的一部分。特别是在人员密集的…

佛山远程抄表电表是什么?

1.佛山远程抄表电表&#xff1a;简述 佛山远程抄表电表&#xff0c;是一种利用通信网技术完成智能电表系统软件&#xff0c;它改变了传统的人工抄水表方式&#xff0c;提升了电力管理的效率和精确性。这类电表不但可以实时检测电力应用情况&#xff0c;还可以实现远程操作、全…

第二证券今日投资参考:5月国产游戏版号发放 猪价加速上涨

昨日&#xff0c;两市股指盘中震荡上扬&#xff0c;沪指盘中续创年内新高&#xff0c;创业板指一度涨超1%。到收盘&#xff0c;沪指涨0.54%报3171.15点&#xff0c;深证成指涨0.43%报9750.82点&#xff0c;创业板指涨0.59%报1875.93点&#xff0c;上证50指数涨0.34%&#xff1b…

Vue学习穿梭框Transfer组件

Vue学习Transfer组件 一、前言1、案例一2、案例二 一、前言 在 Vue 3 中使用 el-transfer 组件可以帮助你实现数据的穿梭功能&#xff0c;让用户可以将数据从一个列表转移到另一个列表。下面是一个简单示例&#xff0c;演示如何在 Vue 3 中使用 el-transfer 组件&#xff1a; …

C语言 数组——向函数传递数组

目录 把数组传给函数&#xff08;Passing Arrays to Functions&#xff09; 向函数传递一维数组 向函数传递二维数组 数组在学生成绩管理中的应用 例&#xff1a;计算每个学生的平均分 把数组传给函数&#xff08;Passing Arrays to Functions&#xff09; 向函数传递一维…

Harbor 使用中出现的问题

安装 使用宝塔安装 安装成功的标志&#xff0c;见下图。初始的默认用户是admin&#xff0c;密码是Harbor12345&#xff0c;登录成功&#xff1a; 错误现象 # docker login 192.168.1.50:8005 Username: admin Password: Error response from daemon: Get "https://1…

民国漫画杂志《时代漫画》第18期.PDF

时代漫画18.PDF: https://url03.ctfile.com/f/1779803-1248612707-27e56b?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;

./scripts/Makefile.clean 文件分析

文章目录 目标 $(subdir-ymn)目标__clean $(clean-dirs):     make -f ./scripts/Makefile.clean obj$(patsubst _clean_%,%,$) $(clean-dirs)$(patsubst _clean_%,%,$)_clean_api _clean_cmd _clean_common _clean_disk _clean_drivers _clean_drivers/ddr/altera _clean_d…

【spring】@CrossOrigin注解学习

CrossOrigin介绍 CrossOrigin 是 Spring Framework 中的一个注解&#xff0c;用于处理跨域资源共享&#xff08;CORS&#xff09;问题。CORS 是一种机制&#xff0c;它使用额外的 HTTP 头来告诉浏览器&#xff0c;让运行在一个 origin (domain) 上的Web应用被准许访问来自不同…

linux 安装redis 并设置开机启动

个人实测 流程 1、第一步 先下载redis ** redis地址 https://download.redis.io/releases/选择你想要的版本 我下载的是 如下图 2、第二步:把下载的包放到linux里面 我用的是 XSHELL 和XFTP 放到/usr/local/java路径下 你可以随便放 3、第三步: ** 执行 以下命令 进行解压 t…

10最佳iPhone数据恢复软件评论

您还在寻找最好的iPhone数据恢复软件吗&#xff1f; 似乎我们在iPhone上放置了越来越多与日常生活和工作有关的重要事情。照片可以保持珍贵的时刻&#xff0c;联系人可以保持联系&#xff0c;录音&#xff0c;备忘录和日历可以作为提醒&#xff0c;视频和歌曲可以娱乐&#xf…

“现代汽车中国前瞻软件赛杯” 牛客周赛 Round 43

A. 小红平分糖果&#xff08;签到&#xff09; // Problem: 小红平分糖果 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/82394/A // Memory Limit: 524288 MB // Time Limit: 2000 ms // // Powered by CP Editor (https://cpeditor.org)#include<b…