工程资源 / 实时数据可视化

实时数据可视化

人们常说一图胜千言,那么一个数据可视化是否意味着胜过千行数据?

数据可视化之于原始数据,犹如图像之于散文——它们通常比任何数据表或 JSON 流更能讲述查询结果的故事。实时数据可视化为这些可视化增添了实时元素。我们希望这些可视化使用最新数据,并随着新数据的出现而定期更新。

本指南将探讨实时数据可视化,了解其重要性,并查看一些实际示例。

实时数据可视化需要实时分析

我们希望在数据可用时立即获得洞察。如果我上传视频到 YouTube,我想尽快知道是否有人在观看以及他们观看了多长时间。我不想等到明天批处理作业运行并填充分析数据库。

实时数据可视化与实时分析密切相关。如果我们没有快速摄取流数据的基础设施,以低延迟为数据提供查询服务,并在大规模的情况下做到这一点,我们就无法生成实时可视化。

如果没有快速摄取,我们的可视化将基于过时的数据。如果没有低延迟查询,仪表板加载和更新需要太长时间,如果没有规模,我们无法在仪表板上拥有我们想要的那么多可视化。

这些情况都不利于及时做出决策。

实时数据可视化的优势

实时数据可视化的优势与实时分析的优势相似。让我们来看看其中的一些优势,以及这些优势可能如何发挥作用的一些示例。

更快的决策制定

我们现在可以对不断变化的情况做出快速反应,并根据最新的信息做出决策。

例如,假设我们正在经营一家在线服装店,并且对某款夏装的需求意外增加。实时看到这种情况可以让运营经理检查库存数量,并向供应商下订单以确保满足需求。或者,他们可以为与这款连衣裙搭配的配饰推出限时促销活动,以充分利用突然出现的兴趣。

使用实时数据快速调整用户体验,使您更有可能吸引客户、增加销售额并提高对您电子商务平台的整体满意度。

改善客户体验

组织可以使用实时数据立即个性化用户体验并对趋势做出反应。通过利用实时仪表板,组织可以发现并根据正在发生的趋势采取行动,从而创建及时且相关的用户体验。

例如,假设我们是一家热门旅游区的高档酒店的礼宾人员。我们的仪表板在一个图表上显示入住人数激增,但在城市最著名的博物馆的等待时间却异常低。根据这一洞察,我们可以在客人办理入住手续时迎接他们,告知他们等待时间短,并主动为他们预订博物馆门票。我们甚至可以安排酒店的班车服务额外跑一趟博物馆。

通过使用实时数据来指导您与客人的互动,我们可以提供一种感觉个性化、及时且有价值的服务。这可以提高客人的满意度、正面评价以及对您酒店的忠诚度。

早期问题检测

实时数据可视化充当早期预警系统,使我们能够在问题或异常出现时立即识别它们。这种主动方法使我们能够在潜在问题升级为重大问题之前加以解决。

例如,假设我们电子商务平台的实时仪表板突然显示购物车放弃率飙升。经过调查,我们发现最近的网站更新导致 Android 手机上的结账流程显着减慢。通过我们的实时可视化尽早发现此问题,我们可以快速回滚有问题的更新或实施修复,从而最大限度地减少销售损失并保持流畅的客户购物体验。

使用实时数据可视化可以帮助快速检测和解决问题,防止潜在的收入损失并保持客户满意度

实时数据可视化示例

让我们看一些实时数据可视化的用例。

CommonRoom

CommonRoom 是一个软件平台或工具,旨在帮助公司,尤其是科技公司,管理和优化其开发者关系和社区参与工作。

CommonRoom 应用程序包含各种实时仪表板和可视化,使组织能够管理其社区。他们最近将 ClickHouse 添加到他们的架构中,以充当快速搜索引擎,处理从 Marketo、Salesforce、LinkedIn、Slack 等多个来源摄取的数据。

下面显示了 CommonRoom 中的页面示例

adsb.exposed

ADS-B(广播式自动相关监视)是一种广播各种飞行数据的无线电协议。ClickHouse 联合创始人兼 CTO Alexey Milovidov 基于此数据构建了一个交互式可视化和分析工具。

