要使用PowerShell操作Azure的表存储,需要经过以下步骤:

1:必须安装 Az 和 AzTable 模块。安装命令为:

#安装 Az 模块
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force #安装 AzTable 模块
Install-Module AzTable

2:创建一个context,命令如下:

$Context = New-AzStorageContext -StorageAccountName "xxxx" -StorageAccountKey "xxxx"

3:使用Get-AzStorageTable -Context $Context 这个命令可以get到当前存储账户的所有table的名字

Get-AzStorageTable -Context $Context 

4:若要使用 AzTable 对表执行操作,需要引用特定表的 CloudTable 属性。并使用 Get-AzTableRow 获取表数据

$cloudTable = (Get-AzStorageTable -Name $tableName -Context $ctx).CloudTable

#使用下面的命令查询表实体

Get-AzTableRow -table $cloudTable | ft

但是,在使用时,先后遇见了以下4个问题:

问题一:如果只有存储账户名称,不提供存储账户所属资源组和存储账户访问密钥的情况下,如何查询存储账户中的诊断指标数据呢? New-AzStorageContext和Get-AzStorageAccount这两个命令,一个需要提供访问密钥,另一个需要提供资源组

【答】New-AzStorageContext如果不提供秘钥,可以为匿名存储帐户创建上下文,具体可参考文档:https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontext?view=azps-5.7.0

New-AzStorageContext -StorageAccountName "xxx" -Anonymous -Protocol "http"

Get-AzStorageAccount 这个命令如果不提供资源组,可以直接使用这条命令,会get到当前订阅下的所有storage,具体可参考文档:https://docs.microsoft.com/en-us/powershell/module/az.storage/Get-azStorageAccount?view=azps-5.7.0

问题二:需要从table中查询一个完整月度的数据,但是存储账户中是把数据存储到了多个表中,且有的表会同时存储上下两个月相邻时间的数据,请问有有什么更简便的方法来查询某一个月的数据吗?是否有参数来过滤时间呢?table中Timestamp字段使用的是UTC时间、还是本地时间?

【答】1)是不能联合获取的,只能是一个表一个表获取。 2)平台使用的是UTC时间,就是北京时间-8,例如:UTC时间2021-05-20T02:52:57Z对应的北京时间就是10:52:57。时间格式可参考文档:https://docs.microsoft.com/zh-cn/rest/api/storageservices/formatting-datetime-values

问题三: 从某一个table中查询指定几列的数据,查询条件是多个列值的组合。使用命令Get-AzTableRow -table $cloudTable | ft 返回的数据量太大

