Executar operações de armazenamento de Tabelas do Azure com o Azure PowerShellPerform Azure Table storage operations with Azure PowerShell

Dica

O conteúdo deste artigo aplica-se ao armazenamento de Tabela do Azure.The content in this article applies to Azure Table storage. No entanto, agora há uma oferta premium para o armazenamento de tabelas, a API de Tabela do Azure Cosmos DB que oferece tabelas com otimização de taxa de transferência, distribuição global e índices secundários automáticos.However, there is now a premium offering for table storage, the Azure Cosmos DB Table API that offers throughput-optimized tables, global distribution, and automatic secondary indexes. Para saber mais e experimentar a experiência premium, confira Azure Cosmos DB: API de Tabela.To learn more and try out the premium experience, please check out Azure Cosmos DB Table API. A linguagem de programação deste artigo ainda não tem suporte na oferta premium, mas será adicionada no futuro.This article's programming language is not yet supported in the premium offering, but will be added in the future.

O armazenamento de Tabelas do Azure é um armazenamento de dados NoSQL que pode ser usado para armazenar e consultar grandes conjuntos de dados estruturados e não relacionais.Azure Table storage is a NoSQL datastore that you can use to store and query huge sets of structured, non-relational data. Os principais componentes do serviço são tabelas, entidades e propriedades.The main components of the service are tables, entities, and properties. Uma tabela é uma coleção de entidades.A table is a collection of entities. Uma entidade é um conjunto de propriedades.An entity is a set of properties. Cada entidade pode ter até 252 propriedades, que são todas pares de nome-valor.Each entity can have up to 252 properties, which are all name-value pairs. Este artigo pressupõe que você já esteja familiarizado com os conceitos do Serviço de Armazenamento de Tabelas do Azure.This article assumes that you are already familiar with the Azure Table Storage Service concepts. Para obter informações detalhadas, confira Understanding the Table Service Data Model (Noções básicas do modelo de dados do serviço Tabela) e Introdução ao Armazenamento de Tabelas do Azure usando o .NET.For detailed information, see Understanding the Table Service Data Model and Get started with Azure Table storage using .NET.

Este artigo de instruções abrange operações comuns do armazenamento de Tabelas do Azure.This how-to article covers common Azure Table storage operations. Você aprenderá como:You learn how to:

  • Criar uma tabelaCreate a table
  • Recuperar uma tabelaRetrieve a table
  • Adicionar entidades de tabelaAdd table entities
  • Consultar uma tabelaQuery a table
  • Excluir entidades de tabelaDelete table entities
  • Excluir uma tabelaDelete a table

Este artigo de instruções mostra como criar uma nova conta de armazenamento do Azure em um novo grupo de recursos, de modo que você possa removê-la facilmente quando terminar.This how-to article shows you how to create a new Azure Storage account in a new resource group so you can easily remove it when you're done. Se preferir usar uma conta de armazenamento existente, faça isso.If you'd rather use an existing Storage account, you can do that instead.

Os exemplos requerem que os módulos PowerShell Az Az.Storage (1.1.0 or greater) e Az.Resources (1.2.0 or greater).The examples require Az PowerShell modules Az.Storage (1.1.0 or greater) and Az.Resources (1.2.0 or greater). Em uma janela do PowerShell, execute Get-Module -ListAvailable Az* para localizar a versão.In a PowerShell window, run Get-Module -ListAvailable Az* to find the version. Se nada for exibido ou você precisar fazer atualização, consulte Instalar o módulo do Azure PowerShell.If nothing is displayed, or you need to upgrade, see Install Azure PowerShell module.

Importante

Usar esse recurso do Azure do PowerShell exige que você tenha o módulo Az instalado.Using this Azure feature from PowerShell requires that you have the Az module installed. A versão atual do AzTable não é compatível com o módulo do AzureRM mais antigo.The current version of AzTable is not compatible with the older AzureRM module. Siga as mais recente instalar instruções para instalar o módulo de Az se necessário.Follow the latest install instructions for installing Az module if needed.

Depois que o Azure PowerShell é instalado ou atualizado, você deve instalar o módulo AzTable, que contém os comandos para gerenciar as entidades.After Azure PowerShell is installed or updated, you must install module AzTable, which has the commands for managing the entities. Para instalar esse módulo, execute o PowerShell como administrador e use o comando Install-Module.To install this module, run PowerShell as an administrator and use the Install-Module command.

Importante

Módulo de compatibilidade de nome razões pelas quais ainda estamos publicando esse mesmo módulo com o nome antigo AzureRmStorageTables na Galeria do PowerShell.For module name compatibility reasons we are still publishing this same module under the old name AzureRmStorageTables in PowerShell Gallery. Este documento fará referência a apenas o novo nome.This document will reference the new name only.

Install-Module AzTable

Entrar no AzureSign in to Azure

Entre na sua assinatura do Azure com o comando Add-AzAccount e siga as instruções na tela.Sign in to your Azure subscription with the Add-AzAccount command and follow the on-screen directions.

Add-AzAccount

Recuperar a lista de locaisRetrieve list of locations

