Azure Web: 数据库的创建与数据监控
介绍主题:Azure
大家都知道Azure云现在由于中国国策不一样,会有中国版Azure云和国际版Azure。
但是我们今天基于这个国际版的讲,因为我这个博客会比较international一点。(~o ̄3 ̄)~
Azure云到底是个什么东西?
平时经常说 Azure,Azure 云啊,云计算,云同步。人工智能,区块链 感觉啥都跟它能沾点边,那他到底是个什么东西嘛?
讲白了, Azure云 他就是一个服务平台。就是一个提供给你服务的地儿,你可以理解为你去一个饭店吃饭,你只管点菜,你点的宫保鸡丁这个菜(对应平台提供的一项服务),至于这道菜的鸡到底是山鸡还是乌鸡还是战斗鸡就都跟你没有关系了,你只管享受这道菜(服务),而他们只管把这道菜做到你想吃的味道(满足你的需求)就可以了,哪怕放点地沟油会更香呢....
简单提及一下我们今天会扯到的内容:
1. 如果创建SQL Databse,以及创建过程中可能会遇到的问题
2. 一些Azure衍生出来的关键字的基础概念
3. 多种方式连接到Azure SQL Datebase
4. 如何通过指令快速的将刚刚创建的数据库关联到你的Web App
5. 通过Metrics 监控数据变化
首先进入我们创建SQL Database页面
如果你还没有服务器,那么你也可以选择创建一个Server,Emmm....地域嘛...可以适当拓宽一下我们大海外市场...
创建过程中你会看到 Resource Group和elastic pool
1. Resource Group:
问:这个资源组是做什么用的呢?
答:比如说你的承包商分配给你做一个具体项目,这个项目再Azure云上,分配者肯定不会将Azure云的整个服务订阅都给你 他会给你一个资源组 然后这个资源组里面会包含你做的这个项目的所有需要的资源。
2. Elastic Pool
问:这弹性池又是神毛玩意呢?
答:在云的时代就有一个典型的问题存在:所有应用几乎都会有峰值和低谷。而单一数据库一旦分配,资源就已经提供,没有高峰和低谷的区别。那么如何解决这样的问题呢。通常有两个选项:(1) 基于高峰使用情况过度设置资源,因此需要支付额外的费用,或者 (2) 为了节省成本而采用低配,但在高峰期间会出现性能下降而导致客户满意度降低。
弹性数据库就是为了解决这样的问题而诞生。弹性池通过确保数据库在需要时获得所需的性能资源来解决此问题。它们在可预测的预算内提供简单的资源分配机制。
注意:在选择到collation的时候记得看一下,修改为支持中文的排序规则,比如Chinese_PRC_CI_AS, 不然你存一些中文数据会导致乱码或者其他显示问题
而且....一旦创建就没法修改了哟!👇
现在数据库创建完毕了,让我们开始玩弄他....
我们可以进入我们新建的datebase(由于创建新的数据库要额外付费...于是先用了老的将就一下吧╮(╯▽╰)╭)
那么我们可以通过哪些方式连接并操作我们的数据库嘞?
1. 直接在Azure云控制台中进入我们的sqldatabase
点击 Query editor,选择Edit Data 👇,当然你也可以直接New Query使用你的sql语句新建表,插入数据...
2. 进入如下的路径,通过万能IDE: Visual Studio 连接到你的数据库
Hmmm... 有那味儿了...
3. 通过SSMS 连接并操作数据库
至于如何找到你的Server name嘛....
其中一种办法是进入从 resource explorer中找到对应的datebase 找到数据库的服务名称以及其他信息
4. 当然你也可以选择Azure Data Studio 来连接操作数据库(这里不做介绍了)
那么如何快速的把我们的WebApp 关联到这个数据库呢?
假设这个时候我们已经有一个web应用了(你可以使用Visual Studio 创建一个简单的.NET CORE Web App)
打开VisualStudio nuget 终端
指令中输入:
Install-Package Microsoft.EntityframeworkCore.SqlServer
Install-Package Microsoft.EntityframeworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
Scaffold-DbContext -Force "Server=tcp:azure-demo20190826110333dbserver.database.windows.net,1433;Initial Catalog=Azure-Demo20190826110333_db;Persist Security Info=False;User ID={your_username};Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models/DataModels
(这里的连接字符串可以直接Setting中的Connection String中找到哦)
接下来你可以开放创建一个简单的接口访问你的数据库....
当你操作了几次你的数据库后,你希望能够看到Data IO情况
我们可以点击Metrics来查看它:
数据太少?尝试写一个脚本去增加数据库访问量吧:
打开powershell执行脚本,模拟不规律的访问:
while($true) { $URL = "https://azuredemo201920190830124510.azurewebsites.net/fetch-data" Invoke-WebRequest -Uri $URL #$rand = get-random #if($rand%2 -eq 0) #{ #invoke-webrequest -uri "https://azuredemo201920190830124510.azurewebsites.net/fetch-data" #} # }
我们的数据是不是变的更加可观了呢。
当然如果希望你一进入Azure就能看到数据库的访问情况,你也可以将它钉到dashboard中....