首页 > 代码库 > Azure SQL Database (18) Stretch Database 概览
Azure SQL Database (18) Stretch Database 概览
《Windows Azure Platform 系列文章目录》
Stretch Databse使用场景:
笔者有一个快消品用户,每天产生几百万笔订单数据。这些订单数据保存在一个运算能力非常强大的数据中心物理机里。
对于这些订单数据来说,分为两类:
1.热数据:最近1个月产生的订单数据。
对于热数据来说,企业需要对这些数据进行统计分析,方便进行查询。
2.冷数据:过去1-3年产生的订单数据。
在传统IDC运维中,经常会对冷数据进行备份归档,比如采用磁带库等。
但是归档的数据其实是离线状态的,也就是说,如果我们需要对这些冷数据进行查询的时候,还需要从磁带库中将数据恢复到数据库里,再进行查询。
在这种情况下,我们就可以使用Azure SQL Stretch Database功能,将数据表中的某些数据行(或者所有数据行),迁移到Azure SQL Database里
采用Azure SQL Database Stretch Database的优势有以下几点:
1.降低冷数据的查询成本
Stretch Databse支持把传统SQL Server数据库的温数据和冷数据,迁移到云端数据库中。
不同于传统的磁带库备份,你的数据库备份内容都是一直在线的,可以对云上的冷数据执行读取操作。
相比传统IDC保存这些冷数据来说,使用云上的Stretch Database成本更低。
2.无需修改查询语句和应用
使用Stretch Database的时候,不需要修改查询语句和应用。
当我们执行查询语句的时候,本地的SQL Server自己会决定是在本地执行查询语句,还是在云端执行查询语句。用户无需了解数据是保存在本地和云端。
3.降低本地数据运维成本
因为大部分的温数据和冷数据都保存在云端,我们在本地数据中心,不需要购买大量的存储以保留这些历史数据。
4.保证数据安全
本地SQL Server支持的安全特性,比如Row Level Security (RLS)和其他安全安全特性,在云端Stretch Database也同时支持。
在以下场景中,我们需要使用Azure Stretch Database:
(1)需要对历史数据保存很长一段时间
(2)有时需要对历史数据进行查询
(3)前端应用需要访问这些历史数据,且前端应用不会进行重构
(4)减少购买存储的费用
哪些数据库支持Azure Stretch Database?
我们建议用户使用SQL Server 2016数据库,来启动Stretch功能。
另外,我们建议下载SQL Server 2016 Upgrade Advisor,来定义哪些数据表可以迁移到Stretch Database。
Stretch Database限制:
https://azure.microsoft.com/en-us/documentation/articles/sql-server-stretch-database-limitations/
约束:
需要迁移的数据,如果包含Unique约束和Primary Key约束,则这些约束不会被启用
Uniqueness is not enforced for UNIQUE constraints and PRIMARY KEY constraints in the Azure table that contains the migrated data.
DML操作:
1.可以迁移到云端(但未迁移)的SQL数据,或者已经迁移到Stretch Database云端的SQL数据,无法执行UPDATE和DELETE操作。
参考资料:https://msdn.microsoft.com/en-us/library/dn935011.aspx
Azure SQL Database (18) Stretch Database 概览