Hasty Briefsbeta

双语

We give every user SQL access to a shared ClickHouse cluster

2 months ago
  • #database
  • #security
  • #query-language
  • TRQL(触发查询语言)是一种类SQL语言,专为多租户分析数据库设计,允许用户编写任意SQL查询,同时确保租户数据隔离,避免越权查询风险。
  • TRQL通过编译生成安全的ClickHouse查询,由编译器强制实现租户隔离,并隐藏数据库内部细节。
  • 开发TRQL的核心原因包括:通过语法控制保障安全性、自动租户隔离、隐藏数据库实现细节,以及扩展ClickHouse原生不支持的功能。
  • 选择ClickHouse因其列式存储结构、卓越性能、完整SQL支持及可扩展性优势。
  • TRQL编译流程包含:ANTLR语法解析、模式校验、租户隔离、时间限制、参数化处理,最终生成ClickHouse SQL。
  • TRQL特性包含虚拟列、列重命名、值转换和列元数据渲染,兼顾可用性与安全性。
  • 内置函数如`timeBucket()`自动时间分桶、`prettyFormat()`提供计算表达式渲染提示等增强功能。
  • 查询编辑器采用双解析器架构,支持模式驱动的自动补全和语法检查,兼顾性能与准确性。
  • 通过并发数、返回行数、时间范围和查询资源等限制机制保障系统稳定性,防止滥用。
  • TRQL为仪表盘组件、SDK查询和REST API提供支持,是Trigger.dev可观测性功能的核心基础。