我正在尝试将天蓝色表存储实体的样本复制到我的本地文件中。来源非常大,有数百万条记录。如何限制数据传输并仅接受前1K个实体?
直接命令将复制所有这些文件(AzCopy 7.3.1):
AzCopy.exe / Source:... table.core.windows.net/profile /SourceKey:..somekey /目标:C:\温度/清单:质量配置文件/ SplitSize:128
答案 0 :(得分:1)
仅凭我的经验,我认为您不能仅通过AzCopy从Azure表存储中复制有限数量的实体。
但是,您可以尝试将PowerShell与Azure模块一起使用。这是我的步骤和示例代码,您可以参考。
要以管理员身份运行PowerShell以通过命令Install-Module -Name Az -AllowClobber -Scope CurrentUser
安装Azure模块,可以参考官方文档Install the Azure PowerShell module
来了解更多详细信息。
遵循官方教程Perform Azure Table storage operations with Azure PowerShell
的{{3}}部分,使用您在PowerShell上的帐户登录Azure。
这是我的示例代码,您可以在完成步骤2之后尝试在本地计算机上运行。
$storageAccountName = "<your storage account name>"
$resourceGroup = "<the resource group name of your storage>"
$location = "<the location of your storage>"
$storageAccount = Get-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroup
$ctx = $storageAccount.Context
$tableName = "<your table name>"
$cloudTable = (Get-AzStorageTable –Name $tableName –Context $ctx).CloudTable
$i = 0 ; $n = 1000 ; Get-AzTableRow -table $cloudTable | ForEach-Object {ConvertTo-Json $_; $i++; If($i -eq $n) {break}} > results-1000.json
结果内容如下。
{
"ProductName": "AAAAAAA",
"PartitionKey": "A",
"RowKey": "1",
"TableTimestamp": "\/Date(1542619135228)\/"
}
{
"ProductName": "BBBBBBB",
"PartitionKey": "B",
"RowKey": "2",
"TableTimestamp": "\/Date(1542619145997)\/"
}
希望有帮助。