安徽省建设部网站官网济南网站建设直播

diannao/2025/10/18 11:33:17/文章来源:
安徽省建设部网站官网,济南网站建设直播,农村建设房子建设网站建设,网站建设 设计Azure Storage 是微软 Azure 云提供的云端存储解决方案#xff0c;当前支持的存储类型有 Blob、Queue、File 和 Table#xff0c;其中的 Table 就是本文的主角 Azure Table storage。 Azure Table storage 是一个在云端存储结构化 NoSQL 数据的服务#xff0c;它不仅存取速…Azure Storage 是微软 Azure 云提供的云端存储解决方案当前支持的存储类型有 Blob、Queue、File 和 Table其中的 Table 就是本文的主角 Azure Table storage。 Azure Table storage 是一个在云端存储结构化 NoSQL 数据的服务它不仅存取速度快而且效费比高。MSDN 上的说法是成本显著低于传统 SQL 笔者最近在项目中用 Table storage 实现了一个日志表在此和大家分享一下 Table storage 的基本用法。 Azure storage account 首先需要说明对 Blob、Queue、File 和 Table 这些 Azure 提供的存储服务的访问控制都是通过 storage account 来进行的所以要想使用 Table storage需要先创建你的 storage account。 具体创建过程MSDN 上有详细讲解。你需要了解一下 Access keys因为它就是你访问 storage account 的用户名和密码 创建Table storage的对象 在使用 Azure Table storage 的相关对象前我们需要安装对应的包。安装过程其实很简单只需在 Visual Studi o的 Package Manager Console 中输入: Install-Package WindowsAzure.Storage Visual Studio 就会自动安装 WindowsAzure.Storage 包及其依赖的所有包安装完成后的 packages.config 文件看起来像这个样子 安装完相关的包以后我们就可以使用其中的类型了。 CloudStorageAccount 类表示一个 Azure storage account我们需要先创建它的实例才能访问属于它的资源。 //注意连接字符串中的xxx和yyy分别对应Access keys中的Storage account name 和 key。 CloudStorageAccount storageAccount CloudStorageAccount.Parse(DefaultEndpointsProtocolhttps;AccountNamexxx;AccountKeyyyy); CloudTableClient 类是 Windows Azure Table Service 客户端的逻辑表示我们需要使用它来配置和执行对 Table storage 的操作。 CloudTableClient cloudTableClient storageAccount.CreateCloudTableClient(); CloudTable 类表示一张数据表。 我们需要创建一个实例去引用 Table storage 中的一张表测试用的表名叫”MyLogTable”。 CloudTable logTable cloudTableClient.GetTableReference(MyLogTable); // 如果不确定表是否被创建过可以调用CreateIfNotExists方法。 logTable.CreateIfNotExists(); 这样在后面的操作中就可以确保 MyLogTable 表是存在的有了 logTable 对象我们就可以向表中插入数据了。 但是等等好像少了点什么。 我们开篇第一句中就说明了Table storage 存储的是结构化的数据所以我们还要先定义存储的数据的类型。 定义日志类 在定义我们自己的数据类型时有一个强制性的要求必须继承自 TableEntity 类型 {public MyLogEntity() { }public MyLogEntity(string pkey, string rkey){this.PartitionKey pkey;this.RowKey rkey;}public DateTime LogDate { get; set; }public string LogMessage { get; set; }public string ErrorType { get; set; } } 在我们的设计中PartitionKey 用来存放产生日志的年份和月份(例如 201607)RowKey 用来存放产生日志的天和时分秒毫秒(例如 160934248492)日志数据主要是 LogDate, LogMessage 和 ErrorType。 把数据插入到Table storage 终于可以向表中插入数据了先试一下 DateTime now DateTime.Now; string partitionKey now.ToString(yyyyMM); string rowKey now.ToString(ddHHmmssffff); MyLogEntity logEntity new MyLogEntity(partitionKey, rowKey); logEntity.LogDate now; logEntity.LogMessage test message; logEntity.ErrorType error; // TableOperation类表示对一个表进行的操作可以插入一行或多行数据删除数据更新数据等。 TableOperation insertOperation TableOperation.Insert(logEntity); logTable.Execute(insertOperation); 看起来还不错我们用 Visual Studio 自带的 Cloud Explorer 查看一下 MyLogTable 中的内容 OK数据已经成功插入到 MyLogTable 表中接下来我们看看如何批量的插入数据。 TableBatchOperation batchOperation new TableBatchOperation(); for (int i 0; i 10; i) {DateTime now DateTime.Now;string partitionKey now.ToString(yyyyMM);string rowKey now.ToString(ddHHmmssffff);MyLogEntity logEntity new MyLogEntity(partitionKey, rowKey);logEntity.LogDate now;logEntity.LogMessage test message i.ToString();logEntity.ErrorType (i%2) 0 ? error : warning;batchOperation.Insert(logEntity);Thread.Sleep(10); } logTable.ExecuteBatch(batchOperation); 这次我们把 TableOperation 类换成了 TableBatchOperation 类然后一次插入十条数据。去检查一下结果OK十条数据全部插入成功 下面让我们把循环中的10改成200试试 怎么收到一个 InvalidOperationException 呢看看红框中的内容原来批量操作是有一些限制的 1 每个批量操作的数据上限是100条记录。 2 每个批量操作中的数据都必须保持相同的 partition key。 请大家在使用批量操作时务必注意这些限制条件 查询操作 对于日志数据的操作最重要的就是查询我们通过几个具体的用例来介绍 Table storage 的查询操作。 1. 查询所有的记录 这是最简单的查询方法一般是想要导出全部数据时才会这么干 TableQueryMyLogEntity query new TableQueryMyLogEntity(); foreach (MyLogEntity entity in logTable.ExecuteQuery(query)) {Console.WriteLine({0}\t{1}\t{2}\t{3}, entity.PartitionKey, entity.RowKey, entity.LogMessage, entity.ErrorType); } 2.查询某年的某个月的记录 要查询某个月的所有记录也是比较容易的因为我们设计的 PartitionKey 就代表了某个月份 TableQueryMyLogEntity query new TableQueryMyLogEntity().Where(TableQuery.GenerateFilterCondition(PartitionKey, QueryComparisons.Equal, 201607)); foreach (MyLogEntity entity in logTable.ExecuteQuery(query)) {//... } 请注意 TableQuery.GenerateFilterCondition 方法我们创建了一个过滤条件PartitionKey 等于“201607”。这个查询会把所有 PartitionKey 为“201607”的记录都找到 3.查询某一条记录 如果我们已经知道了一条记录的 PartitionKey 和 RowKey就可以通过这两个条件直接查询到这条记录的详情 TableQueryMyLogEntity query new TableQueryMyLogEntity().Where(TableQuery.CombineFilters(TableQuery.GenerateFilterCondition(PartitionKey, QueryComparisons.Equal, 201607),TableOperators.And,TableQuery.GenerateFilterCondition(RowKey, QueryComparisons.Equal, 161148372454))); foreach (MyLogEntity entity in logTable.ExecuteQuery(query)) {//... } 这次我们使用了组合条件只用到了条件运算操作 TableOperators.And 和 QueryComparisons.Equal当然你也可以尝试其它的条件类型。唯一要注意的就是 PartitionKey 和 RowKeyQueryComparisons 的操作对象都是字符串。 我们还需要更多的查询条件比如查询某一天产生的所有日志。在 MyLogTable 表中这需要查询以”xx”字符串开头的 RowKey。这部分知识我会单独在一篇文章中和大家分享相关内容因为它并不像看起来的那么简单。 接下来我们介绍如何更新和删除日志表中的数据这里只是借用日志表介绍更新和删除操作。 更新记录 TableOperation retrieveOperation TableOperation.RetrieveMyLogEntity(201607, 161148372454); TableResult retrievedResult logTable.Execute(retrieveOperation); MyLogEntity updateEntity (MyLogEntity)retrievedResult.Result;if (updateEntity ! null) {updateEntity.LogMessage new log message;TableOperation updateOperation TableOperation.Replace(updateEntity);logTable.Execute(updateOperation); } 以上操作我们先用 TableOperation.Retrieve 方法获得一条数据的详情然后更新它的 LogMessage 属性最后使用 TableOperation.Replace 方法把新的内容更新的到 Table storage 中。 删除记录 删除一条记录和更新一条记录是基本一样的步骤不同点是把 TableOperation.Replace 方法换成 TableOperation.Delete 方法 TableOperation retrieveOperation TableOperation.RetrieveMyLogEntity(201607, 161148372454); TableResult retrievedResult logTable.Execute(retrieveOperation); MyLogEntity deleteEntity (MyLogEntity)retrievedResult.Result; if (deleteEntity ! null) {TableOperation deleteOperation TableOperation.Delete(deleteEntity);logTable.Execute(deleteOperation); } 删除表 删除表和创建表一样简单(可比删除一条记录容易多了) logTable.DeleteIfExists(); 总结本文通过对一个日志表的操作介绍了 Azure Table storage 的一个典型应用场景和基本的使用方法从操作的代码上看和传统的 sql 表操作差别还是挺大的。希望本文对朋友们了解 Azure Table storage 能有所帮助。 相关阅读 最全的Windows Azure学习教程汇总 Azure Blob Storage 基本用法 -- Azure Storage 之 Blob Azure Queue Storage 基本用法 -- Azure Storage 之 Queue Azure File Storage 基本用法 -- Azure Storage 之 File Azure Table storage 基本用法 -- Azure Storage 之 Table 本文是由葡萄城技术开发团队发布转载请注明出处葡萄城官网 了解低门槛高效率的快速开发工具请前往活字格低代码开发平台 了解可嵌入您系统的在线 Excel请前往SpreadJS纯前端表格控件 了解可嵌入式的商业智能和报表软件请前往Wyn Enterprise

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站推荐深圳有做网站的公司

