Chevron Left

查看所有社区故事

使用Materialize和Metabase进行流式分析

2022年1月18日

Marta Paes

Materialize

photo of Marta Paes

Marta 是 Materialize 的高级 DevEx 工程师,Materialize 是一家使构建实时数据尽可能容易的公司。在找到她在流式系统和开发者体验方面的热情之前,她曾作为 DWH 工程师工作了 4 年以上。您可以在 Twitter 上联系她 @morsapaes

长期以来,将您的批处理管道迁移到流式处理意味着要准备好处理 JVM 语言和需要大量维护的分布式框架的混合,以及学习比您应该知道得更多的关于流式系统内部的知识。虽然这可能会适合拥有大量人力和时间预算的团队,但它使流式处理对其他人来说更难以采用。

现代数据堆栈是如何改变这一点的?

从批处理到流式处理的转变永远不会不具挑战性,但它确实可以减少痛苦。随着现代数据堆栈(MDS)重塑数据工程和数据分析的未来,有一些工具专注于通过提供以下内容来降低进入该领域的门槛:

1) 更容易访问更新鲜的数据,更快;
2) 与您的常规堆栈融合的熟悉界面;
3) 最小化的运营开销。

同时,"不够快" 仍然是分析中常见的瓶颈,从数据 转换可视化。一个试图改变这一点的工具是 Materialize,这是一个专门为流式分析和 MDS 构建的数据库。

实践中的流式分析

让我们使用这个演示来分解使用Materialize和Metabase构建端到端分析管道的基本步骤。

a screenshot with a Metabase date picker

1. 连接到流数据源

第一步是让Materialize知道您的数据位置及其外观。在这个演示中,我们使用Kafka作为数据源,但您也可以从关系型数据库(如PostgreSQL)开始,并将复制流推送到Materialize(即更改数据捕获)。

2. 使用SQL建模数据转换

接下来,您需要定义您的转换为SQL查询(您甚至可以使用dbt!)。这些可以非常复杂,并使用例如子查询和n路连接,因为这里有个窍门:而不是重新读取源数据并从头开始重新计算,Materialize将保持查询结果的索引在内存中,并随着新源数据的流入增量更新它们。

3. 可视化结果

最后,您可以使用Materialize与Metabase的本地集成来跟踪这些结果。所有查询都只是简单地从自更新的物化视图中读取数据,因此您可以将仪表板设置为每秒自动刷新一次,而无需让服务层过度劳累,并放心地知道您向最终用户提供的是最新且一致的见解。

有用资源
演示
博客文章:嘿,Materialize:Twitch上都发生了什么流媒体直播?
Materialize文档

Marta Paes

Materialize

photo of Marta Paes

Marta 是 Materialize 的高级 DevEx 工程师,Materialize 是一家使构建实时数据尽可能容易的公司。在找到她在流式系统和开发者体验方面的热情之前,她曾作为 DWH 工程师工作了 4 年以上。您可以在 Twitter 上联系她 @morsapaes

您可能还会喜欢

预测下一次点击

Ukrit Wattanavaekin

Metabase

利用数据提供可信的指标

Frédéric Vion

Subclic

数据驱动型产品管理

Victor Bolu

WebAutomation

您可能还会喜欢

预测下一次点击

Ukrit Wattanavaekin

Metabase

利用数据提供可信的指标

Frédéric Vion

Subclic

数据驱动型产品管理

Victor Bolu

WebAutomation