azure 临时存储
微软的Azure云计算平台提供了可互操作的云计算服务,该服务由开源技术和基于标准的技术组成。 您可以使用Azure存储帐户来处理所有类型的数据,包括文件,blob,队列和表。
Azure表存储是可伸缩的,非关系式的键值存储系统,您可以利用它来在云中存储大量数据。 本文讨论了Azure Table存储以及如何在.Net中使用它。
在Visual Studio 2017中创建控制台应用程序项目
首先,让我们在Visual Studio中创建一个控制台应用程序项目。 如果您的系统已启动并运行Visual Studio 2017,请按照下面概述的步骤创建项目。
- 启动Visual Studio 2017 IDE。
- 单击文件>新建>项目。
- 从显示的模板列表中选择“控制台应用程序(.Net Framework)”。
- 指定项目的名称。
- 指定项目的位置。
- 选择您要使用的Framework版本。
- 单击确定保存项目。
执行以下步骤将在Visual Studio中生成一个新的控制台应用程序项目。 您可以使用该项目来编写和执行以下各节中给出的程序。
创建一个新的Azure存储帐户
若要在Azure中使用Blob,文件,表或队列,您将需要一个Azure存储帐户 。 Azure存储帐户是Azure云中的唯一名称空间,可用于存储和检索数据。 当然,您首先需要创建一个Azure帐户(如果您没有帐户),然后使用它来创建Azure存储帐户。 如果您没有Azure帐户,则可以在此处创建一个免费的Azure帐户 。
拥有Azure帐户后,可以按照以下步骤在Azure中创建存储帐户:
- 打开Azure门户。
- 点击“创建资源”,然后选择“存储帐户”。
- 指定订阅和资源组。
- 指定存储帐户的名称和位置。
- 接受性能(“标准”),帐户类型(“ StorageV2”),复制(“ RA-GRS”)和访问层(“热”)的默认值。
- 单击“下一步:高级>”按钮。
- 在“高级”和“标签”选项卡中根据需要指定详细信息(出于我们的目的,默认设置为“ OK”)。
- 单击“下一步:查看+创建”以创建存储帐户。
现在,您的Azure存储帐户已创建,您可以使用它来与Azure表一起使用。
使用C#创建新的Azure表
选择您之前创建的控制台项目,然后从NuGet软件包管理器中添加以下两个NuGet软件包。
WindowsAzure.Storage
Microsoft.WindowsAzure.ConfigurationManager
下面的代码段说明了如何连接到上面创建的Azure存储帐户,然后创建一个不存在的存储表。
static void Main(string[] args)
{
string connectionString = ConfigurationManager.AppSettings.Get("TableStorageConnectionString");
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient cloudTableClient = cloudStorageAccount.CreateCloudTableClient();
CloudTable cloudTable = cloudTableClient.GetTableReference("DemoTable");
cloudTable.CreateIfNotExists();
Console.ReadKey();
}
当您执行上述代码时,如果不存在,将创建一个名为DemoTable的新表。 您可以登录Azure帐户,并从Azure Storage Explorer查看刚刚创建的表,该表可免费下载用于Windows,MacOS和Linux。
使用C#在Azure表中创建实体
在Azure表内部,您存储实体。 实体必须具有三个必填属性,即PartitionKey,RowKey和Timestamp。 若要创建实体类,应创建一个类,该类扩展与Microsoft.WindowsAzure.Storage命名空间有关的TableEntity类。 这是典型实体的示例。
public class AuthorEntity : TableEntity
{
public AuthorEntity(int id, string firstName, string lastName)
{
Id = id;
FirstName = firstName;
LastName = lastName;
PartitionKey = id.ToString();
RowKey = firstName + lastName;
}
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
以下代码段说明了如何将实体存储在Azure表中。
static void Main(string[] args)
{
string connectionString = ConfigurationManager.AppSettings.Get("TableStorageConnectionString");
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient cloudTableClient = cloudStorageAccount.CreateCloudTableClient();
CloudTable cloudTable = cloudTableClient.GetTableReference("DemoTable");
cloudTable.CreateIfNotExists();
var author = new AuthorEntity(1, "Joydip", "Kanjilal");
TableOperation tableOperation = TableOperation.Insert(author);
cloudTable.Execute(tableOperation);
Console.ReadKey();
}
使用C#从Azure表读取实体
要检索实体,您将需要获取CloudTable引用,然后使用它来调用Execute方法以运行TableOperation。 下面的代码段说明了如何从Azure Table存储读取数据。 请注意TableOperation.Retrieve方法的用法。
string connectionString = ConfigurationManager.AppSettings.Get("TableStorageConnectionString");
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient cloudTableClient = cloudStorageAccount.CreateCloudTableClient();
CloudTable cloudTable = cloudTableClient.GetTableReference("DemoTable");
TableOperation tableOp = TableOperation.Retrieve<AuthorEntity>("3", "JoydipKanjilal");
TableResult tr = cloudTable.Execute(tableOp);
var data = tr.Result as AuthorEntity;
使用C#更新Azure表中的实体
若要更新Azure表中的实体,首先需要检索TableOperation的实例,如下面的代码片段所示。
var partitionKey = "1";
var rowKey = "JoydipKanjilal";
TableOperation tableOp = TableOperation.Retrieve<AuthorEntity>(partitionKey, rowKey);
接下来,您应该执行表操作并检索此代码片段所示的实体实例。
TableResult result = cloudTable.Execute(tableOp);
var data = result.Result as AuthorEntity;
现在,您已经检索了实体实例,现在编写代码以更新实体,并调用TableOperation类的Replace方法来更新实体,如下所示。
TableResult result = cloudTable.Execute(tableOp);
var data = result.Result as AuthorEntity;
//Write code here to update the author entity.
if (result != null)
{
TableOperation updateOp = TableOperation.Replace(data);
cloudTable.Execute(updateOp);
}
使用C#从Azure表中删除实体
若要删除实体,您将采用与更新实体时相同的方法,除了需要在TableOperation类上调用Delete方法。
var partitionKey = "1";
var rowKey = "JoydipKanjilal";
TableOperation tableOp = TableOperation.Retrieve<AuthorEntity>(partitionKey, rowKey);
TableResult result = cloudTable.Execute(tableOp);
var data = result.Result as AuthorEntity;
if (result != null)
{
TableOperation deleteOp = TableOperation.Delete(data);
cloudTable.Execute(deleteOp);
}
在Microsoft Azure行话中,表表示一组实体。 Azure表存储使您可以存储和管理实体。 在Azure表存储中,一个实体是一行数据,一个表是一组实体。 尽管您可以拥有的表数量或表中包含的数据量没有严格限制,但是Microsoft提供了Azure存储规模目标以实现最佳性能。 Azure表存储规模目标将列表的最大大小列出为500TB,将实体的最大大小列出为1MB。
翻译自: https://www.infoworld.com/article/3331846/how-to-use-azure-table-storage-in-net.html
azure 临时存储