【问题标题】:Azure Table Storage: a script to populate new column for existing tablesAzure 表存储:为现有表填充新列的脚本
【发布时间】:2019-12-18 23:33:09
【问题描述】:

我的 Azure 表存储中有一些表,需要部署一个脚本来为所有这些表填充一个空数据的新列。

我知道可以通过 PowerShell 完成一些管理,但我找不到任何有关如何执行此任务的示例或文档。

任何帮助将不胜感激。

【问题讨论】:

  • 您要创建的该列的数据类型是什么?
  • 可以是String或者int,都是数字

标签: azure powershell azure-table-storage


【解决方案1】:

关于PowerShell脚本,请参考以下代码:

Install-Module -Name AzTable

$groupName=""
$StorageAccountName = ""
$StorageAccountKey = ""
$vaule=" "
$context = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
$tables = Get-AzStorageTable -Context $context
Foreach($table in $tables){
    $table = Get-AzTableTable -storageAccountName $StorageAccountName -resourceGroup $groupName="" -TableName
    $entities=Get-AzTableRow -Table $table
    ForEach($e in $entities){
        $entity = New-Object Microsoft.Azure.Cosmos.Table.DynamicTableEntity($e.PartitionKey,$e.RowKey)
        $entity.Properties.Add("Name", $vaue)
        $table.Execute([Microsoft.Azure.Cosmos.Table.TableOperation]::InsertOrMerge($entity))
        Get-AzTableRow -Table $table -PartitionKey $e.PartitionKey -RowKey $e.RowKey
    }

}

【讨论】:

  • 谢谢!我也可以用一个脚本对多个表执行此操作吗?例如,如果表名中包含“azup”?
  • 这一行能帮我列出表格吗? $tables = GetAzureStorageTable -Name azup*
  • @Jdreamer。感谢您的答复。我已经更新了我的脚本。请检查一下。
  • 在执行脚本时导入 AzTable 模块时出现错误,表明 AzureRm.Profile 已加载
  • 好吧,我已经设法解决了 Rm 问题,但现在例外是这一行:$table.Execute([Microsoft.Azure.Cosmos.Table.TableOperation]::InsertOrMerge($entity))
【解决方案2】:

我的 Azure 表存储中有一些表,需要部署一个 用空数据填充新列的脚本。

基本上,Azure 表是一个键/值对存储,因此它不能真正包含没有数据(值)的列(键)。这适用于所有受支持的数据类型,但 String 数据类型除外,您可以在其中存储一个空字符串(它仍然不是 null)作为键的值。

至于如何做,您可以按照以下步骤操作:

  1. 获取要为其添加密钥的实体。要减少响应负载,您可以简单地获取 PartitionKeyRowKey 属性。
  2. 对于您收到的每个实体,只需添加一个新属性。请确保属性的数据类型为String,并将该属性的值设置为空字符串("")。
  3. 最后你想对这些实体调用Merge Entity 操作。这将确保仅添加新属性。该实体中的所有其他现有属性将保持不变。

不幸的是,我对 PowerShell 不太熟悉,无法提供准确的语法。但这应该给你足够的想法去开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-15
    • 2018-03-12
    • 1970-01-01
    • 2020-11-16
    • 2012-04-11
    • 1970-01-01
    • 2023-03-15
    • 2019-09-26
    相关资源
    最近更新 更多