Se você não sabe qual localização deseja usar, você pode listar as localizações disponíveis.If you don't know which location you want to use, you can list the available locations. Depois que a lista for exibida, encontre o que deseja usar.After the list is displayed, find the one you want to use. Esses exemplos usam eastus.These examples use eastus. Armazene esse valor na variável location para uso futuro.Store this value in the variable location for future use.

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

Criar grupo de recursosCreate resource group

Crie um grupo de recursos com o comando New-AzResourceGroup.Create a resource group with the New-AzResourceGroup command.

Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados.An Azure resource group is a logical container into which Azure resources are deployed and managed. Armazene o nome do grupo de recursos em uma variável para uso futuro.Store the resource group name in a variable for future use. Neste exemplo, um grupo de recursos chamado pshtablesrg é criado na região eastus.In this example, a resource group named pshtablesrg is created in the eastus region.

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

Criar Conta de ArmazenamentoCreate storage account

Crie uma conta de armazenamento padrão para uso geral com o LRS (armazenamento com redundância local) usando New-AzStorageAccount.Create a standard general-purpose storage account with locally redundant storage (LRS) using New-AzStorageAccount. Certifique-se de especificar um nome de conta de armazenamento exclusivo.Be sure to specify a unique storage account name. Em seguida, obtenha o contexto que representa a conta de armazenamento.Next, get the context that represents the storage account. Ao agir em uma conta de armazenamento, você pode referenciar o contexto em vez de fornecer repetidamente as credenciais.When acting on a storage account, you can reference the context instead of repeatedly providing your credentials.

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

$ctx = $storageAccount.Context

Criar uma nova tabelaCreate a new table

Para criar uma tabela, use o New-AzStorageTable cmdlet.To create a table, use the New-AzStorageTable cmdlet. Neste exemplo, a tabela é chamada pshtesttable.In this example, the table is called pshtesttable.

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

Recuperar uma lista de tabelas na conta de armazenamentoRetrieve a list of tables in the storage account

Recuperar uma lista de tabelas na conta de armazenamento usando Get-AzStorageTable.Retrieve a list of tables in the storage account using Get-AzStorageTable.

Get-AzStorageTable –Context $ctx | select Name

Recuperar uma referência a uma tabela específicaRetrieve a reference to a specific table

Para executar operações em uma tabela, você precisa de uma referência à tabela específica.To perform operations on a table, you need a reference to the specific table. Obtenha uma referência usando Get-AzStorageTable.Get a reference using Get-AzStorageTable.

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

Propriedade de CloudTable de referência de uma tabela específicaReference CloudTable property of a specific table

Importante

Uso de CloudTable é obrigatório ao trabalhar com AzTable módulo do PowerShell.Usage of CloudTable is mandatory when working with AzTable PowerShell module. Chame o Get-AzTableTable comando para obter a referência a esse objeto.Call the Get-AzTableTable command to get the reference to this object. Esse comando também cria a tabela se ela ainda não existir.This command also creates the table if it does not already exist.

Para executar operações em uma tabela usando AzTable, você precisa de uma referência à propriedade CloudTable de uma tabela específica.To perform operations on a table using AzTable, you need a reference to CloudTable property of a specific table.

$cloudTable = (Get-AzStorageTable –Name $tableName –Context $ctx).CloudTable

Gerenciando entidades de tabelaManaging table entities

Agora que você tem uma tabela, vamos examinar como gerenciar entidades ou linhas, na tabela.Now that you have a table, let's look at how to manage entities, or rows, in the table.

Entidades podem ter até 255 propriedades, incluindo três propriedades do sistema: PartitionKey, RowKey, e Timestamp.Entities can have up to 255 properties, including three system properties: PartitionKey, RowKey, and Timestamp. Você é responsável por inserir e atualizar os valores de PartitionKey e RowKey.You're responsible for inserting and updating the values of PartitionKey and RowKey. O servidor gerencia o valor de carimbo de hora, que não pode ser modificado.The server manages the value of Timestamp, which can't be modified. Juntas, PartitionKey e RowKey identificam exclusivamente cada entidade dentro de uma tabela.Together the PartitionKey and RowKey uniquely identify every entity within a table.

  • PartitionKey: Determina a partição que a entidade está armazenada.PartitionKey: Determines the partition that the entity is stored in.
  • RowKey: Identifica exclusivamente a entidade dentro da partição.RowKey: Uniquely identifies the entity within the partition.

Você pode definir até 252 propriedades personalizadas para uma entidade.You may define up to 252 custom properties for an entity.

Adicionar entidades de tabelaAdd table entities

Adicionar entidades a uma tabela usando AzTableRow adicionar.Add entities to a table using Add-AzTableRow. Esses exemplos usam chaves de partição com valores partition1 e partition2, e chaves de linha iguais para abreviações de estado.These examples use partition keys with values partition1 and partition2, and row keys equal to state abbreviations. As propriedades em cada entidade são username e userid.The properties in each entity are username and 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 as entidades de tabelaQuery the table entities

