构建高性能实时数据模型指南
实时数据模型指南
数据已成为决策的关键工具。为了能够采取行动,数据需要进行清洗、转换和建模。
这个过程通常是一个以给定频率运行的ELT流水线的一部分,例如每天运行一次。
另一方面,为了能够快速调整和做出决策,利益相关者有时需要访问最新的数据。
例如,如果一个网站的用户数量大幅下降,他们需要迅速了解这个问题,并获得必要的信息来理解问题。
- 数据科学难吗?了解现实情况’ 翻译结果为:
- 用简单的英文提示训练LLM!遇见gpt-llm-trainer:训练特定任务LLM的最简单方法
- 遇见 Flows:一种用于建模复杂的人工智能与人类交互的革命性人工智能框架
当我第一次被要求构建一个具有实时数据的仪表板时,我直接将其连接到实时的原始表,并提供了一些简单的关键绩效指标,如用户数量和崩溃次数。对于月度图表和更深入的分析,我创建了另一个连接到我们的数据模型的仪表板,每天更新。
这种策略并不理想:我在数据仓库和BI工具之间重复了逻辑,所以维护起来更困难。此外,实时仪表板只能在有几天的数据时表现良好,所以利益相关者必须切换到历史数据来查看较早的日期。
我知道我们必须采取一些措施。我们需要实时数据模型,而不会影响性能。
在本文中,我们将探讨构建实时模型的不同解决方案及其优缺点。
视图
SQL视图是一个包含查询结果的虚拟表。与表不同,视图不存储数据。它们由每次查询视图时执行的查询定义。
以下是一个视图定义的示例:
CREATE VIEW orders_aggregated AS ( SELECT order_date, COUNT(DISTINCT order_id) AS orders, COUNT(DISTINCT customer_id) AS customers FROM orders GROUP BY order_date )
即使向表中添加新行,视图也会保持最新状态。然而,如果表很大,视图可能会变得非常慢,因为没有存储数据。
如果您正在处理一个小项目,视图应该是尝试的第一个选项。