adsb.exposed 聚合和可视化大量的空中交通数据。数据托管在 ClickHouse 数据库中并即时查询。您可以使用自定义 SQL 查询调整可视化,并从 500 亿条记录向下钻取到各个数据记录。

以下是应用程序中的一个可视化示例,显示了在伦敦泰晤士河上空飞行的直升机:

CryptoHouse

CryptoHouse 是一个由 ClickHouse 驱动的平台,提供免费的区块链分析。CryptoHouse 提供实时分析,使每个人都可以访问即时查询响应。

用户可以利用 SQL 查询持续更新的数据,这要归功于 Goldsky。除了以表格格式查看结果外,用户还可以生成图表。以下是显示 Solana 交易数量的图表示例,按日期和状态分组

Juspay

Juspay 是一家印度金融科技公司,它使用 ClickHouse 为其端到端支付解决方案和实时商户仪表板提供 A/B 测试和监控

对于监控和 A/B 测试,他们结合使用了 Kafka、ClickHouse 和 Grafana。他们监控活动日志并在 Kafka 中执行转换,然后再将数据传输到 ClickHouse。您可以在下面看到他们的 Grafana 仪表板示例

他们还为其商家提供实时仪表板,以便他们可以实时跟踪其交易并监控其成功或失败。下面显示了此类仪表板的示例

实时数据可视化架构

实时数据可视化中使用的数据将从 Apache Kafka 或 Redpanda 等流数据平台开始其生命周期。该数据可能会在被传输到实时数据库之前被流处理器转换或增强。

现在数据已在数据库中,它如何到达可视化?这就是我们将在下一节中了解的内容

将数据库连接到可视化工具

在高层次上,有两种方法可以将数据从数据库传输到仪表板或可视化工具:基于推送和基于拉取。

基于推送的数据传输

基于推送意味着当数据到达我们的实时分析系统时,它会被发送到可视化工具——它不需要做任何事情来获取数据。Web sockets服务器发送事件是此技术最流行的技术。

使用这两种技术,您可以从客户端创建订阅,并在新事件可用时接收它们。然后可以将这些事件包含在可视化中。

ClickHouse 目前不支持此方法。

基于拉取的数据传输

相反,基于拉取意味着轮询服务器以获取数据,通常以固定的时间间隔进行。例如,我们可能每秒请求新数据,因此我们将每秒调用 API 或发送查询来执行。我们将为此技术使用 HTTP 客户端或编程语言客户端。

如果您使用 Java,传统上是使用 JDBC 等 API 完成的,而对于其他编程语言,则使用 ODBC。实际上,许多分析平台仍然要求您使用这些 API 之一来连接到您的数据库。

随着 Python 的普及,SQLAlchemy 成为一种替代 API 而出现。SQLAlchemy 提供了一个高级 ORM(对象关系映射器),用于将 Python 类映射到数据库表以及执行 SQL 查询的能力。

工具和技术

现在让我们看看一些可以用来构建实时数据可视化和仪表板的工具。我们将假设 ClickHouse 被用来为这些工具提供数据!

这是一个快速发展的领域,因此虽然我们将介绍撰写本文时最新的工具,但在您阅读本文时可能会创建新的工具!

分析平台

