Eseguire operazioni di Archiviazione tabelle di Azure con Azure PowerShell

Suggerimento

Il contenuto di questo articolo è applicabile ad Archiviazione tabelle di Azure. Tuttavia, è ora disponibile un'offerta Premium per l'archiviazione tabelle, Azure Cosmos DB per la tabella che offre tabelle ottimizzate per la velocità effettiva, distribuzione globale e indici secondari automatici. Per altre informazioni e provare l'esperienza Premium, vedere Azure Cosmos DB for Table. Il linguaggio di programmazione usato in questo articolo non è ancora supportato nell'offerta Premium, ma verrà aggiunto in futuro.

Il servizio Archiviazione tabelle di Azure è un archivio dati NoSQL, che è possibile usare per archiviare ed eseguire query su grandi set di dati strutturati non relazionali. I componenti principali del servizio sono tabelle, entità e proprietà. una tabella è una raccolta di entità. Un'entità è un set di proprietà. Ogni entità può avere fino a 252 proprietà, che corrispondono tutte a coppie nome-valore. Questo articolo presuppone la conoscenza dei concetti relativi al servizio Archiviazione tabelle di Azure. Per informazioni dettagliate, vedereUnderstanding the Table Service Data Model (Informazioni sul modello di dati del servizio tabelle) e Introduzione all'archiviazione tabelle di Azure con .NET.

In questo articolo con procedure sono illustrate le operazioni più comuni del servizio Archiviazione tabelle di Azure. Scopri come:

  • Crea una tabella
  • Recuperare una tabella
  • Aggiungere le entità di tabella
  • Eseguire query su una tabella
  • Eliminare le entità di tabella
  • Elimina una tabella

In questo articolo con procedure viene illustrato come creare un nuovo account di archiviazione in un nuovo gruppo di risorse in modo da semplificarne la rimozione al termine della procedura. È possibile anche usare un account di archiviazione esistente.

Gli esempi richiedono moduli Az.Storage (1.1.0 or greater) Az PowerShell e Az.Resources (1.2.0 or greater). In una finestra di PowerShell eseguire Get-Module -ListAvailable Az* per trovare la versione. Se non ci sono risultati, è necessario eseguire l'aggiornamento. Vedere in proposito come installare il modulo Azure PowerShell.

Importante

Se si usa questa funzionalità di Azure da PowerShell, è necessario che sia installato il modulo Az. La versione corrente di AzTable non è compatibile con il modulo AzureRM precedente. Seguire le istruzioni di installazione più recenti per installare il modulo Az, se necessario.

Per motivi di compatibilità dei nomi di modulo, questo modulo viene pubblicato anche con il nome AzureRmStorageTables precedente in PowerShell Gallery. Questo documento farà riferimento solo al nuovo nome.

Dopo l'installazione o l'aggiornamento di Azure PowerShell, è necessario installare il modulo AzTable, che include i comandi per la gestione delle entità. Per installare questo modulo, eseguire PowerShell come amministratore e usare il comando Install-Module.

Install-Module AzTable

Autorizzazione delle operazioni relative ai dati della tabella

Il modulo AzTable PowerShell supporta l'autorizzazione con la chiave di accesso dell'account tramite l'autorizzazione con chiave condivisa. Gli esempi in questo articolo illustrano come autorizzare le operazioni sui dati della tabella tramite chiave condivisa.

Tabella di Azure Archiviazione supporta l'autorizzazione con Microsoft Entra ID. Tuttavia, il modulo AzTable PowerShell non supporta l'autorizzazione in modo nativo con Microsoft Entra ID. Per usare Microsoft Entra ID con il modulo AzTable è necessario chiamare i metodi nella libreria client .NET da PowerShell.

Accedere ad Azure

Per iniziare, accedere alla sottoscrizione di Azure con il Add-AzAccount comando e seguire le istruzioni visualizzate.

Add-AzAccount

Recuperare un elenco di posizioni

Se non si sa quale posizione usare, è possibile elencare le posizioni disponibili. Nell'elenco visualizzato trovare la posizione da usare. Questi esempi usano eastus. Archiviare questo valore nella variabile location per uso futuro.

Get-AzLocation | select Location
$location = "eastus"

Crea gruppo di risorse

Creare un gruppo di risorse con il comando New-AzResourceGroup.

Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite. Archiviare il nome del gruppo di risorse in una variabile per uso futuro. In questo esempio viene creato un gruppo di risorse denominato pshtablesrg nell'area eastus.

$resourceGroup = "pshtablesrg"
New-AzResourceGroup -ResourceGroupName $resourceGroup -Location $location

Creare un account di archiviazione

