Azure Table 存储:用于为现有表填充新列的脚本
Azure Table Storage: a script to populate new column for existing tables
我的 Azure Table 存储中有一些表,需要部署一个脚本来为所有这些表填充空数据的新列。
我知道可以通过 PowerShell 完成一些管理,但我找不到任何有关如何执行此任务的相关示例或文档。
如有任何帮助,我们将不胜感激。
I have some tables in my Azure Table Storage and need to deploy a
script to populate a new column with empty data for all of them.
基本上 Azure Table 是一个 key/value 对存储,因此它不能真正包含没有数据(值)的列(键)。这适用于所有支持的数据类型,但 String
数据类型除外,您可以在其中存储空字符串(它仍然不为空)作为键的值。
至于如何操作,您可以按照以下步骤操作:
- 获取您要为其添加密钥的实体。要减少响应负载,您可以简单地获取
PartitionKey
和 RowKey
属性。
- 对于您收到的每个实体,只需添加一个新属性即可。请确保属性的数据类型为
String
并将该属性的值设置为空字符串 (""
).
- 最后您可能希望对这些实体调用
Merge Entity
操作。这将确保只会添加新属性。该实体中的所有其他现有属性将保持不变。
遗憾的是,我对 PowerShell 不太熟悉,无法提供准确的语法。但这应该给你足够的想法去开始。
关于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
}
}
我的 Azure Table 存储中有一些表,需要部署一个脚本来为所有这些表填充空数据的新列。
我知道可以通过 PowerShell 完成一些管理,但我找不到任何有关如何执行此任务的相关示例或文档。
如有任何帮助,我们将不胜感激。
I have some tables in my Azure Table Storage and need to deploy a script to populate a new column with empty data for all of them.
基本上 Azure Table 是一个 key/value 对存储,因此它不能真正包含没有数据(值)的列(键)。这适用于所有支持的数据类型,但 String
数据类型除外,您可以在其中存储空字符串(它仍然不为空)作为键的值。
至于如何操作,您可以按照以下步骤操作:
- 获取您要为其添加密钥的实体。要减少响应负载,您可以简单地获取
PartitionKey
和RowKey
属性。 - 对于您收到的每个实体,只需添加一个新属性即可。请确保属性的数据类型为
String
并将该属性的值设置为空字符串 (""
). - 最后您可能希望对这些实体调用
Merge Entity
操作。这将确保只会添加新属性。该实体中的所有其他现有属性将保持不变。
遗憾的是,我对 PowerShell 不太熟悉,无法提供准确的语法。但这应该给你足够的想法去开始。
关于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
}
}