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 partition2
e 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:
Uso di tabelle di Azure da PowerShell - AzureRm Archiviazione Table/AzTable PS Module v2.0
Microsoft Azure Storage Explorer è un'app autonoma gratuita di Microsoft che consente di rappresentare facilmente dati di Archiviazione di Azure in Windows, macOS e Linux.