【问题标题】:How to get TOP X rows from Azure Table Storage using PowerShell?如何使用 PowerShell 从 Azure 表存储中获取 TOP X 行?
【发布时间】:2019-11-25 03:36:36
【问题描述】:

我使用 Get-AzTableRow PowerShell Az 命令来获取行。 如何获得 TOP X 行?

Get-AzTableRow -Table $cloudTable -CustomFilter $filter

【问题讨论】:

    标签: azure azure-storage


    【解决方案1】:

    Get-AzTableRow 命令似乎没有像 -Top 这样的内置参数,我的解决方法是使用 PowerShell 管道获取前 X 行。

    Get-AzTableRow -table $cloudTable -customFilter $filter | Select-Object -First 2
    

    【讨论】:

    • 谢谢!此方法返回仅前 X 个条目。但我不确定它是否仅接收表中的 TOP X。看起来管道首先接收所有条目然后过滤。我的表格中有大量行,数百万行,真的需要逐部分接收它们。
    • @MikaelChudinov 是的,它先接收所有条目然后过滤,因为没有像-Top这样的内置参数,我认为这是通过Get-AzTableRow满足您当前要求的唯一方法,或者你可以直接通过PowerShell手动调用rest api,它支持$top,你可以参考这个sample,它调用create table api,逻辑类似。但我也不确定$top 会不会像你说的那样receive 他们。
    • 小改进:当你想对我的 RowId 进行排序时,你会遇到 Powershell 的行为,即排序 - 例如 - Id“9”超过“10”。我的解决方法:Get-AzTableRow -table $cloudTable | Select-Object -ExpandProperty RowKey | ForEach-Object { '{0:d10}' -f [int]$_ } | Sort-Object -Descending | Select-Object -First 1
    【解决方案2】:

    如果有人偶然发现这个问题(就像我一样),Get-AzTableRow 现在支持 -Top(自 version 2.1.0 of AzTable 起)。

    来自文档:

    -Top <Nullable`1>
        Return only the first n rows from the query (all parameter sets)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 2021-10-21
      • 2021-11-17
      • 2012-07-13
      • 1970-01-01
      • 2023-03-31
      • 2017-04-20
      相关资源
      最近更新 更多