指令 描述 举例 set 存入单个数据 set number 1 setex 存入并设置过期时间 setex key 30 value setnx 不存在则存入,实现分布式锁 setnx key value msetnx 不存在则批量存入,原子性操作 msetnx key1 value1 key2 value2 有一个key存在则整个语句插入失败…

免费自助建站源码网站建设2018需要什么

Kotlin Flow 是 Kotlin 协程库中的一个组件,它提供了处理异步数据流的能力。Kotlin Flow 类似于 RxJava 中的 Observable,但它完全基于 Kotlin 协程设计,使得异步流的操作变得更加简单和直观。 Flow 是冷流(cold stream&#xff…

具有价值的微网站建设网站流量数据查询

参考文章:https://blog.csdn.net/Edwinwzy/article/details/129580636 虚拟机启用共享文件夹后,/mnt/hgfs下面为空,使用 vmware-hgfsclient 查看设置的共享文件夹名字也是为空。 解决方法: 1. 重新安装vmware tools. 在菜单…

网站建设管理ppt模板建立传媒公司网站

题目链接: 10进制 VS 2进制http://www.nowcoder.com/share/jump/437195121691738172415 描述 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们称B为A的二进制逆序数。 例如对于十进制…

新沂网站设计做网站网页需要什么软件

TODO:Go语言goroutine和channel使用TODO:Go语言goroutine和channel使用 goroutine是Go语言中的轻量级线程实现,由Go语言运行时(runtime)管理.使用的时候在函数前面加"go"这个 ...翻译:使用 ASP.NET MVC 4, EF,…

企业网站建设制作多少钱番禺网站建设公司哪家好

【题目链接】 洛谷 P1151 子数整数 【题目考点】 1. 循环:数位分离 2. 数字组合 【解题思路】 解法1:取出三个三位数字 对于一个五位数字 a 1 a 2 a 3 a 4 a 5 a_1a_2a_3a_4a_5 a1​a2​a3​a4​a5​ s u b 1 a 1 a 2 a 3 sub_1a_1a_2a_3 sub1​…

房地产集团网站建设单页网站欣赏

计算机网络——物理层(宽带接入技术) 什么是宽带有线带宽接入xDSLADSL 技术ADSL 的大部分组成 光纤同轴混合网(HFC 网)机顶盒与电缆调制解调器(set-top box) FTTx 技术光配线网 ODN (Optical Distribution …

微网站开发方案模板惠州seo建站

简介:研发效能提升不知从何下手、一头雾水?阿里资深技术专家一文为你揭秘研发效能提升的系统方法。 注:本文是对云栖大会何勉分享内容的整理 这几年“研发效能”一直是热词,很多组织都会启动研发效能提升专项。我与其中的很多有过…

专门做相声的网站嵌入式是什么

我们安装完毕Android Studio之后,创建第一个项目,我们想要使用模拟器进行运行,但是当我们启动模拟器的时候却发现无法启动,而且出现了错误信息。 首先我们要知道错误信息是什么? 提示信息的意思是说“avd系统路径找不…

培训网站项目ppt怎么做装修公司十大排行榜

下面将用这两个栗子来讲解本文的内容,将用到的软件:SPSS、EXCEL 一、我们先用特征根判别法判断模型的平稳性。 特征根判别法呢,最主要的就是写出模型的差分方程,然后求出其特征根,若其特征根在单位圆内,…

网站百度收录变少电商app开发多少钱

1逻辑实现 2加上myinput 3判断myinput 调整元素 4

网站下载的视频怎么变成本地视频龙华网站建设-信科网络

创建一个配置文件(例如config.ini),在里面存储你的token。使用Python的configparser模块来读取配置文件。创建一个模块(例如api_token.py),它将负责从配置文件读取token,并且该模块可以被其他脚…

上海建设钢结构工程网站网站开发软件是什么专业

SymPy库常用函数 简介 本文抄于https://www.cnblogs.com/baby123/p/6296629.html SymPy是一个符号计算的Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码简 洁、易于理解和扩展。它完全由Python写成,不依赖于外部库。SymPy支持符号计算…

如何加强精神文明网站建设内容成都pc网站建设

简述 操作路径如下: 作用:通过逐步增加线程数来模拟用户并发访问。配置:设置This group will start、First,wait for 、Then start、Next , add等参数。使用场景:模拟逐步增长的并发访问,观察应用程序的性能变化。优点:适用于测试应用程序在逐步增加负载下的性能表现。…

云南哪有网站建设报价的滕建建设集团网站

短视频电商源码是目前电商行业中非常火热的一个新兴领域,它通过短视频内容和电商商品的结合,为用户提供了一种新的购物体验。下面将介绍短视频电商源码的优势以及软件架构。 首先,短视频电商源码具有以下几个优势: 1、创新的购物体…

郑州做网站企起宁波建设协会网站首页

文章目录 引子定义实现讨论与尾记 引子 置换表是记忆化搜索技术的应用,置换表保存了某一盘面的搜索结果。当博弈树搜索遇到相同的局面时可以调用这些信息来减少重复搜索。那么如何设计一个置换表的节点就显得比较重要,本文在经典的置换表节点增加一个显…

网站根目录在哪里苏州专业高端网站建设机构

第一步:安装虚拟机 1、安装 vagrant 本机是 mac, 但是这一步不影响,找对应操作系统的安装方式就行了。 vagrant 下载地址 brew install vagrant 2、下载 VirtualBox 虚拟机 VirtualBox 下载地址 找到对应系统下载,安装就可以。 尽量把…

怎样在门户网站做 推广wordpress文章显示不全

「在 JavaScript 中用 var, let, 以及 const 有什么差别?」是在前端、JavaScript 面试中常见的考题。在面试时可以先大方向地列点说出异同之处,然后再针对每一个点进行深入说明。以下是以第一人称撰写的参考拟答。 var, let, 以及 const 都是在 JavaScript 用来做变数宣告的…

用户等待网站速度重庆平台网站建设

与其说计算机改变了世界,不如说是计算机网络改变了世界。作为计算机网络通信实体之间的语言,网络通信协议对计算机正常通信起着极大的作用。 那么到底什么是网络协议与管理呢?今天给大家分享一份211页网络协议与管理文档,包含概念…

2021年建站赚钱俄罗斯做电商网站

基本思想 将原始图像的直方图分布转换为一个均匀分布的直方图,这样原图中的高频率亮度值会被展宽,而低频率亮度值则被压缩,从而达到增强图像对比度的效果。 计算过程 假设我们有一个灰度图像,其像素值范围从0到L-1(…