如何限制AzCopy从天蓝色表存储中复制的实体数?

时间:2019-04-17 18:37:19

标签: azure azcopy

我正在尝试将天蓝色表存储实体的样本复制到我的本地文件中。来源非常大,有数百万条记录。如何限制数据传输并仅接受前1K个实体?

直接命令将复制所有这些文件(AzCopy 7.3.1):

AzCopy.exe / Source:... table.core.windows.net/profile /SourceKey:..somekey     /目标:C:\温度/清单:质量配置文件/ SplitSize:128

1 个答案:

答案 0 :(得分:1)

仅凭我的经验,我认为您不能仅通过AzCopy从Azure表存储中复制有限数量的实体。

但是,您可以尝试将PowerShell与Azure模块一起使用。这是我的步骤和示例代码,您可以参考。

  1. 要以管理员身份运行PowerShell以通过命令Install-Module -Name Az -AllowClobber -Scope CurrentUser安装Azure模块,可以参考官方文档Install the Azure PowerShell module来了解更多详细信息。

  2. 遵循官方教程Perform Azure Table storage operations with Azure PowerShell的{​​{3}}部分,使用您在PowerShell上的帐户登录Azure。

  3. 这是我的示例代码,您可以在完成步骤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)\/"
}

希望有帮助。

相关问题