Azure Tables 怎么用?Azure 表格存储如何创建和管理数据?

文章导读
Previous Quiz Next 在这里,存储表并不意味着关系型数据库。Azure Storage 可以仅存储一个表,而无需任何外键或其他任何类型的关系。这些表具有高度可扩展性,非常适合处理大量数据。表可以存储和查询大量数据。关系型数据库可以使用 SQL Data Se
📋 目录
  1. A 使用 PowerShell 管理表
  2. B 使用 Azure Storage Explorer 管理 Table
A A

Microsoft Azure - Tables



Previous
Quiz
Next

在这里,存储表并不意味着关系型数据库。Azure Storage 可以仅存储一个表,而无需任何外键或其他任何类型的关系。这些表具有高度可扩展性,非常适合处理大量数据。表可以存储和查询大量数据。关系型数据库可以使用 SQL Data Services 来存储,这是一个独立的服务。

服务的三个主要部分是 −

  • Tables
  • Entities
  • Properties

例如,如果 Book 是一个 entity,它的 properties 将是 Id、Title、Publisher、Author 等。为一组 entities 创建表。可以有 252 个自定义 properties 和 3 个系统 properties。每个 entity 始终具有系统 properties,即 PartitionKey、RowKey 和 Timestamp。Timestamp 是系统生成的,但在将数据插入表时,您必须指定 PartitionKey 和 RowKey。下例将使之更清晰。表名和 property 名是区分大小写的,在创建表时应始终考虑这一点。

使用 PowerShell 管理表

步骤 1 − 下载并安装 Windows PowerShell,如教程前面所述。

步骤 2 − 右键单击 Windows PowerShell,选择“固定到任务栏”,将其固定到计算机的任务栏上。

步骤 3 − 选择“以管理员身份运行 ISE”。

创建表

步骤 1 − 复制以下命令并粘贴到屏幕中。将高亮显示的文本替换为您的账户信息。

步骤 2 − 登录您的账户。

$StorageAccountName = "mystorageaccount" 
$StorageAccountKey = "mystoragekey" 
$Ctx = New-AzureStorageContext $StorageAccountName - StorageAccountKey 
$StorageAccountKey

步骤 3 − 创建一个新表。

$tabName = "Mytablename" 
New-AzureStorageTable Name $tabName Context $Ctx 

以下图像显示了一个名为 book 的表正在被创建。

Create Table

您可以看到它返回了以下端点。

https://.table.core.windows.net/Book

类似地,您可以使用 PowerShell 中的预设命令检索、删除并向表中插入数据。

检索表

$tabName = "Book" 
Get-AzureStorageTable Name $tabName Context $Ctx

删除表

$tabName = "Book"
Remove-AzureStorageTable Name $tabName Context $Ctx

向表中插入行

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 = "" 
$StorageAccountKey = Get-AzureStorageKey -StorageAccountName $StorageAccountName 
$Ctx = New-AzureStorageContext $StorageAccountName - StorageAccountKey 
   $StorageAccountKey.Primary  

$TableName = "Book"
  
$table = Get-AzureStorageTable Name $TableName -Context $Ctx -ErrorAction Ignore 
 
#向表中添加多个实体。 
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

检索表数据

$StorageAccountName = "" 
$StorageAccountKey = Get-AzureStorageKey - StorageAccountName $StorageAccountName 
$Ctx = New-AzureStorageContext  StorageAccountName $StorageAccountName -
   StorageAccountKey $StorageAccountKey.Primary; 

$TableName = "Book"
  
#获取表的引用。 
$table = Get-AzureStorageTable Name $TableName -Context $Ctx  

#创建表查询。 
$query = New-Object Microsoft.WindowsAzure.Storage.Table.TableQuery

#定义要选择的列。 
$list = New-Object System.Collections.Generic.List[string] 
$list.Add("RowKey") 
$list.Add("ID") 
$list.Add("Title") 
$list.Add("Publisher") 
$list.Add("Author")
  
#设置查询详情。 
$query.FilterString = "ID gt 0" 
$query.SelectColumns = $list 
$query.TakeCount = 20
 
#执行查询。 
$entities = $table.CloudTable.ExecuteQuery($query)

#以表格格式显示实体属性。 

$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 

输出结果将如下图所示。

Retrive Table

从表中删除行

$StorageAccountName = "" 
 
$StorageAccountKey = Get-AzureStorageKey - StorageAccountName $StorageAccountName 
$Ctx = New-AzureStorageContext  StorageAccountName $StorageAccountName - 
   StorageAccountKey $StorageAccountKey.Primary  

#检索表。 
$TableName = "Book" 
$table = Get-AzureStorageTable -Name $TableName -Context $Ctx -ErrorAction 
Ignore 

#如果表存在,则开始删除其实体。 
if ($table -ne $null) { 
   #PartitionKey 和 RowKey 组合唯一标识表中的每个实体。
	
   $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)) 
   } 
}

上述脚本将从表中删除第一行,您可以看到我们在脚本中指定了 Partition1 和 Row1。删除行后,您可以通过运行检索行的脚本检查结果,您将看到第一行已被删除。

在运行这些命令时,请确保将 accountname 替换为您的账户名称,accountkey 替换为您的账户密钥。

使用 Azure Storage Explorer 管理 Table

步骤 1 − 登录您的 Azure 帐户并转到您的 storage account。

步骤 2 − 点击如下图紫色圆圈所示的 Storage explorer 链接。

Storage Explorer

步骤 3 − 从列表中选择 Azure Storage Explorer for Windows。这是一个免费工具,您可以下载并安装到您的计算机上。

步骤 4 − 在您的计算机上运行该程序,并点击顶部的 Add Account 按钮。

步骤 5 − 输入 Storage Account Name 和 Storage account Key,然后点击 Test Access。按钮如下图所示。

Storage Account Name

步骤 6 − 如果您的 storage 中已有任何 tables,您将在左侧面板的 Tables 下看到它们。点击它们即可查看行。

创建 Table

步骤 1 − 点击 New,并输入 table name,如下图所示。

Create New Table

向 Table 中插入 Row

步骤 1 − 点击 New。

步骤 2 − 输入 Field Name。

步骤 3 − 从下拉菜单中选择 data type 并输入 field value。

Select Data From Dropdown

步骤 4 − 要查看创建的行,请点击左侧面板中的 table name。

Azure Storage Explorer 是一个非常基础且易用的界面,用于管理 tables。您可以使用此界面轻松创建、删除、上传和下载 tables。与在 Windows PowerShell 中编写冗长的脚本相比,这让开发人员的工作变得非常简单。