# Space and Time视图

By [honey](https://paragraph.com/@duoergun) · 2024-02-28

---

### **它是什么以及我们为何构建它**

浏览复杂的数据集并执行多方面的查询是许多数据驱动应用程序面临的常见挑战。开发人员可能会发现自己一遍又一遍地编写和运行相同的复杂的多表查询。这可能既耗时又容易出错，尤其是随着数据的增长和发展。为了支持更好的开发人员工作流程，我们很高兴地宣布我们引入了对空间和时间视图的支持。

从本质上讲，视图就像保存的查询快捷方式，您可以在将来的 SQL 语句中引用它。Space and Time 已经允许您在 Studio 界面上保存和命名查询，但通过增加对视图的支持，您可以在新的 SQL 语句中引用保存的查询，并轻松使用它为您的智能合约编写更复杂的逻辑一种具有成本效益的方式。此外，此升级还将实现更快的查询结果，以便更快地加载到您的应用程序、仪表板、BI 工具等上。

### **怎么运行的**

视图是一种虚拟表；它是存储在数据库中的命名 SQL 查询。典型用途包括：

*   以消费者认为更自然、更简单等的方式构建数据。
    
*   限制数据访问/可见性（例如限制表列）
    
*   为架构已更改的表提供向后兼容的接口
    

当您查询标准视图时，数据库会对基表运行基础 SQL 查询并返回结果。它本质上是一种保存和重用复杂查询的方法，但它不存储结果数据，因此每次查询视图时，都需要再次执行底层查询。

Space and Time 支持标准视图，还支持两种特殊类型的视图：物化视图和参数化视图。

#### **物化视图**

物化视图是其结果在执行之前被物化的视图。换句话说，根据某些用户配置的冲动（无论是成功提交到引用的表还是只是过去的时间间隔），存储在物化视图中的数据都会被刷新。从用户的角度来看，对物化视图进行操作非常简单：它们的查询方式与视图相同，创建物化视图只需要有关刷新的额外配置。

#### **参数化视图**

参数化视图是添加参数的视图的扩展。参数是用户在执行视图时必须提供一些值的变量。因此，参数化视图可以对常见查询进行模板化，从而进一步提高与数据库交互时的工作效率。

### **它能实现什么**

Space and Time 对标准、物化和参数化视图的支持为分析开辟了大量新用例：

*   复杂的分析操作：如果您正在处理涉及多个繁重计算的复杂数据分析，例如时间序列分析、多维分析或任何其他复杂的操作，视图可以通过存储预先计算的结果来显着加快这些操作的速度，从而允许您可以更有效地产生见解。
    
*   更快的仪表板：假设您的应用程序包含一个仪表板，可显示最近的用户活动、关键性能指标以及定期更新的其他信息。您可以使用物化视图来存储这些查询的结果，而不是每隔几秒运行一次占用大量资源的查询来刷新仪表板。这减少了数据库的负载，并允许更快地更新仪表板。
    
*   个性化的用户体验：参数化视图非常适合需要根据个人用户配置文件或操作检索特定信息的场景。如果您想使用参数化视图为应用中的每个用户显示个性化活动源，您可以创建一个带有用户 ID 占位符的查询模板，这样您就不必为每个用户编写唯一的查询。这不仅简化了您的代码，还提高了应用程序的性能。假设您想要按时间范围创建 NFT 购买图表。您可以使用一些简单的参数（例如时间范围、交易哈希、智能合约地址或用户地址信息）轻松执行历史分析，而不是简单地提供区块链的当前状态。
    

[https://www.spaceandtime.io/blog/space-and-time-views](https://www.spaceandtime.io/blog/space-and-time-views)

---

*Originally published on [honey](https://paragraph.com/@duoergun/space-and-time-6)*
