Sentry 监控 - Snuba 数据中台架构(Query Processing 简介)-墨者安全-墨者盾
DDOS防御_CC防护_高防CDN服务器_【墨者安全】—墨者盾墨者盾—你的网站贴身保镖!

QQ:800185041
高防免费接入:400-0797-119

渠道合作:156 2527 6999

主页 > CC防护 > Sentry 监控 - Snuba 数据中台架构(Query Processing 简介)

Sentry 监控 - Snuba 数据中台架构(Query Processing 简介)

小墨安全管家 2021-10-12 00:07 CC防护 89 ℃
DDoS防御
表达式下推(Expressions Push Down)

上一步生成的查询将是一具有效的连接,但效率极低。这一步差不多上是一具连接优化器(join optimizer),它将所有能够成为子查询一部分的表达式下推到子查询中。这是一具独立于子查询处理的必要步骤,因为 Clickhouse join 引擎不执行任何表达式下推,于是它由 Snuba 来优化查询。

SnQL 解析器:

https://github.com/getsentry/snuba/blob/master/snuba/query/processors/mapping_optimizer.py

查询处理器是无状态转换,接收查询对象(及其 AST)并就地转换。这是为逻辑处理器实现的接口。在逻辑时期,每个实体提供按顺序应用的查询处理器。常见的用例是像 apdex 如此的自定义函数,或者像时刻序列处理器(time series processor)那么的计时。

Sentry 监控 - Snuba 数据中台架构(Query Processing 简介)

Legacy 和 SnQL 解析器

Sentry 监控 - Snuba 数据中台架构(Query Processing 简介)

此类查询的查询处理管道由与上述内容相关的几个附加步骤组成。

与查询处理器相反,翻译规则在查询上没有完整的上下文,只能翻译单个表达式。这使我们可以轻松地编写翻译规则并跨实体重用它们。

Sentry 监控 - Snuba 数据中台架构(Query Processing 简介)

https://github.com/getsentry/snuba/blob/master/snuba/datasets/entity.py#L46-L47

查询验证(Query Validation)

此刻期确保能够运行查询(大多数事情下,我们还没有捕获所有大概的无效查询)。那个时期的职责是在无效查询的事情下返回一具 HTTP400,并向用户提供适当的实用消息。

这分为两个子时期:普通验证(general validation)和实体特定验证(entity specific validation)。

普通验证由一组检查组成,这些检查在解析器生成查询之后即将应用于每个查询。这在 QueryEntity 函数中发生。这包括防止别名阴影(alias shadowing)和函数签名验证(function signature validation)等验证。

简单查询处理管道(Simple Query Processing Pipeline)

这与上面讨论的从逻辑查询验证到物理查询处理器的管道相同。


DDoS防御

当前位置:主页 > CC防护 > Sentry 监控 - Snuba 数据中台架构(Query Processing 简介)

标签列表
DDoS防御
网站分类
X
 

QQ客服

400-0797-119