存储表并不意味着关系数据库. Azure存储只能存储没有任何外键或任何其他类型关系的表.这些表具有高度可扩展性,是处理大量数据的理想选择.可以存储和查询表以获取大量数据.关系数据库可以使用SQL Data Services存储,这是一个单独的服务.
服务的三个主要部分是 :
表
实体
属性
例如,如果'Book'是一个实体,它的属性将是Id,Title,Publisher,Author等.将为一组实体创建表.可以有252个自定义属性和3个系统属性.实体将始终具有PartitionKey,RowKey和Timestamp的系统属性.时间戳是系统生成的,但您必须在将数据插入表时指定PartitionKey和RowKey.以下示例将使其更清晰.表名和属性名称区分大小写,在创建表时应始终考虑.
如何使用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"的表格.
您可以看到它已经给出了以下结束点.
https://it1352.table.core.windows.net/Book
同样,你可以检索,删除和插入使用PowerShell中的预设命令将数据放入表中.
检索表
$tabName = "Book" Get-AzureStorageTable –Name $tabName –Context $Ctx
删除表
$tabName = "Book"Remove-AzureStorageTable –Name $tabName –Context $Ctx
插入r ows into Table
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 = "IT屋" $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
检索表数据
$StorageAccountName = "IT屋" $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
输出如下图所示.
从表中删除行
$ StorageAccountName ="it1352" $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)) } }
上面的脚本将从表中删除第一行,如您所见我们在脚本中指定了Partition1和Row1.完成删除行后,可以通过运行用于检索行的脚本来检查结果.在那里,您将看到第一行被删除.
在运行这些命令时,请确保您已将帐户名替换为帐户名,使用帐户密钥替换帐户密钥.
如何使用Azure存储资源管理器管理表
步骤1 : 登录您的Azure帐户并转到您的存储帐户.
第2步 : 单击"存储资源管理器"链接,如下图中紫色圆圈所示.
第3步 : 从列表中选择"Azure Storage Explorer for Windows".这是一款免费工具,您可以在计算机上下载并安装.
第4步 : 在您的计算机上运行此程序,然后单击顶部的"添加帐户"按钮.
步骤5 : 输入"存储帐户名称"和"存储帐户密钥",然后单击"测试访问权限".这些按钮被包围在下面的图像中.
第6步 : 如果您已经有任何存储表,您将在左侧面板的"Tables"下看到.您可以通过单击来查看行.
创建表
步骤1 : 单击"新建"并输入表格名称,如下图所示.
在表格中插入行
步骤1 : 点击"新建".
第2步 : 输入字段名称.
第3步 : 从下拉列表中选择数据类型并输入字段值.
第4步 : 要查看创建的行,请单击左侧面板中的表名.
Azure Storage Explorer是管理表的非常基本且简单的界面.您可以使用此界面轻松创建,删除,上载和下载表.与在Windows PowerShell中编写冗长的脚本相比,这使开发人员可以轻松完成任务.