Microsoft Azure - Tabelas
Armazenar uma tabela não significa banco de dados relacional aqui. O Armazenamento do Azure pode armazenar apenas uma tabela sem nenhuma chave estrangeira ou qualquer outro tipo de relação. Essas tabelas são altamente escaláveis e ideais para lidar com uma grande quantidade de dados. As tabelas podem ser armazenadas e consultadas para grande quantidade de dados. O banco de dados relacional pode ser armazenado usando o SQL Data Services, que é um serviço separado.
As três partes principais do serviço são -
- Tables
- Entities
- Properties
Por exemplo, se 'Livro' é uma entidade, suas propriedades serão Id, Título, Editor, Autor etc. A tabela será criada para uma coleção de entidades. Pode haver 252 propriedades personalizadas e 3 propriedades do sistema. Uma entidade sempre terá propriedades do sistema que são PartitionKey, RowKey e Timestamp. O carimbo de data / hora é gerado pelo sistema, mas você terá que especificar a PartitionKey e a RowKey ao inserir dados na tabela. O exemplo abaixo tornará isso mais claro. O nome da tabela e o nome da propriedade diferenciam maiúsculas de minúsculas, o que sempre deve ser considerado ao criar uma tabela.
Como gerenciar tabelas usando o PowerShell
Step 1 - Baixe e instale o Windows PowerShell conforme discutido anteriormente no tutorial.
Step 2 - Clique com o botão direito em 'Windows PowerShell', escolha 'Fixar na barra de tarefas' para fixá-lo na barra de tarefas do seu computador.
Step 3 - Escolha 'Executar ISE como Administrador'.
Criação de uma mesa
Step 1- Copie os seguintes comandos e cole na tela. Substitua o texto destacado por sua conta.
Step 2 - Faça login em sua conta.
$StorageAccountName = "mystorageaccount"
$StorageAccountKey = "mystoragekey"
$Ctx = New-AzureStorageContext $StorageAccountName - StorageAccountKey
$StorageAccountKey
Step 3 - Crie uma nova tabela.
$tabName = "Mytablename"
New-AzureStorageTable –Name $tabName –Context $Ctx
A imagem a seguir mostra uma tabela sendo criada com o nome de 'livro'.
Você pode ver que deu o seguinte ponto final como resultado.
https://tutorialspoint.table.core.windows.net/Book
Da mesma forma, você pode recuperar, excluir e inserir dados na tabela usando comandos predefinidos no PowerShell.
Recuperar Tabela
$tabName = "Book"
Get-AzureStorageTable –Name $tabName –Context $Ctx
Apagar Tabela
$tabName = "Book"
Remove-AzureStorageTable –Name $tabName –Context $Ctx
Inserir linhas na tabela
function Add-Entity() {
[CmdletBinding()]
param(
$table,
[String]$partitionKey,
[String]$rowKey,
[String]$title,
[Int]$id,
[String]$publisher,
[String]$author
)
$entity = New-Object -TypeName Microsoft.WindowsAzure.Storage.Table.DynamicTableEntity
-ArgumentList $partitionKey, $rowKey
$entity.Properties.Add("Title", $title)
$entity.Properties.Add("ID", $id)
$entity.Properties.Add("Publisher", $publisher)
$entity.Properties.Add("Author", $author)
$result = $table.CloudTable.Execute(
[Microsoft.WindowsAzure.Storage.Table.TableOperation]
::Insert($entity))
}
$StorageAccountName = "tutorialspoint"
$StorageAccountKey = Get-AzureStorageKey -StorageAccountName $StorageAccountName
$Ctx = New-AzureStorageContext $StorageAccountName - StorageAccountKey
$StorageAccountKey.Primary
$TableName = "Book"
$table = Get-AzureStorageTable –Name $TableName -Context $Ctx -ErrorAction Ignore
#Add multiple entities to a table.
Add-Entity -Table $table -PartitionKey Partition1 -RowKey Row1 -Title .Net -Id 1
-Publisher abc -Author abc
Add-Entity -Table $table -PartitionKey Partition2 -RowKey Row2 -Title JAVA -Id 2
-Publisher abc -Author abc
Add-Entity -Table $table -PartitionKey Partition3 -RowKey Row3 -Title PHP -Id 3
-Publisher xyz -Author xyz
Add-Entity -Table $table -PartitionKey Partition4 -RowKey Row4 -Title SQL -Id 4
-Publisher xyz -Author xyz
Recuperar dados da tabela
$StorageAccountName = "tutorialspoint"
$StorageAccountKey = Get-AzureStorageKey - StorageAccountName $StorageAccountName
$Ctx = New-AzureStorageContext – StorageAccountName $StorageAccountName -
StorageAccountKey $StorageAccountKey.Primary;
$TableName = "Book"
#Get a reference to a table.
$table = Get-AzureStorageTable –Name $TableName -Context $Ctx
#Create a table query.
$query = New-Object Microsoft.WindowsAzure.Storage.Table.TableQuery
#Define columns to select.
$list = New-Object System.Collections.Generic.List[string]
$list.Add("RowKey")
$list.Add("ID")
$list.Add("Title")
$list.Add("Publisher")
$list.Add("Author")
#Set query details.
$query.FilterString = "ID gt 0"
$query.SelectColumns = $list
$query.TakeCount = 20
#Execute the query.
$entities = $table.CloudTable.ExecuteQuery($query)
#Display entity properties with the table format.
$entities | Format-Table PartitionKey, RowKey, @{ Label = "Title";
Expression={$_.Properties["Title"].StringValue}}, @{ Label = "ID";
Expression={$_.Properties[“ID”].Int32Value}}, @{ Label = "Publisher";
Expression={$_.Properties[“Publisher”].StringValue}}, @{ Label = "Author";
Expression={$_.Properties[“Author”].StringValue}} -AutoSize
A saída será conforme mostrado na imagem a seguir.
Excluir linhas da tabela
$StorageAccountName = "tutorialspoint"
$StorageAccountKey = Get-AzureStorageKey - StorageAccountName $StorageAccountName
$Ctx = New-AzureStorageContext – StorageAccountName $StorageAccountName -
StorageAccountKey $StorageAccountKey.Primary
#Retrieve the table.
$TableName = "Book"
$table = Get-AzureStorageTable -Name $TableName -Context $Ctx -ErrorAction
Ignore
#If the table exists, start deleting its entities.
if ($table -ne $null) {
#Together the PartitionKey and RowKey uniquely identify every
#entity within a table.
$tableResult = $table.CloudTable.Execute(
[Microsoft.WindowsAzure.Storage.Table.TableOperation]
::Retrieve(“Partition1”, "Row1"))
$entity = $tableResult.Result;
if ($entity -ne $null) {
$table.CloudTable.Execute(
[Microsoft.WindowsAzure.Storage.Table.TableOperation]
::Delete($entity))
}
}
O script acima excluirá a primeira linha da tabela, como você pode ver que especificamos Partition1 e Row1 no script. Depois de concluir a exclusão da linha, você pode verificar o resultado executando o script para recuperar as linhas. Lá você verá que a primeira linha foi excluída.
Ao executar esses comandos, certifique-se de ter substituído o nome da conta pelo nome da sua conta, accountkey pela chave da sua conta.
Como gerenciar a tabela usando o Azure Storage Explorer
Step 1 - Faça login em sua conta do Azure e vá para sua conta de armazenamento.
Step 2 - Clique no link 'Explorador de armazenamento' conforme mostrado no círculo roxo na imagem a seguir.
Step 3- Escolha 'Azure Storage Explorer para Windows' na lista. É uma ferramenta gratuita que você pode baixar e instalar no seu computador.
Step 4 - Execute este programa no seu computador e clique no botão 'Adicionar conta' na parte superior.
Step 5- Insira 'Nome da conta de armazenamento' e 'Chave da conta de armazenamento' e clique em 'Testar acesso. Os botões são circundados na imagem a seguir.
Step 6- Se você já tem tabelas armazenadas, verá no painel esquerdo em 'Tabelas'. Você pode ver as linhas clicando nelas.
Crie uma mesa
Step 1 - Clique em 'Novo' e insira o nome da mesa conforme mostrado na imagem a seguir.
Inserir linha na tabela
Step 1 - Clique em 'Novo'.
Step 2 - Digite o nome do campo.
Step 3 - Selecione o tipo de dados na lista suspensa e insira o valor do campo.
Step 4 - Para ver as linhas criadas clique no nome da tabela no painel esquerdo.
O Azure Storage Explorer é uma interface muito básica e fácil de gerenciar tabelas. Você pode criar, excluir, fazer upload e baixar tabelas facilmente usando esta interface. Isso torna as tarefas muito mais fáceis para os desenvolvedores em comparação com a escrita de scripts longos no Windows PowerShell.