小编Yon*_*i L的帖子

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 查询语言打印树?

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

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

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
查看次数

在 Log Analytics Kusto 查询中添加包含总计的行

我查询请求日志以获取状态代码的摘要。不过,我想在结果末尾添加一行,显示请求总数。如何添加这样的行?

当前查询(简化)

MyLog
| summarize count() by responseCode
Run Code Online (Sandbox Code Playgroud)

目前的结果看起来像

响应码 数数
200 1000
404 20
500 100

我想要这样的总数

响应码 数数
200 1000
404 20
500 100
全部的 1120

azure-log-analytics kql azure-log-analytics-workspace

7
推荐指数
1
解决办法
2216
查看次数

如何编写 Kusto 查询以在一张表中获取结果?

我有 2 个 KQL 查询,我想将它们组合起来以将两行显示为一个结果。不仅仅是第一次查询的结果,然后是第二次查询的结果:

R_CL
| where isnotempty(SrcIP_s) 
| project Message 
| take 1;

R_CL
| where isempty(SrcIP_s) 
| project Message 
| take 1
Run Code Online (Sandbox Code Playgroud)

请参阅下面的示例R_L。我想看到 2 行作为结果,一个 SrcIP_s 不为空,第二个 SrcIP_s 为空(在这种情况下,它总是相同的)

let R_CL = datatable ( SrcIP_s:string, Message:string)
["1.1.1.1" ,"one",
"" ,"two",
"2.2.2.2","three",
"3.3.3.3","four"];
R_CL
| project SrcIP_s, Message
Run Code Online (Sandbox Code Playgroud)

kql azure-data-explorer

6
推荐指数
2
解决办法
8587
查看次数

KQL 分组依据与拖放分组功能的结果相同

在 Azure 门户中使用“监视器”、“日志”功能时,您可以通过将列标题拖放到某个框中来对行进行分组,问题是按“保存”按钮时不会保存此内容。

如何编写生成相同结果的 KQL?按 Column_Name 进行汇总不会产生相同的结果。

azure azure-diagnostics azure-log-analytics kql

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

Kusto:运行查询以获取唯一 ID 号列表

我是一名 C 程序员,也是 Kusto 的新手。我正在运行 Kusto 查询,它为我提供了直接搜索唯一 ID 号的结果。如何运行该查询来获取 ID 号列表。在 CI 中,将使用 for 循环来处理列表数组中的项目范围,但我不知道如何在 Kusto 中转换该逻辑。

询问:

let startdate = ago(5d); let enddate = ago(1m);
DataBase
| where messageType != "Beacon" 
| where timestamp between (startdate..enddate)   
| where uniqueId == "26ca68"
| project uniqueId, timestamp
Run Code Online (Sandbox Code Playgroud)

我希望运行上述查询来获取 25 个唯一 ID 号的列表。谢谢。

azure-data-explorer

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

如何在 Kusto 查询中排除周末?

有没有办法使用现有的 Kusto 命令排除两个日期之间的周末?我在这里找不到正确的功能https://kusto.azurewebsites.net/docs/queryLanguage/query-essentials/readme.html

azure-application-insights kql

4
推荐指数
2
解决办法
5404
查看次数

如何为 Kusto 中的每个唯一 ID 在过去 30 天内每天获取一条记录?

我的数据源是“元数据”。每台设备都有一个唯一的ID,每天可以多次签到。我想提出一个 Kusto 查询,该查询在过去 30 天内每天为每个 deviceID 返回一条记录。这是我目前的公式:

Metadata
| project-rename['Metadata.deviceID']=deviceID, ['Metadata.appName']=appName, ['Metadata.appVersion']=appVersion, ['Metadata.timeZone']=timeZone
| where (dateTimeUtc >= __sql_substract(now(), 30))
| summarize   appName=max(['Metadata.appName']), deviceID=max(['Metadata.deviceID']), appVersion=max(['Metadata.appVersion']), timeZone=max(['Metadata.timeZone']) by bin(dateTimeUtc, 1d)
| project dateTimeUtc, appName, appVersion, timeZone, deviceID
Run Code Online (Sandbox Code Playgroud)

这将每天返回 1 条记录,而不是每个设备 ID 每天返回 1 条记录。如果我删除 bin() 并仅使用“by dateTimeUtc”,则每天每个 deviceID 返回一条以上记录。如何为每个 deviceID 获取过去 30 天内每天的一条记录?

kql azure-data-explorer

4
推荐指数
1
解决办法
2091
查看次数

在 Kusto DB 中更新插入

我有一个 ADF,它每天将 Kusto 函数的输出写入 Kusto 表。我需要每天将数据更新到表中。我没有找到更新 Kusto DB 中现有数据的方法。如果数据不存在,有什么方法可以插入行,否则通过 ADF 更新现有行?

设置或替换对我来说非常昂贵,因为该表包含大量数据

如果这是不可能的,我可以使用我拥有的日期时间戳截断最近 2 个月的数据并从函数中重新加载它吗

etl adfs azure-data-explorer

4
推荐指数
1
解决办法
2284
查看次数

展平 Kusto 查询中的列表列表

我有一个 Kusto 查询,它返回一系列行,每行都包含一个分号分隔的列表。我已经能够将每一行的内容拆分为一个列表,但我无法展平该列表。不幸的是,我对使用 Kusto 还很陌生,所以我有点困难。

我尝试过使用函数“union”、“join”、“flatten”,并查找包含单词“merge”或“selectmany”的函数(我将使用该函数在带有 linq 的 c# 中进行展平)。我也尝试过搜索类似的 sql 函数,因此我可以在 Kusto 中查找等效的查询,但我没有任何运气。

我正在使用查询:

| where Nicknames != ""
| project split(Nicknames, ";")
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

[
"Joe",
"Jim",
"JJ"
]
-------------
[
"Abe"
]
-------------
[
"Hal",
"Harry"
]
Run Code Online (Sandbox Code Playgroud)

我想使用类似(psudo-Kusto)的东西:

UserInfo
| where Nicknames != ""
| project split(Nicknames, ";")
| flatten results
| distinct results
Run Code Online (Sandbox Code Playgroud)

...其中“结果”是上一个操作返回的表。

kql azure-data-explorer

4
推荐指数
1
解决办法
5568
查看次数