【问题标题】:Unable to display Data View result in Power shell无法在 Powershell 中显示数据视图结果
【发布时间】:2020-04-22 11:27:49
【问题描述】:

我是 azure 数据浏览器和 Kusto 查询的新手。我正在从下面的在线示例中学习

https://dataexplorer.azure.com/clusters/help/databases/Samples

这是我在数据资源管理器中得到结果但无法在 power shell 中显示的查询

   StormEvents
   | where DamageProperty >0
   | limit 2
   | project StormSummary.TotalDamages

下面是我尝试在 Powershell 中运行查询的代码的参考链接(下面链接页面中的示例 2)

https://docs.microsoft.com/en-us/azure/data-explorer/kusto/api/powershell/powershell

我只更改了“$Query”并修改了最后一行代码,如下所示

 $dataView | Format-Table -AutoSize 

我得到的输出为

  StormSummary_TotalDamages
  -------------------------
 {}  

我尝试在“StormSummary.TotalDamages”中修改没有“TotalDamages”的查询,但生成的数据视图我无法再次获得“TotalDamages”。

 StormSummary                               
  ------------                               
 {TotalDamages, StartTime, EndTime, Details}

【问题讨论】:

  • 有趣 - 也许您需要做一些事情(文档中未显示)来实现投影字段(或者这只是一个错误)
  • @MathiasR.Jessen 发布了我的问题的答案

标签: powershell dataview azure-data-explorer kql


【解决方案1】:

有人帮助我解决了我的问题。我发布它是为了帮助其他人。

解释: 查询结果正在导入到 Json 字符串,将其从 json 转换并将列和行数据布局转换回单个 PSObject,这对我的问题很有帮助。

代码: 根据我的问题中提到的示例 2。我们在打电话

 $reader = $queryProvider.ExecuteQuery($query, $crp)

在此之后,我删除了现有代码并进行了如下修改:

修改代码以获取 Projected Field 数据(TotalDamages):

 $json = [Kusto.Cloud.Platform.Data.ExtendedDataReader]::ToJsonString($reader)
 $data = $json | ConvertFrom-Json

 $columns = @{}
 $count = 0
 foreach ($column in $data.Tables[0].Columns) {
   $columns[$column.ColumnName] = $count
    $count++
 }
$items = foreach ($row in $data.Tables[0].Rows) {
$hash = @{}
foreach ($property in $columns.Keys){
    $hash[$property] = $row[$columns[$property]]
}
[PSCustomObject]$hash
}
foreach($item in $items)
{
   Write-Host "TotalDamages: "$item.StormSummary.TotalDamages
 }

输出:

  TotalDamages:  6200000
  TotalDamages:  2000

【讨论】:

    猜你喜欢
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 2021-10-02
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多