你能让我知道吗,进行表存储部署的最佳方法是什么,因为我的开发团队询问他们有很多表,每个表都有数千个条目。因此,他们要求我咨询任何微软团队或博客人们检查进行表存储部署的最佳方法。您知道我们该怎么做吗,因为脚本每次都会耗尽和插入数千个条目。
我们是否有任何增量方法,例如它会首先检查所有表条目,如果存在,那么它应该只附加由开发团队添加到 csv 文件中的新添加的条目,只有我们需要将这些条目更新到表存储中。那就是这是一种方法。您有什么最好的方法吗?请帮助我。
有插入或替换(ITableEntity)中的方法表批量操作 https://learn.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.table.tablebatchoperation?view=azure-dotnet可以进行批量操作的类执行批处理方法,用下面的代码试试:
param(
[object[]]$fileObj
)
$storageAccountName = "XXX"
$tableName="XXX"
# Get the storage key for the storage account
$StorageAccountKey = "XXX"
# Get a storage context
$ctx = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
foreach($fo in $fileObj){
Write-Host $fo.filepath
$csv = Import-CSV $fo.filepath
$cArray=$fo.Cols.split(",")
$table = Get-AzureStorageTable -Name $fo.tableName -Context $ctx -ErrorAction Ignore
[Microsoft.WindowsAzure.Storage.Table.TableBatchOperation]$batchOperation = New-Object -TypeName Microsoft.WindowsAzure.Storage.Table.TableBatchOperation
if($table)
{
Write-Host "table not null"
}
else
{
Write-Host "table is null"
}
if($table.CloudTable)
{
Write-Host "CloudTable not null"
}
else
{
Write-Host "CloudTable is null"
}
foreach($line in $csv)
{
Write-Host "$($line.partitionkey), $($line.rowKey)"
$entity = New-Object -TypeName Microsoft.WindowsAzure.Storage.Table.DynamicTableEntity -ArgumentList $line.partitionkey, $line.rowKey
foreach($c in $cArray){
Write-Host "$c,$($line.$c)"
$entity.Properties.Add($c,$line.$c)
$batchOperation.Insert($entity)
}
}
if($batchOperation)
{
Write-Host "batchOperation not null"
}
else
{
Write-Host "batchOperation is null"
}
$table.CloudTable.ExecuteBatch($batchOperation)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)