Você pode consultar as entidades em uma tabela usando o Get-AzTableRow comando.You can query the entities in a table by using the Get-AzTableRow command.

Observação

Os cmdlets Get-AzureStorageTableRowAll, Get-AzureStorageTableRowByPartitionKey, Get-AzureStorageTableRowByColumnName, e Get-AzureStorageTableRowByCustomFilter foram preteridas e serão removidos em uma atualização de versão futura.The cmdlets Get-AzureStorageTableRowAll, Get-AzureStorageTableRowByPartitionKey, Get-AzureStorageTableRowByColumnName, and Get-AzureStorageTableRowByCustomFilter are deprecated and will be removed in a future version update.

Recuperar todas as entidadesRetrieve all entities

Get-AzTableRow -table $cloudTable | ft

Este comando gera resultados semelhantes à seguinte tabela:This command yields results similar to the following table:

useriduserid usernameusername partitionpartition rowkeyrowkey
11 ChrisChris partition1partition1 CACA
33 ChristineChristine partition1partition1 WAWA
22 JessieJessie partition2partition2 NMNM
44 StevenSteven partition2partition2 TXTX

Recuperar entidades de uma partição específicaRetrieve entities for a specific partition

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

Os resultados são parecidos com a seguinte tabela:The results look similar to the following table:

useriduserid usernameusername partitionpartition rowkeyrowkey
11 ChrisChris partition1partition1 CACA
33 ChristineChristine partition1partition1 WAWA

Recuperar entidades de um valor específico em uma coluna específicaRetrieve entities for a specific value in a specific column

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

Essa consulta recupera um registro.This query retrieves one record.

fieldfield valuevalue
useriduserid 11
usernameusername ChrisChris
PartitionKeyPartitionKey partition1partition1
RowKeyRowKey CACA

Recuperar entidades usando um filtro personalizadoRetrieve entities using a custom filter

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

Essa consulta recupera um registro.This query retrieves one record.

fieldfield valuevalue
useriduserid 11
usernameusername ChrisChris
PartitionKeyPartitionKey partition1partition1
RowKeyRowKey CACA

Atualizando entidadesUpdating entities

Há três etapas para a atualização de entidades.There are three steps for updating entities. Primeiro, recupere a entidade para alterar.First, retrieve the entity to change. Em segundo lugar, faça a alteração.Second, make the change. Em terceiro lugar, confirme a alteração usando AzTableRow atualização.Third, commit the change using Update-AzTableRow.

Atualize a entidade com o nome de usuário = “Jessie” para ter o nome de usuário = “Jessie2”.Update the entity with username = 'Jessie' to have username = 'Jessie2'. Este exemplo também mostra outra maneira de criar um filtro personalizado usando tipos .NET.This example also shows another way to create a custom filter using .NET types.

# 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')"

Os resultados mostram o registro Jessie2.The results show the Jessie2 record.

fieldfield valuevalue
useriduserid 22
usernameusername Jessie2Jessie2
PartitionKeyPartitionKey partition2partition2
RowKeyRowKey NMNM

Excluindo entidades de tabelaDeleting table entities

Você pode excluir uma entidade ou todas as entidades da tabela.You can delete one entity or all entities in the table.

Excluindo uma entidadeDeleting one entity

Para excluir uma única entidade, obtenha uma referência a essa entidade e redirecione-a em AzTableRow remover.To delete a single entity, get a reference to that entity and pipe it into 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

Excluir todas as entidades da tabelaDelete all entities in the table

Para excluir todas as entidades na tabela, você as recupera e redireciona os resultados para o cmdlet de remoção.To delete all entities in the table, you retrieve them and pipe the results into the remove cmdlet.

# 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

Excluir uma tabelaDelete a table

Para excluir uma tabela, use AzStorageTable remover.To delete a table, use Remove-AzStorageTable. Esse cmdlet remove a tabela, incluindo todos os seus dados.This cmdlet removes the table, including all of its data.

Remove-AzStorageTable –Name $tableName –Context $ctx

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

Limpar recursosClean up resources

Se você criou um novo grupo de recursos e uma conta de armazenamento no início destas instruções, remova todos os ativos criados neste exercício removendo o grupo de recursos.If you created a new resource group and storage account at the beginning of this how-to, you can remove all of the assets you have created in this exercise by removing the resource group. Esse comando exclui todos os recursos contidos no grupo, bem como o próprio grupo de recursos.This command deletes all resources contained within the group as well as the resource group itself.

Remove-AzResourceGroup -Name $resourceGroup

Próximas etapasNext steps

Neste artigo de instruções, você aprendeu sobre operações comuns do armazenamento de Tabelas do Azure com o PowerShell, incluindo como:In this how-to article, you learned about common Azure Table storage operations with PowerShell, including how to:

  • Criar uma tabelaCreate a table
  • Recuperar uma tabelaRetrieve a table
  • Adicionar entidades de tabelaAdd table entities
  • Consultar uma tabelaQuery a table
  • Excluir entidades de tabelaDelete table entities
  • Excluir uma tabelaDelete a table

Para obter mais informações, consulte os seguintes artigosFor more information, see the following articles