标签: azure-data-explorer

Kusto - bin() 如何汇总时间戳

学习Kusto,不明白bin()函数如何对时间戳进行分组:

StormEvents
| where StartTime > datetime(2007-02-14) and StartTime < datetime(2007-03-21)
| summarize event_count = count() by bin(StartTime, 7d)
Run Code Online (Sandbox Code Playgroud)

结果是:

StartTime                           | event_count
**2007-02-12** 00:00:00.0000000     | 535
2007-02-19 00:00:00.0000000         | 1652
2007-02-26 00:00:00.0000000         | 1688
2007-03-05 00:00:00.0000000         | 442
2007-03-12 00:00:00.0000000         | 796
2007-03-19 00:00:00.0000000         | 54
Run Code Online (Sandbox Code Playgroud)

问题:为什么结果的第一个日期是从 2-12 开始,而不是我的代码所示的 2-14?

先感谢您

azure-data-explorer

11
推荐指数
2
解决办法
3万
查看次数

Kusto:将结果过滤到每个 ID 的最新记录

假设我在Azure 数据资源管理器中有一个如下所示的表:

let data = datatable(id:int, dateTime:datetime)
[
    1,"2021-03-03",
    1,"2021-03-04",
    1,"2021-03-12",
    2,"2021-03-04",
    2,"2021-03-04",
    2,"2021-03-07"
]
Run Code Online (Sandbox Code Playgroud)

我想要一个Kusto 查询语言查询,它将查找每个 id 具有最新日期时间的记录。即,我希望查询返回以下记录:

ID 约会时间
2 2021-03-07 00:00:00.0000000
1 2021-03-12 00:00:00.0000000

我查看了这个问题,但在这种情况下,操作员只需要一条记录,这是整个表的最大值。我想取回每个id 的最新日期时间的记录。

我怎样才能做到这一点?


(此示例表仅供说明之用,我正在处理的实际数据要大得多,并且具有许多 ID,并且未排序。)

kql azure-data-explorer

11
推荐指数
1
解决办法
2万
查看次数

是否可以更新 Azure 数据资源管理器 (Kusto) 中的行

  1. 是否可以更新 Azure 数据资源管理器中的行?

  2. 对于存储频繁更新的大型库存(1 亿个项目)来说,它是一个不错的选择,还是主要针对仅附加数据场景进行了优化?我的存储库全天候更新,我需要立即(接近实时)看到更改。

  3. 假设我需要全文搜索、分面和基本项目查询/查找以及近实时更新(全天候流动)。它与 ElasticSearch 相比如何?假设我将两者作为托管服务使用。我最关心的是更新部分。

azure-data-explorer

10
推荐指数
1
解决办法
1万
查看次数

如何使用 Kusto 查询语言打印树?

下面是一个快速而乏味的解决方案。

如果您有更好的,请将其包含在您的答案中。