第一类是我们称之为分析平台的平台。这些工具都是一体化解决方案,可让您创建具有广泛支持的可视化选择的多个仪表板。它们通常具有与流行的分析数据库的连接器。

  • Omni Analytics 使公司能够快速将分析嵌入到其产品中。它提供了一个现代架构,将数据库内和内存内处理与智能缓存相结合,以实现快速结果。它们提供可定制的可视化和可扩展的组件,以便公司可以创建品牌数据体验。Omni 具有与许多流行数据库的连接器,包括 ClickHouse
  • Apache Superset 是一个开源数据探索和可视化平台。它旨在快速、直观且加载了各种选项,使其对于具有不同专业知识水平的个人来说,分析和可视化其数据非常友好。它可以连接到任何基于 SQL 的数据库,包括 ClickHouse 和 ClickHouse Cloud。我们在 ClickHouse 内部使用 Superset 来可视化我们数据仓库中的数据
  • Looker 由 Google 开发,是一个商业智能 (BI) 平台和嵌入式分析工具,可让用户构建自定义数据应用程序。Looker 具有通用的语义建模层,使数据更易于访问。它还可以轻松地将仪表板嵌入到您的应用程序中。您可以将 Looker 与 ClickHouse 一起使用,但它在处理 ClickHouse 的数据类型方面存在一些限制。
  • Metabase 是一个开源商业智能平台,其最大的卖点是易用性。它提供了一个用户友好的可视化查询构建器,并支持连接到 20 多个数据源,包括来自 Amazon 和 Google 的数据源。Metabase 因其直观的界面而受到赞誉,即使是非技术用户也可以独立探索数据和创建报告。ClickHouse 是 Metabase 中支持的数据源
  • Salesforce 旗下的 Tableau 是一个可视化分析平台,允许用户探索和分析来自各种来源的数据。它提供了一套产品,包括 Tableau Desktop、Tableau Server、Tableau Public 和 Tableau Reader,其功能范围从数据准备到可视化故事讲述和协作。Tableau 具有ClickHouse 的连接器

低代码工具

此类工具在 2010 年代后期兴起,使数据科学家可以轻松地分享他们的工作。这些工具允许您编写 Python 代码,然后将其转换为交互式 Web 应用程序。

  • Streamlit 使创建和共享用于机器学习和数据科学项目的 Web 应用程序变得容易。用户只需几行 Python 代码即可创建交互式仪表板和数据可视化,并将其发布到 Streamlit Cloud。
  • FastHTML 是一个 Web 框架,旨在开发可扩展的交互式 Web 应用程序,同时保持与 HTML 和 HTTP 概念的直接关联。
  • Mesop 起源于 Google,专为构建 AI Web 应用程序的用户而设计。它提供了一种声明式 UI 设计方法、一系列预构建组件和简化的部署选项,使开发人员能够专注于 AI 逻辑而不是前端复杂性。
  • Gradio 使​​用户能够通过用户友好的 Web 界面快速创建和共享交互式机器学习演示。Gradio 应用程序可以作为网页提供或嵌入到 Python 笔记本中。Gradio 还通过 Hugging Face Spaces 提供永久托管选项。

Python 可视化库

低代码工具为实时仪表板提供了容器,但我们需要使用可视化库来实际可视化数据。Python 生态系统有许多这样的库,因此我们将重点介绍我们最喜欢的几个库。

  • plotly 是一个交互式、开源且基于浏览器的图形库。它附带 30 多种图表类型,包括科学图表、3D 图形、统计图表、SVG 地图、金融图表等。
  • Vega-Altair 是一个基于 Vega-lite 语法的声明式可视化库,并具有相当简单的 API。
  • Bokeh 让用户可以为现代 Web 浏览器创建交互式可视化。它可以帮助您创建从简单绘图到具有流数据集的复杂仪表板的任何内容。

我们还想特别提及 Perspective,这是一个我们最近发现的库。它专为大型流数据集而设计,使其成为实时数据可视化的完美选择

JavaScript 可视化库

如果您正在使用 JavaScript 创建前端应用程序,那么还有各种可视化库可用。以下是我们最喜欢的一些库

  • Apache Echarts 是一个开源 JavaScript 可视化库,针对 Web 和移动设备进行了优化。它与大多数现代 Web 浏览器兼容,包括 IE9/10/11、Chrome、Firefox 和 Safari。
  • Tremor 提供了一组用于仪表板和图表的开源、可访问的组件。它专为 React v18.2.0+ 设计,并且需要 Tailwind CSS v3.4+。
  • plotly 是一个交互式、开源且基于浏览器的图形库。它附带 30 多种图表类型,包括科学图表、3D 图形、统计图表、SVG 地图、金融图表等。它也适用于 Python 用户。
分享此资源
关注我们
X imageSlack imageGitHub image
Telegram imageMeetup imageRss image
©2025ClickHouse, Inc. 总部位于加利福尼亚州湾区和荷兰阿姆斯特丹。