Как ограничить количество сущностей, копируемых из хранилища таблиц Azure с помощью AzCopy?

Я пытаюсь скопировать образец сущностей хранилища таблиц Azure в свой локальный файл. Источник довольно большой, с миллионами записей. Как я могу ограничить передачу данных и взять только первые 1К сущностей?

Простая команда скопирует их все (AzCopy 7.3.1):

AzCopy.exe / Источник: ... table.core.windows.net/profile /SourceKey:..somekey / Dest: C: \ Temp / Manifest: qa-profile / SplitSize: 128


person George P    schedule 17.04.2019    source источник


Ответы (1)


По моему опыту, я думаю, что вы не можете скопировать предельное количество сущностей из хранилища таблиц Azure просто с помощью AzCopy.

Однако вы можете попробовать использовать PowerShell с модулем Azure для этого. Вот мои шаги и пример кода, к которому вы можете обратиться.

  1. Чтобы запустить PowerShell от имени администратора и установить модуль Azure с помощью команды Install-Module -Name Az -AllowClobber -Scope CurrentUser, вы можете обратиться к официальному документу _ 2_, чтобы узнать подробности.

  2. Следуйте за разделом _ 3_ официального руководства Perform Azure Table storage operations with Azure PowerShell, чтобы войти в Azure со своей учетной записью на PowerShell.

  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)\/"
}

Надеюсь, это поможет.

person Peter Pan    schedule 18.04.2019