Creare un account di archiviazione standard per utilizzo generico con archiviazione con ridondanza locale mediante New-AzStorageAccount. Assicurarsi di specificare un nome univoco dell'account di archiviazione. Ottenere quindi il contesto che rappresenta l'account di archiviazione. Quando si agisce su un account di archiviazione, è possibile fare riferimento al contesto anziché fornire ripetutamente le credenziali.

$storageAccountName = "pshtablestorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
  -Name $storageAccountName `
  -Location $location `
  -SkuName Standard_LRS `
  -Kind Storage

$ctx = $storageAccount.Context

Creare una nuova tabella

Per creare una tabella, usare il cmdlet New-Az Archiviazione Table. In questo esempio la tabella viene denominata pshtesttable.

$tableName = "pshtesttable"
New-AzStorageTable -Name $tableName -Context $ctx

Recuperare un elenco di tabelle nell'account di archiviazione

Recuperare un elenco di tabelle nell'account di archiviazione usando Get-Az Archiviazione Table.

Get-AzStorageTable -Context $ctx | select Name

Recuperare un riferimento a una tabella specifica

Per eseguire operazioni su una tabella, è necessario un riferimento a una tabella specifica. Ottenere un riferimento usando Get-Az Archiviazione Table.

$storageTable = Get-AzStorageTable -Name $tableName -Context $ctx

Fare riferimento alla proprietà CloudTable di una tabella specifica

Importante

L'uso della proprietà CloudTable è obbligatorio quando si usano i dati della tabella tramite il modulo AzTable PowerShell. Chiamare il comando Get-Az Archiviazione Table per ottenere il riferimento a questo oggetto.

Per eseguire operazioni su una tabella usando AzTable, restituire un riferimento alla proprietà CloudTable di una tabella specifica. La proprietà CloudTable espone i metodi .NET disponibili per la gestione dei dati delle tabelle da PowerShell.

$cloudTable = $storageTable.CloudTable

Gestione delle entità di tabella

Dopo aver creato una tabella, verranno ora descritte le varie modalità di gestione delle entità o delle righe nella tabella.

Le entità possono avere fino a 255 proprietà, incluse tre proprietà di sistema: PartitionKey, RowKey e Timestamp. L'utente è responsabile dell'inserimento e dell'aggiornamento dei valori di PartitionKey e RowKey. Il server gestisce il valore di Timestamp, che non può essere modificato. Insieme PartitionKey e RowKey identificano in modo univoco tutte le entità di una tabella.

  • PartitionKey: determina la partizione in cui è archiviata l'entità.
  • RowKey: identifica in modo univoco l'entità all'interno della partizione.

È possibile definire fino a 252 proprietà personalizzate per un'entità.

Aggiungere le entità di tabella

Aggiungere entità a una tabella usando Add-AzTableRow. Questi esempi usano chiavi di partizione con valori partition1 e partition2e chiavi di riga uguali alle abbreviazioni di stato. Le proprietà in ogni entità sono username e userid.

$partitionKey1 = "partition1"
$partitionKey2 = "partition2"

# add four rows 
Add-AzTableRow `
    -table $cloudTable `
    -partitionKey $partitionKey1 `
    -rowKey ("CA") -property @{"username"="Chris";"userid"=1}

Add-AzTableRow `
    -table $cloudTable `
    -partitionKey $partitionKey2 `
    -rowKey ("NM") -property @{"username"="Jessie";"userid"=2}

Add-AzTableRow `
    -table $cloudTable `
    -partitionKey $partitionKey1 `
    -rowKey ("WA") -property @{"username"="Christine";"userid"=3}

Add-AzTableRow `
    -table $cloudTable `
    -partitionKey $partitionKey2 `
    -rowKey ("TX") -property @{"username"="Steven";"userid"=4}

Eseguire query sulle entità di tabella

È possibile eseguire query sulle entità in una tabella usando il comando Get-AzTableRow .

Nota

I cmdlet Get-Azure Archiviazione TableRowAll, Get-Azure Archiviazione TableRowByPartitionKey, Get-Azure Archiviazione TableRowByColumnName e Get-Azure Archiviazione TableRowByCustomFilter sono deprecati e verranno rimossi in un aggiornamento della versione futura.

Recuperare tutte le entità

Get-AzTableRow -table $cloudTable | ft

Questo comando restituisce risultati simili a quelli riportati nella tabella seguente:

userid username denominata rowkey
1 Chris partition1 CA
3 Christine partition1 WA
2 Jessie partition2 NM
4 Steven partition2 TX

Recuperare il conteggio delle entità nella tabella

$totalEntities=(Get-AzTableRow -table $cloudTable | measure).Count
Echo $totalEntities

Questo comando restituisce il numero numerico di entità simile al seguente:

4

Recuperare le entità per una chiave di partizione specifica

Get-AzTableRow -table $cloudTable -partitionKey $partitionKey1 | ft

I risultati sono simili a quelli riportati nella tabella seguente:

userid username denominata rowkey
1 Chris partition1 CA
3 Christine partition1 WA

Recuperare le entità per un valore specifico di una colonna specifica

Get-AzTableRow -table $cloudTable `
    -columnName "username" `
    -value "Chris" `
    -operator Equal

