问题描述
对于我们的某些日志,我们具有以下架构:
现在,我们经常看到有人从IoT数据开始然后想要查询主事件表的模式。联接或查询条件是向导。现在,由于我们拥有大量数据,因此无条件查询当然不会在短时间内返回。
现在,我们的分析师所做的就是将时间范围用作因素。通常,传感器数据是指在同一天或+/-几个小时或几分钟或几秒钟内发生的事件(取决于事件)。该查询通常返回,但并不总是尽可能快。鉴于guid是唯一的,因此明确声明该知识的查询通常比不包含该查询的查询要快得多,例如
Event_Table | where ... | take 1
不幸的是,每个人都需要记住数据的那些属性。
在很长的介绍之后:Kusto中是否有一种方法可以在不显式写入“ take 1”的情况下加快这些查询?像这样,告诉Kusto引擎此列包含唯一键吗?我不是在说要强制执行此操作(就像数据库唯一键一样),而只是向kusto提供有关如何改进查询的提示?可以以某种方式做到这一点吗?
解决方法
听起来您可以从引入服务器端功能中受益: https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/schema-entities/stored-functions
使用此方法-您可以在服务器上定义功能-用户将为该功能提供参数。