Powershell 将表部署到表存储中的最佳方法
请告诉我,什么是进行表存储部署的最佳方法,因为我的开发团队要求他们有很多表,每个表都有数千个条目。因此,他们要求我咨询任何microsoft团队或博客人员,以检查执行表存储部署的最佳方法。您知道我们可以如何做吗?因为脚本每次都会消耗和插入数千个条目Powershell 将表部署到表存储中的最佳方法,powershell,azure,azure-table-storage,Powershell,Azure,Azure Table Storage,请告诉我,什么是进行表存储部署的最佳方法,因为我的开发团队要求他们有很多表,每个表都有数千个条目。因此,他们要求我咨询任何microsoft团队或博客人员,以检查执行表存储部署的最佳方法。您知道我们可以如何做吗?因为脚本每次都会消耗和插入数千个条目 我们是否有任何增量方法,比如它会首先检查所有的表条目,如果存在的话,那么它应该只将新添加的条目附加到csv文件中,由开发团队将这些条目添加到csv文件中,我们只需要更新到表存储中。就是这样。这是一种方法。您有任何最好的方法吗?请提供帮助我 类中有In
我们是否有任何增量方法,比如它会首先检查所有的表条目,如果存在的话,那么它应该只将新添加的条目附加到csv文件中,由开发团队将这些条目添加到csv文件中,我们只需要更新到表存储中。就是这样。这是一种方法。您有任何最好的方法吗?请提供帮助我 类中有InsertOrReplace(ITableEntity)方法可以使用ExecuteBatch方法执行批处理操作,请使用以下代码进行尝试:
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)
}
我有许多csv文件,每个csv文件由数千个表项组成。请告诉我如何通过VSTS将这些csv文件部署到表存储中。我在VSTS中找不到任何插件/任务。请帮助我。@MSFT,我已复制了您的脚本,并通过调用powershell中的参数任务来运行脚本,如:-fileObj@(@{“文件路径”=“$(build.sourcesdirectory)\DevOps\Deployment\u Scripts\TestTable1.csv”;“Cols”='Label\u Value'},@{“文件路径”=“$(build.sourcesdirectory)\DevOps\Deployment\u Scripts\TestTable2.csv”;“Cols”='Label\u Value,Lable\u cost'})…我将把日志保存在onedrive位置:请检查并让我知道我需要做什么更改,因为它抛出了一个错误,即:给定批处理中的所有实体都必须具有相同的分区键忘记上述错误:通过传递如下参数,我只运行一个文件:-fileObj@(@{“filepath”=“$(build.sourcesdirectory)\DevOps\Deployment\u Scripts\sampletable.csv“;“Cols”='PartitionKey,RowKey,Label\u用法,Label\u值,用法\u位置')以及我保存在一个驱动器位置的错误和sampletable.csv文件。请检查该csv文件,并检查您建议的脚本和错误日志文件。Onedrive链接:是否更改$storageAccountName、$tableName、$StorageAccountKey的值?将syetem.debug设置为true,然后在Onedrive上排队生成和共享日志.另一方面,我将$table.CloudTable.ExecuteBatch($batchOperation)代码移出foreach($csv中的行)代码。请查看更新前和更新后运行的代码附带的system.debug set=true日志。根据以上更新的代码,我已运行生成,但仍存在抛出错误,我已将该日志附加到一个驱动器中。请帮助我..尝试检查对象是否为null,检查更新的代码。