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

文摘   科技   2024-05-21 14:46   上海  

在创建流处理管道时,需要两个关键组件:用于处理和转换数据的工具,以及用于可视化数据的工具。这两种工具的良好协作对于顺利操作至关重要。RisingWave 和 Redash 就提供了一个优秀的解决方案,能够满足流处理管道这一需求。

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

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

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

1设置 RisingWave

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

启动 RisingWave 实例

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

创建表

让我们在 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 yearmonth;

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

2在 Redash 中连接 RisingWave

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

设置 Redash

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

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

连接 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 的优势,您可以构建复杂的数据管道,并从流数据中解锁强大的洞察力。

参考资料

[1]

快速入门: https://docs.risingwave.com/docs/dev/get-started/

[2]

RisingWave Cloud: https://www.risingwave.cloud/

[3]

快速入门: https://docs.risingwave.com/cloud/quickstart/

[4]

设置 Redash 实例: https://redash.io/help/open-source/setup


关于 RisingWave 

RisingWave 是一款基于 Apache 2.0 协议开源的分布式流数据库,致力于为用户提供极致简单、高效的流数据处理与管理能力。RisingWave 采用存算分离架构,实现了高效的复杂查询、瞬时动态扩缩容以及快速故障恢复,并助力用户极大地简化流计算架构,轻松搭建稳定且高效的流计算应用。
RisingWave 始终聆听来自社区的声音,并积极回应用户的反馈。目前,RisingWave 已汇聚了 150+ 名开源贡献者和 3000+ 名社区成员。全球范围内,已有上百个 RisingWave 集群在生产环境中部署。


往期推荐

技术内幕

如何上手 RisingWave 👉 新手入门教程

RisingWave 中文用户文档上线,阅读更高效!

深入探索 RisingWave 中的高可用性与容错机制

深入理解 RisingWave 流处理引擎(三):触发机制

深入理解 RisingWave 流处理引擎(二):计算模型

深入理解 RisingWave 流处理引擎(一):总览

用户案例
视源股份(CVTE)IT 流计算应用历程
尘锋 SCRM 如何使用 RisingWave 实时打宽
RisingWave 在超百亿管理规模对冲基金公司中的应用
金融科技公司 Kaito 使用 RisingWave 实现实时智能化
龙腾出行如何通过 RisingWave 实现实时数据分析
RisingWave 助力乾象投资打造实时监控平台

RisingWave中文开源社区
RisingWave 是一款开源分布式 SQL 流数据库,致力于大幅降低流计算使用门槛与复杂度。RisingWave 已为全球超百家企业构建新一代流处理与分析平台。
 最新文章