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

在创建流处理管道时,需要两个关键组件:一个用于处理和转换数据,一个用于数据可视化。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.mzph.cn/news/839173.shtml

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

相关文章

TRICONEX 3720 技术特点

TRICONEX 3720是一款安全管理系统通讯模块,通常用于工业自动化和安全系统中。它的主要作用是在控制系统中处理和管理数据通讯,确保信息在各个组件之间的有效传递。以下是关于TRICONEX 3720的详细介绍: 功能定位:TRICONEX 3720作为…

计算机操作系统总结(1)

1操作系统的概念(定义)功能和目标 (1)什么是操作系统? (2)操作系统的功能和目标—作为系统资源的管理者 (3)操作系统的功能和目标—向上层提供方便易用的服务 (4)操作系…

IP学习——ospf1

OSPF:开放式最短路径优先协议 无类别IGP协议:链路状态型。基于 LSA收敛,故更新量较大,为在中大型网络正常工作,需要进行结构化的部署---区域划分、ip地址规划 支持等开销负载均衡 组播更新 ---224.0.0.5 224.0.0.6 …

CCF-GESP 等级考试 2023年12月认证C++一级真题解析

2023年12月真题 单选题(每题 2 分,共 30 分) 第 1 题 以下C不可以作为变量的名称的是( )。 A. CCF GESPB. ccfGESPC. CCFgespD. CCF_GESP 正确答案:A 解析: A: 变量名不能包含空格,因此 “CCF GESP” 是不…

区块链开发:区块链软件开发包装相关解析

区块链开发是指设计、构建和维护基于区块链技术的应用程序或系统的过程。区块链是一种分布式账本技术,它通过去中心化的方式记录和验证数据,确保数据的透明性、不可篡改性和安全性。区块链开发者使用各种编程语言和框架来创建这些应用程序。 在加密货币领…

【Linux】-Linux文件的上传和下载、压缩和解压[9]

目录 前言 一、上传和下载 1、使用finalshell对Linux系统进行上传下载 2、rz、sz命令 二、解压和压缩 1、压缩格式 2、tar命令压缩 3、tar命令压缩 4、zip命令压缩文件 5、unzip命令解压文件 前言 在Linux系统中,文件的上传和下载、压缩和解压是非常重要…

redis 使用场景、比较快的原因

https://www.jianshu.com/p/40dbc78711c8 https://www.cnblogs.com/cye9971-/p/11267431.html redis 读取速度比较快的原因 1、数据直接从缓存读取 也支持持久化,需要子进程去处理 2、单线程模式,省去上下文切换的开销 3、合理的数据结构 4、I/O 多路复…

暴风雨的短视频:成都鼎茂宏升文化传媒公司

暴风雨的短视频:大自然的力与美 ​随着科技的进步和网络的普及,短视频已经成为我们生活中不可或缺的一部分。在这些短暂而精彩的瞬间里,我们得以窥见世界的每一个角落,感受生活的多样性和复杂性。成都鼎茂宏升文化传媒公司而当我…

kotlin基础之lambda编程

在Kotlin中,Lambda表达式是一种非常强大的工具,允许我们以更简洁、更声明式的方式编写代码。Kotlin对集合的操作提供了丰富的函数式API,这使得处理集合数据变得更加直观和高效。以下是如何在Kotlin中使用Lambda表达式、集合的创建与遍历以及集…

ubuntu nginx 配置php 网站

1.安装nginx sudo apt-get install nginx 2.安装php 和php-fpm sudo apt-get install phpsudo apt-get install php-fpm 3.配置ngixn 进入/etc/nginxg/sites-enabled vim default //notice 这里只能有一个default的文件 放两个nginx会把报错 完整配置如下 ## # You sho…

go语言之基本数据类型

文章目录 基础数据类型分类整数类型有符号整数无符号整数默认整数类型 浮点类型复数类型布尔类型字符类型字符串replace字符串获取字符串长度字符串的拼接字符串获取指定位置字符更多string操作 数据类型之间的转换其它基本类型转字符串类型fmt包中的Sprintfstrconv包中函数 字…

开源与闭源:AI模型发展的双重路径之争

前言 随着人工智能(AI)技术的飞速发展,AI模型的应用已经渗透到各行各业,从医疗、金融到制造、教育,无不受到AI技术的深刻影响。在讨论一个AI模型“好不好”“有没有发展”时,绕不过“开源”和“闭源”两条…

java 解决异常 Class path contains multiple SLF4J bindings

前面 为了使用 j2cache pom中导入了 <dependency><groupId>net.oschina.j2cache</groupId><artifactId>j2cache-core</artifactId><version>2.8.4-release</version> </dependency><dependency><groupId>net.osc…

2020 年 12 月青少年软编等考 C 语言二级真题解析

目录 T1. 数组指定部分逆序重放思路分析 T2. 简单密码思路分析 T3. 错误探测思路分析 T4. 奇数单增序列思路分析 T5. 话题焦点人物思路分析 T1. 数组指定部分逆序重放 将一个数组中的前 k k k 项按逆序重新存放。例如&#xff0c;将数组 8 , 6 , 5 , 4 , 1 8,6,5,4,1 8,6,5,…

Java开发之JDBC

JDBC 介绍JDBC程序&#xff08;Statement&#xff09;相关细节URLResultSet 连接池程序&#xff08;PreparedStatement&#xff09; 本文主要记录一下学习JDBC的一些知识点 介绍JDBC 首先谈谈什么是JDBC。下面放几张图&#xff0c;大致就可以清楚JDBC了。程序&#xff08;Sta…

网络编程—— Http的Get请求

http: hyper text transport protocal:超文本传输协议。 http是一种基于客户端-服务器模式的协议(Client-Server)。它规定只能由客户端先发起请求给服务器&#xff0c; 服务器做出响应。 http数据传输以数据报文的形式进行&#xff0c; 客户端向服务器发起的请求叫做请求报文。…

HunyuanDiT

1、依赖关系和安装 首先克隆存储库&#xff1a; git clone https://github.com/tencent/HunyuanDiT cd HunyuanDiT unzip HunyuanDiT-main.zip 2、一个environment.yml用于设置 Conda 环境的文件一个environment.yml用于设置 Conda 环境的文件 conda create -n hunyuandit py…

centos7 redis开机启动

[rootlocalhost system]# vim /etc/systemd/system/redis.service 版本是5.0 /usr/local/redis 是redis安装目录 [Unit] DescriptionRedis.server # 指定服务所依赖的其他单元&#xff08;如网络服务&#xff09;。这确保在启动该服务之前&#xff0c;所需的其他单元已经启动…

C++语法|虚函数与多态详细讲解(七)|理解抽象类?(面试向)

系列汇总讲解&#xff0c;请移步&#xff1a; C语法&#xff5c;虚函数与多态详细讲解系列&#xff08;包含多重继承内容&#xff09; 主要是两个问题&#xff1a; 抽象类和普通类有什么区别&#xff1f;一般把什么类处理处理成抽象类 在这里&#xff0c;案例我们仍然沿用上篇…

【Linux玩物志】Linux环境开发基本工具使用(终章) ——git与gdb调试器

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 前言&#xff1a;这是最后一篇Linux工具篇&#xff0c;今天这篇文章我们要来简单讲一件git与调试器gdb。 目录 使用 git 命令行 安装 git 在 Github 创建项目 注册账号 创建项目 ​编辑 下载项目到本地 在 Gite…