Questa query recupera un record.

campo value
userid 1
username Chris
PartitionKey partition1
RowKey CA

Recuperare le entità con un filtro personalizzato

Get-AzTableRow `
    -table $cloudTable `
    -customFilter "(userid eq 1)"

Questa query recupera un record.

campo value
userid 1
username Chris
PartitionKey partition1
RowKey CA

Aggiornamento di entità

Esistono tre passaggi per aggiornare le entità. Il primo passaggio prevede il recupero dell'entità da modificare. Il secondo passaggio prevede l'applicazione delle modifiche. In terzo luogo, eseguire il commit della modifica usando Update-AzTableRow.

Aggiornare l'entità con username = 'Jessie' impostando username = 'Jessie2'. Questo esempio mostra anche un altro modo per creare un filtro personalizzato usando i tipi .NET.

# Create a filter and get the entity to be updated.
[string]$filter = `
    [Microsoft.Azure.Cosmos.Table.TableQuery]::GenerateFilterCondition("username",`
    [Microsoft.Azure.Cosmos.Table.QueryComparisons]::Equal,"Jessie")
$user = Get-AzTableRow `
    -table $cloudTable `
    -customFilter $filter

# Change the entity.
$user.username = "Jessie2"

# To commit the change, pipe the updated record into the update cmdlet.
$user | Update-AzTableRow -table $cloudTable

# To see the new record, query the table.
Get-AzTableRow -table $cloudTable `
    -customFilter "(username eq 'Jessie2')"

I risultati mostrano il record Jessie2.

campo value
userid 2
username Jessie2
PartitionKey partition2
RowKey NM

Eliminazione delle entità di tabella

È possibile eliminare un'entità o tutte le entità nella tabella.

Eliminazione di un'entità

Per eliminare una singola entità, ottenere un riferimento a tale entità e inviarlo tramite pipe a Remove-AzTableRow.

# Set filter.
[string]$filter = `
  [Microsoft.Azure.Cosmos.Table.TableQuery]::GenerateFilterCondition("username",`
  [Microsoft.Azure.Cosmos.Table.QueryComparisons]::Equal,"Jessie2")

# Retrieve entity to be deleted, then pipe it into the remove cmdlet.
$userToDelete = Get-AzTableRow `
    -table $cloudTable `
    -customFilter $filter
$userToDelete | Remove-AzTableRow -table $cloudTable

# Retrieve entities from table and see that Jessie2 has been deleted.
Get-AzTableRow -table $cloudTable | ft

Eliminare tutte le entità della tabella

Per eliminare tutte le entità della tabella, recuperarle e inviare tramite pipe i risultati al cmdlet di rimozione.

# Get all rows and pipe the result into the remove cmdlet.
Get-AzTableRow `
    -table $cloudTable | Remove-AzTableRow -table $cloudTable 

# List entities in the table (there won't be any).
Get-AzTableRow -table $cloudTable | ft

Elimina una tabella

Per eliminare una tabella, usare Remove-Az Archiviazione Table. Questo cmdlet rimuove la tabella, inclusi tutti i relativi dati.

Remove-AzStorageTable -Name $tableName -Context $ctx

# Retrieve the list of tables to verify the table has been removed.
Get-AzStorageTable -Context $Ctx | select Name

Pulire le risorse

Se per questa esercitazione sono stati creati un nuovo gruppo di risorse e un account di archiviazione, è possibile rimuovere tutti gli asset creati rimuovendo il gruppo di risorse. Questo comando elimina tutte le risorse contenute nel gruppo di risorse e il gruppo stesso.

Remove-AzResourceGroup -Name $resourceGroup

Passaggi successivi

In questo articolo con procedure sono state illustrate le operazioni di Archiviazione tabelle di Azure con PowerShell, tra cui:

  • Crea una tabella
  • Recuperare una tabella
  • Aggiungere le entità di tabella
  • Eseguire query su una tabella
  • Eliminare le entità di tabella
  • Elimina una tabella

Per altre informazioni, vedere gli articoli seguenti: