Operaciones en Azure Table Storage con Azure PowerShell
Sugerencia
El contenido de este artículo se aplica a Azure Table Storage. No obstante, ahora hay una oferta premium de Table Storage, la instancia de Azure Cosmos DB for Table que ofrece tablas con rendimiento optimizado, distribución global e índices secundarios automáticos. Para más información al respecto y probar esta oferta, consulte Introducción a Azure Cosmos DB for Table. El lenguaje de programación de este artículo no se admite aún en la oferta premium, pero se agregará en un futuro.
Azure Table Storage es un almacén de datos NoSQL que puede utilizar para almacenar y consultar conjuntos grandes de datos estructurados y no relacionales. Los componentes principales del servicio son tablas, entidades y propiedades. Una tabla es una colección de entidades. Una entidad es un conjunto de propiedades. Cada entidad puede tener hasta 252 propiedades, las cuales son todas pares nombre-valor. En este artículo supondremos que ya está familiarizado con los conceptos del servicio Azure Table Storage. Para más información, consulte Introducción al modelo de datos de Table Service e Introducción a Azure Table Storage mediante .NET.
En este artículo de instrucciones se describen las operaciones de Azure Table Storage más habituales. Aprenderá a:
- Creación de una tabla
- Recuperar una tabla
- Agregar entidades de tabla
- Consultar una tabla
- Eliminar entidades de tabla
- Eliminar una tabla
En este artículo de instrucciones se muestra cómo crear una nueva cuenta de almacenamiento en un nuevo grupo de recursos, de modo que pueda eliminarla fácilmente cuando haya terminado. También puede usar una cuenta de almacenamiento existente.
Los ejemplos requieren los módulos de PowerShell de Az Az.Storage (1.1.0 or greater)
y Az.Resources (1.2.0 or greater)
. En una ventana de PowerShell, ejecute Get-Module -ListAvailable Az*
para buscar la versión. Si no aparece nada o necesita una actualización, vea Install and configure Azure PowerShell (Instalar y configurar Azure PowerShell).
Importante
El uso de esta característica de Azure desde PowerShell requiere que tenga el módulo Az
instalado. La versión actual de AzTable
no es compatible con el módulo de AzureRM anterior. Siga las instrucciones de instalación más recientes para el módulo de Az en caso necesario.
Para obtener información sobre los motivos de compatibilidad en el nombre del módulo, este módulo también está publicado en Galería de PowerShell con el nombre antiguo AzureRmStorageTables
. Este documento hará referencia únicamente al nuevo nombre.
Después de instalar o actualizar Azure PowerShell, hay que instalar el módulo AzTable, que contiene los comandos para administrar las entidades. Para instalarlo, ejecute PowerShell como administrador y use el comando Install-Module.
Install-Module AzTable
Autorización de operaciones de datos de tabla
El módulo AzTable de PowerShell admite la autorización con la clave de acceso de la cuenta a través de la autorización de clave compartida. En los ejemplos de este artículo se muestra cómo autorizar operaciones de datos de tabla a través de la clave compartida.
Azure Table Storage admite la autorización con Microsoft Entra ID. Sin embargo, el módulo AzTable de PowerShell no admite de forma nativa la autorización con Microsoft Entra ID. El uso de Microsoft Entra ID con el módulo AzTable requiere que llame a métodos de la biblioteca cliente de .NET desde PowerShell.
Inicio de sesión en Azure
Para comenzar, inicie sesión en la suscripción a Azure con el comando Add-AzAccount
y siga las instrucciones de la pantalla.
Add-AzAccount
Recuperación de la lista de ubicaciones
Si no sabe qué ubicación desea usar, puede enumerar las ubicaciones disponibles. Cuando se muestre la lista, busque la que desee usar. En estos ejemplos se utiliza eastus. Guarde este valor en la variable location para usarlo más adelante.
Get-AzLocation | select Location
$location = "eastus"
Creación de un grupo de recursos
Cree un grupo de recursos con el comando New-AzResourceGroup.
Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure. Guarde el nombre del grupo de recursos en una variable para usarlo más adelante. En este ejemplo se crea un grupo de recursos denominado pshtablesrg en la región eastus.
$resourceGroup = "pshtablesrg"
New-AzResourceGroup -ResourceGroupName $resourceGroup -Location $location
Crear cuenta de almacenamiento
Cree una cuenta de almacenamiento genérica estándar con almacenamiento con redundancia local (LRS) mediante New-AzStorageAccount. Asegúrese de especificar un nombre de cuenta de almacenamiento único. Luego, obtenga el contexto que representa la cuenta de almacenamiento. Cuando actúa en una cuenta de almacenamiento, puede hacer referencia al contexto en lugar de proporcionar varias veces las credenciales.
$storageAccountName = "pshtablestorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name $storageAccountName `
-Location $location `
-SkuName Standard_LRS `
-Kind Storage
$ctx = $storageAccount.Context
Creación de una nueva tabla
Para crear una tabla, utilice el cmdlet New-AzStorageTable. En este ejemplo, la tabla se denomina pshtesttable
.
$tableName = "pshtesttable"
New-AzStorageTable -Name $tableName -Context $ctx
Recuperación de una lista de tablas de la cuenta de almacenamiento
Recupere una lista de tablas de la cuenta de almacenamiento mediante Get-AzStorageTable.
Get-AzStorageTable -Context $ctx | select Name
Recuperación de una referencia a una tabla específica
Para llevar a cabo operaciones en una tabla, se necesita una referencia a la tabla concreta. Obtenga una referencia mediante Get-AzStorageTable.
$storageTable = Get-AzStorageTable -Name $tableName -Context $ctx
Haga referencia a la propiedad CloudTable de una tabla específica
Importante
El uso de la propiedad CloudTable es obligatorio cuando se trabaja con datos de tabla mediante el módulo AzTable de PowerShell. Llame al comando Get-AzStorageTable para obtener la referencia a este objeto.
Para llevar a cabo operaciones en una tabla con AzTable, devuelva una referencia a la propiedad de CloudTable de una tabla concreta. La propiedad CloudTable expone los métodos de .NET disponibles para administrar datos de tabla desde PowerShell.
$cloudTable = $storageTable.CloudTable
Administrar entidades de tabla
Ya tenemos la tabla. Pasemos a ver ahora cómo administrar las entidades (o filas) de esa tabla.
Las entidades pueden tener hasta 255 propiedades, incluidas tres propiedades del sistema: PartitionKey, RowKey y Timestamp. Usted será responsable de insertar y actualizar los valores de PartitionKey y RowKey. El servidor se encargará de administrar el valor Timestamp, así que no podrá modificarlo. Tanto PartitionKey como RowKey identifican de forma exclusiva todas las entidades de una tabla.
- PartitionKey: determina la partición en la que se almacena la entidad.
- RowKey: identifica de forma única la entidad dentro de la partición.
Puede definir hasta 252 propiedades personalizadas para una entidad.
Agregar entidades de tabla
Agregue entidades a una tabla con Add-AzTableRow. En estos ejemplos se usan claves de partición con los valores partition1
y partition2
, y las claves de fila equivalen a abreviaturas de estados americanos. Las propiedades de cada entidad son username
y 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}
Consultar las entidades de tabla
Puede consultar las entidades de una tabla mediante el comando Get AzTableRow.
Nota:
Los cmdlets Get-AzureStorageTableRowAll, Get-AzureStorageTableRowByPartitionKey, Get AzureStorageTableRowByColumnName y Get-AzureStorageTableRowByCustomFilter están en desuso y se eliminarán en una actualización de una versión futura.
Recuperar todas las entidades
Get-AzTableRow -table $cloudTable | ft
Este comando devuelve un valor similar a la siguiente tabla:
userid | username | partición | clave de fila |
---|---|---|---|
1 | Chris | partition1 | CA |
3 | Christine | partition1 | WA |
2 | Jessie | partition2 | NM |
4 | Steven | partition2 | TX |
Recuperar el número de entidades de tabla
$totalEntities=(Get-AzTableRow -table $cloudTable | measure).Count
Echo $totalEntities
Este comando da como resultado un recuento numérico de entidades similar al que se muestra a continuación:
4
Recuperar entidades de una clave de partición específica
Get-AzTableRow -table $cloudTable -partitionKey $partitionKey1 | ft
El resultado es similar a la siguiente tabla:
userid | username | partición | clave de fila |
---|---|---|---|
1 | Chris | partition1 | CA |
3 | Christine | partition1 | WA |
Recuperar entidades con un valor específico en una columna específica
Get-AzTableRow -table $cloudTable `
-columnName "username" `
-value "Chris" `
-operator Equal
Con esta consulta se recupera un único registro.
campo | value |
---|---|
userid | 1 |
username | Chris |
PartitionKey | partition1 |
RowKey | CA |
Recuperar entidades con un filtro personalizado
Get-AzTableRow `
-table $cloudTable `
-customFilter "(userid eq 1)"
Con esta consulta se recupera un único registro.
campo | value |
---|---|
userid | 1 |
username | Chris |
PartitionKey | partition1 |
RowKey | CA |
Actualización de entidades
La actualización de las entidades es un proceso de tres pasos: Primero se recupera la entidad que se va a cambiar, después se realiza el cambio y, finalmente, se confirma el cambio con Update-AzTableRow.
Actualice la entidad con el nombre de usuario = "Jessie" para que refleje el nombre de usuario = "Jessie2". En este ejemplo se indica también otra forma de crear un filtro personalizado con tipos de .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')"
En los resultados aparece el registro Jessie2.
campo | value |
---|---|
userid | 2 |
username | Jessie2 |
PartitionKey | partition2 |
RowKey | NM |
Eliminar entidades de tabla
Se puede eliminar una o todas las entidades de la tabla.
Eliminar una entidad
Para eliminar solo una entidad, obtenga una referencia a esa entidad y canalícela en 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
Eliminar todas las entidades de la tabla
Para eliminar todas las entidades de la tabla, recupérelas y canalice los resultados al cmdlet de eliminación.
# 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
Eliminar una tabla
Para eliminar una tabla, use Remove-AzStorageTable. Este cmdlet elimina la tabla, incluidos todos sus datos.
Remove-AzStorageTable -Name $tableName -Context $ctx
# Retrieve the list of tables to verify the table has been removed.
Get-AzStorageTable -Context $Ctx | select Name
Limpieza de recursos
Si ha creado un grupo de recursos y una cuenta de almacenamiento al principio de este artículo de ayuda, puede quitar el grupo de recursos para eliminar todos los recursos creados en este ejercicio. Con este comando se eliminan todos los recursos incluidos en el grupo de recursos, además del grupo de recursos en sí.
Remove-AzResourceGroup -Name $resourceGroup
Pasos siguientes
En este artículo de instrucciones ha aprendido a realizar operaciones habituales de Azure Table Storage con PowerShell, por ejemplo:
- Creación de una tabla
- Recuperar una tabla
- Agregar entidades de tabla
- Consultar una tabla
- Eliminar entidades de tabla
- Eliminar una tabla
Para obtener más información, consulte los siguientes artículos:
Trabajo con tablas de Azure de PowerShell: AzureRmStorageTable/AzTable Módulo PS v2.0
El Explorador de Microsoft Azure Storage es una aplicación independiente y gratuita de Microsoft que permite trabajar visualmente con los datos de Azure Storage en Windows, macOS y Linux.