沈云,资深工程师,微软解决方案专家
由于Azure更新较快,此文档基于Azure SQL V12 版本,文档时间:2017年9月24日
之前有很多朋友问,Azure SQL 与SQL Server有什么样的区别,我找了一些资料,也自己总结了一些内容。如下,但对于应用设计变化和分片处理等内容比较复杂,需要更深入的去探讨。这篇文章先把功能列表先给到大家。
1.基本对比
众所周知Azure SQL是属于PaaS层的服务,因此,在运维管理和使用上,都是数据库本身级别的使用和管理,我总结了几点如下:
项目SQL ServerAzure SQL数据库
数据库构建关注服务器、操作系统、数据库实例、数据库设计管理数据库设计
数据库管理服务器硬件、操作系统、数据库实例、备份、数据库管理等数据库基本管理
数据库调优服务器硬件、操作系统、数据库实例、数据库索引、分区、磁盘等服务器硬件、操作系统、数据库实例、数据库索引、分区、磁盘等数据库索引、设计
权限操作系统级别数据库级别
成本硬件、操作系统、SQL、管理成本无硬件和管理成本
网络安全配备防火墙、安全管理设计已有免费防火墙
容量限制基本无限制,受限于本地硬件,最大512PB1TB
构架设计采用分区、文件分组等提高IO采用分片
应用设计理念范式和反范式的权衡采用横向扩展理念
容灾搭建Alwayson可设置异地复制
备份全备和日志备份自动备份
还原根据备份情况手动还原可以还原到任何时间还原点
全文检索支持不支持第三方断字符
Agent作业支持不支持
日志传送支持不支持
2. 应用设计变化
在应用设计上,云上的应用的理念应该向SaaS转换,需要设计多租户应用程序。
在多租户应用程序中,可以轻松将数据和工作负荷分区。 由于大多数请求发生在租户的限定范围内,因此可以将数据和工作负荷分区(例如,沿租户边界)。
多租户应用程序开发人员选择的设计模式通常是出于以下考虑因素:
租户隔离。开发人员需要确保租户不越权访问其他租户的数据。 这种隔离要求同时也针对其他属性,例如避开干扰性邻居、能够还原租户的数据,以及实现租户特定的自定义。
云资源成本。SaaS 应用程序需要具有成本竞争力。 多租户应用程序开发人员可能选择优化,降低云资源的使用成本,例如存储和计算成本。
简化 DevOps。多租户应用程序开发人员需要结合考虑隔离保护、维护和监视其应用程序与数据库架构的运行状况,以及排解租户的疑难问题。 应用程序开发与运营的复杂性直接导致成本增加和租户满意度难题。
伸缩性。以累加方式添加更多租户的能力,对于需要此能力的租户而言,这是 SaaS 运营成功不可或缺的能力。
常见的数据库模型设计实践:
租户各有数据库。每个租户都有自己的数据库。 租户特定的所有数据局限在该租户的数据库内,与其他租户及其数据隔离。
共享分片数据库。多个租户共享多个数据库中的一个。 使用分区策略(例如哈希、范围或列表分区),可将一组不同的租户分配到每个数据库。 这种数据分布策略通常称为分片。
共享单一数据库。单一数据库有时很大,包含按租户 ID 列区分的所有租户的数据。
3. 详细功能对比
下面是SQL Server 与Azure SQL数据库的详细功能的对比:
功能SQL ServerAzure SQL 数据库
活动异地复制不支持 - 请参阅 Always On 可用性组支持
始终加密支持支持 - 请参阅证书存储和 Key Vault
AlwaysOn 可用性组支持不支持 - 请参阅活动异地复制
附加数据库支持不支持
应用程序角色支持支持
自动缩放不支持支持 - 请参阅服务层
Azure Active Directory不支持支持
审核支持支持
BACPAC 文件(导出)支持支持
BACPAC 文件(导入)支持支持
备份支持不支持
内置函数支持大多数 - 请参阅 单个函数
更改数据捕获支持不支持
更改跟踪支持支持
排序规则语句支持支持
列存储索引支持仅限 Premium Edition
公共语言运行时 (CLR)支持不支持
包含的数据库支持支持
包含用户支持支持
控制流语言关键字支持支持
跨数据库查询支持部分 - 请参阅弹性查询
游标支持支持
数据压缩支持支持
数据库备份用户管理SQL 数据库服务管理
数据库邮件支持不支持
数据库镜像支持不支持
数据库配置设置支持支持
Data Quality Services (DQS)支持不支持
数据库快照支持不支持
数据类型支持支持
DBCC 语句支持大多数 - 请参阅单个语句
DDL 语句支持大多数 - 请参阅单个语句
DDL 触发器支持仅限数据库
分布式事务MS DTC仅限受限制的 SQL 数据库内方案
DML 语句支持大多数 - 请参阅 单个语句
DML 触发器支持支持
DMV全部部分 - 请参阅单个 DMV
弹性池不支持支持
弹性作业不支持 - 请参阅 SQL Server 代理不支持
弹性查询不支持 - 请参阅跨数据库查询支持
事件通知支持支持
表达式支持支持
扩展的事件支持部分 - 请参阅单个事件
扩展的存储过程支持不支持
文件和文件组支持仅限主文件组
文件流支持不支持
全文搜索支持不支持第三方断字符
函数支持大多数 - 请参阅单个函数
内存中优化支持仅限 Premium Edition
作业请参阅 SQL Server Agent(SQL Server 代理)不支持
JSON 数据支持支持支持
语言元素支持大多数 - 请参阅单个元素
链接的服务器支持不支持 - 请参阅弹性查询
日志传送支持不支持 - 请参阅活动异地复制
Master Data Services (MDS)支持不支持
批量导入时的最小日志记录支持不支持
修改系统数据支持不支持
联机索引操作支持支持 - 按服务层限制的事务大小
运算符支持大多数 - 请参阅单个运算符
数据库时间点还原支持支持
Polybase支持不支持
基于策略的管理支持不支持
谓词支持大多数 - 请参阅单个谓词
R 服务支持
资源调控器支持不支持
RESTORE 语句支持不支持
从备份还原数据库支持仅限从内置备份还原
行级别安全性支持支持
语义搜索支持不支持
序列号支持支持
服务中转站支持不支持
服务器配置设置支持不支持 - 请参阅数据库配置选项
Set 语句支持大多数 - 请参阅单个语句
空间支持支持
SQL Server 代理支持不支持
SQL Server Analysis Services (SSAS)支持不支持 - 请参阅 Azure Analysis Services
SQL Server 集成服务 (SSIS)支持不支持 - 请参阅 Azure 数据工厂
SQL Server PowerShell支持支持
SQL Server 探查器支持不支持 - 请参阅扩展事件
SQL Server 复制支持仅限事务和快照复制订户
SQL Server Reporting Services (SSRS)支持不支持
存储过程支持支持
系统存储函数支持部分 - 请参阅单个函数
系统存储过程支持部分 - 请参阅单个存储过程
系统表支持部分 - 请参阅单个表
系统目录视图支持部分 - 请参阅单个视图
表分区支持支持 - 仅限主文件组
临时表本地和全局仅限本地
临时表支持支持
事务支持支持
变量支持支持
透明数据加密 (TDE)支持支持
Windows Server 故障转移群集支持不支持 - 请参阅活动异地复制
XML 索引支持支持
总结
以上列出了所有的功能列表, 可以点击链接看更详细的说明。
特别是不支持部分,需要深入了解。才能知道如何去使用Azure SQL。
立即访问http://market.azure.cn