let tree_height = 15;
range i from -1 to tree_height * 2 step 2
| extend side_width = tree_height + 1 - i / 2
| extend side_space = strrep(" ", side_width)
| extend tree_part = case(i > 0, strcat("/", strrep("*", i), @"\"), " ^ ")
| project ta_da = strcat(side_space, tree_part, side_space)
Run Code Online (Sandbox Code Playgroud)
                 ^                 
                /*\                
               /***\               
              /*****\              
             /*******\             
            /*********\            
           /***********\           
          /*************\          
         /***************\         
        /*****************\        
       /*******************\       
      /*********************\      
     /***********************\     
    /*************************\    
   /***************************\   
  /*****************************\  
Run Code Online (Sandbox Code Playgroud)

如果您需要一些灵感:一棵库斯托圣诞树

kql azure-data-explorer azure-sentinel azure-monitor kusto-explorer

10
推荐指数
2
解决办法
905
查看次数

Kusto:如何将列转换为行并按行进行汇总

我有一张这样的桌子:-

Type | shown | eaten  |
-----------------------
a    |  5    |   2    |
b    |  6    |   23   |
c    |  8    |   12   |
d    |  19   |   11   |
e    |  2    |   22   |
-----------------------
Run Code Online (Sandbox Code Playgroud)

我想这样转换它:-

Type | action | count |
-----------------------
a    | shown  |  5    |
a    | eaten  |  2    |
b    | shown  |  6    |
b    | eaten  |  23   |
c    | shown  |  8    |
c    | eaten …
Run Code Online (Sandbox Code Playgroud)

kql azure-data-explorer

9
推荐指数
1
解决办法
7793
查看次数

如何从 KQL 中的时间跨度获取分钟数

我想提取我正在处理的 Kusto 查询的时间(以分钟为单位)。我有一个时间跨度以以下格式表示的列 (HH:MM:SS.MilliSeconds) 01:18:54.0637555。我想从中提取分钟数,在本例中为 78 分钟。我怎样才能做到这一点 ?

time kql azure-data-explorer

9
推荐指数
1
解决办法
1万
查看次数

kusto 中的多个 where 子句与“and”

就性能而言,是以下查询

ResourceEvents
| where ResourceType == "Foo" and EventType == "Bar"
Run Code Online (Sandbox Code Playgroud)

几乎与

ResourceEvents
| where ResourceType == "Foo"
| where EventType == "Bar"
Run Code Online (Sandbox Code Playgroud)

或者记录是否按顺序过滤,执行两次搜索而不是组合一次?

kql azure-data-explorer

9
推荐指数
2
解决办法
5476
查看次数

查询 Azure Log Analytics 中的多个表

我正在查看 Web 应用程序的 Azure 日志分析,并且我有多个包含数据的开箱即用“表”:traces, requests,exceptions等。

我可以构造一个对多个表中的数据运行的查询吗?我不想加入来自不同来源的数据,我只想连接/交错它,所以我可以寻找例如“所有痕迹包含字符串‘SQL’的

从理论上讲,类似于:

traces, exceptions
| where * contains "SQL"
| order by timestamp desc
| limit 100
Run Code Online (Sandbox Code Playgroud)

这可能吗?

azure azure-log-analytics kql azure-data-explorer

8
推荐指数
1
解决办法
1万
查看次数

Kusto查询,选择5分钟的间隔并计算平均值

我对 Kusto 查询语言相当陌生,所以也许这是很常见的事情,但我真的找不到答案。所以就这样吧。

我已在某些服务器上启用了 Azure Log Analytics 性能收集,并希望实现以下目标:

从Perf数据集中,选择前一天的所有CPU数据,并显示每5分钟的平均CPU利用率。现在我已经弄清楚了第一部分,这真的很容易做到。但是我不知道如何在 Kusto 中进行每 5 分钟的选择。我猜想有什么总结?有人可以分享一些见解吗?

Perf
| where Computer == "servername.domain.internal"
| where TimeGenerated > ago(1d) 
| where CounterName == "% Processor Time" 
| where ObjectName == "Processor Information" 
Run Code Online (Sandbox Code Playgroud)

performance azure-log-analytics azure-data-explorer

8
推荐指数
1
解决办法
1万
查看次数

使用 Kusto 获取每组的前 1 行

我有一个表,我想使用 Kusto 查询语言获取每个组的最新条目。这是表格:

文档状态日志

ID 文档ID 地位 创建日期
2 1 S1 2011年7月29日
3 1 S2 2011年7月30日
6 1 S1 2011年8月2日
1 2 S1 2011年7月28日
4 2 S2 2011年7月30日
5 2 S3 2011年8月1日
6 3 S1 2011年8月2日

该表将按 DocumentID 分组并按 DateCreated 降序排序。对于每个 DocumentID,我想获取最新状态。

我的首选输出:

文档ID 地位 创建日期
1 S1 2011年8月2日
2 S3 2011年8月1日
3 S1 2011年8月2日

有没有办法使用 KQL 只获取每个组中的顶部?

GetOnlyTheTop伪代码如下:

SELECT
  DocumentID,
  GetOnlyTheTop(Status),
  GetOnlyTheTop(DateCreated)
FROM DocumentStatusLogs
GROUP BY DocumentID
ORDER BY DateCreated DESC
Run Code Online (Sandbox Code Playgroud)

图片来源:改编自 DPP 的 SQL 问题:获取每组的前 1 行

group-by partition-by kql azure-data-explorer kusto-explorer

8
推荐指数
1
解决办法
1万
查看次数