## TRQL:用于分析数据的安全、租户隔离的 SQL
Trigger.dev 的查询与仪表板解决了让用户查询共享分析数据库(ClickHouse)而不损害数据安全或集群稳定性的难题。解决方案是 **TRQL(Trigger 查询语言)**,一种编译成安全、租户隔离的 ClickHouse 查询的 SQL 风格语言。
TRQL 不直接暴露 ClickHouse SQL,而是作为一种领域特定语言 (DSL) 提供关键优势:**安全性**,通过限制性语法防止危险操作,如 `DELETE` 或 `UPDATE`;**租户隔离**,自动注入过滤器以将查询限定到正确的组织;**抽象化**,隐藏内部数据库细节,如表和列名;以及 **扩展功能**,如虚拟列和自动时间分桶。
TRQL 使用 ANTLR 将查询解析为抽象语法树 (AST),然后进行模式验证、租户隔离、时间限制和参数化,最后再翻译成可执行的 ClickHouse SQL。这个流程确保了安全性和效率。
该系统具有模式驱动的自动补全功能,并限制并发性、行数和查询资源以保持稳定性。TRQL 旨在具有可扩展性,允许在不改变核心查询语言的情况下添加新的数据源,并构成 Trigger.dev 观测性功能的基础。