【答】在Get-AzTableRow -table $cloudTable ` 后面加上要查询的列名即可,设置列名可参考文档:https://docs.azure.cn/zh-cn/storage/tables/table-storage-how-to-use-powershell#retrieve-entities-for-a-specific-value-in-a-specific-column

Get-AzTableRow -table $cloudTable -partitionKey $partitionKey | ft

如果想使用过滤条件显示指定的行,可以使用-SelectColumn参数 Get-AzTableRow -Table $cloudTable -SelectColumn @('CounterName', 'Role','Maximum','Minimum'),同时多次测试发现下面截图中红色区域的4个参数即使不指定默认也是查询之后必带的参数

同时 Get-AzTableRow -table $cloudTable -partitionKey $partitionKey 也是可以使用的

问题四: 使用-SelectColumn参数出错

SelectColumn参数问题原因时AzTable安装的并不是最新版本(2.0.4),更新了module后,版本2.1.0再使用SelectColumn参数是正常的。

【Azure Developer】使用 Azure PowerShell 执行 Azure 表存储操作时遇见的4个问题的更多相关文章

  1. 【Azure Developer】使用Microsoft Graph API 批量创建用户,先后遇见的三个错误及解决办法

    问题描述 在先前的一篇博文中,介绍了如何使用Microsoft Graph API来创建Azure AD用户(博文参考:[Azure Developer]使用Microsoft Graph API 如 ...

  2. 【Azure Developer】使用Postman获取Azure AD中注册应用程序的授权Token,及为Azure REST API设置Authorization

    Azure Active Directory (Azure AD) is Microsoft's cloud-based identity and access management service, ...

  3. 【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维

    问题描述 编写PowerShell脚本,以多维(3维)数组中第二维度的值进行过滤,并打印出结果 #三维数组源数据 "A", "11", "Cheng ...

  4. 【Azure API 管理】解决API Management添加AAD Group时遇见的 Failed to query Azure Active Directory graph due to error 错误

    问题描述 为APIM添加AAD Group时候,等待很长很长的时间,结果添加失败.错误消息为: Write Groups ValidationError :Failed to query Azure ...

  5. 【Azure API 管理】使用APIM进行XML内容读取时遇见的诡异错误 Expression evaluation failed. Object reference not set to an instance of an object.

    问题描述 使用APIM,在 Inbound 中对请求的Body内容进行解析.客户端请求所传递的Request Body为XML格式,需要从Request Body中解析出多个(Element)节点值, ...

  6. hadoop执行hdfs文件到hbase表插入操作(xjl456852原创)

    本例中需要将hdfs上的文本文件,解析后插入到hbase的表中. 本例用到的hadoop版本2.7.2 hbase版本1.2.2 hbase的表如下: create 'ns2:user', 'info ...

  7. 【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)

    问题描述 PowerShell 脚本调用Azure REST API, 但是所有的API都需要进行权限验证.要在请求的Header部分带上Authorization参数,并用来对List Resour ...

  8. 【Azure Developer】解决Azure Key Vault管理Storage的示例代码在中国区Azure遇见的各种认证/授权问题 - C# Example Code

    问题描述 使用Azure密钥保管库(Key Vault)来托管存储账号(Storage Account)密钥的示例中,从Github中下载的示例代码在中国区Azure运行时候会遇见各种认证和授权问题, ...

  9. 使用MyBatis时需要注意到的事情------执行添加、修改和删除操作时,一定要记得提交事务

    今天在重写添加操作代码时,发现自己写的代码没有任何报错,使用断点进行查询,发现一切正常,但是注册使用的数据就是无法添加到数据库里面 然后就去之前看过的视频里面去找错误,就发现这样一个小细节: 在视频里 ...

  10. 【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例

    当需要通过代码的方式执行PowerShell脚本时,可以参考以下的示例. Azure SDK中提供了两个方法来执行PowerShell脚本 (SDK Source Code: https://gith ...

随机推荐

  1. 手把手带你开发starter,点对点带你讲解原理

    京东物流 孔祥东 _____ _ ____ _ / ____| (_) | _ \ | | | (___ _ __ _ __ _ _ __ __ _| |_) | ___ ___ | |_ \___ ...

  2. TypeScript类的修饰符 public private protected的详细讲解

    简单介绍一下public private protected public:当一个类的成员变量没有修饰的时候,默认的就是 public 进行修饰.外部是可以进行访问的. private属性只能够在父类 ...

  3. Gin-官方文档

    目录 官方文档 官方文档 https://learnku.com/docs/gin-gonic/2018/gin-readme/3819 https://www.kancloud.cn/shuangd ...

  4. ClickHouse(14)ClickHouse合并树MergeTree家族表引擎之VersionedCollapsingMergeTree详细解析

    目录 建表语法 使用场景 合并算法 使用例子. 资料分享 参考文章 VersionedCollapsingMergeTree引擎继承自MergeTree并将折叠行的逻辑添加到合并数据部分的算法中.Ve ...

  5. P9805 [POI2022~2023R1] ply

    1st思路 贪心 当遇到左括号深度加一,可如果当前深度大于 \(H\) 时深度减二,并且 \(ans\) 加一.相当于进行一次翻转操作. 当遇到右括号深度减一,当深度小于零时深度加二,并且 \(ans ...

  6. 【学习日志】Java基本数据类型的自动装箱和拆箱

    // 测试代码 public static void main(String[] args) { Integer a = 1; Integer b = 2; Integer c = 3; Intege ...

  7. C/C++ 反汇编:多维数组与指针

    反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解.外挂技术.病毒分析.逆向工程.软件汉化等领域,学习和理解反汇编对软件调试.系统漏洞挖掘.内核原理及理解高级语言代码都有相当大的帮助, ...

  8. Linux的进程管理 [补档-2023-07-25]

    Linux进程管理 9-1并发与并行: ​ 并发:在同一个cpu上,并且在一个时间段时,同时运行多个程序.比如在1000毫秒内,我们有5个程 序需要执行,所以我们可以将1000毫秒分为5个200毫秒, ...

  9. 小知识:Flex ASM特性对集群资源显示的影响

    有客户咨询,认为19c RAC集群资源状态和11g RAC大不一样,比如在他们的19c集群,也是只部署2节点,却显示3个资源状态,其中第三个还是offline状态,担心是否有影响. 实际上这和Flex ...

  10. mybatis SQL in() 为什么要在 mapper.xml里 用 foreach

    结论: 若存在 in () 语句,要使用 #{} 预编译入参的方式,需要在 mapper.xml里 使用 foreach ======================================= ...