Session des Journées SQL Server 2014 - Stéphane Goudeau
---
Cette session permettra de découvrir l’ensemble des nouveautés du service Azure SQL Database : tiers Basic/Standard/premium, modèle de mesure des performances (Database Throughput Unit : DTU), mécanismes de backup-restore et de geo-replication.
2. #JSS2014
Les journées
SQL Server 2014
Un événement organisé par GUSS
Azure SQL Database, un an après…
Benjamin Talmard
Stéphane Goudeau
Microsoft France DX
9. #JSS2014
• Pour une nouvelle base
– Utilisation d’un niveau de référence
– Suivi des métriques sys.resource_stats sur la base master
– Prise de décision
Choix du niveau de performance
10. #JSS2014
• Pour une base existante
– Suivi des métriques sys.resource_stats (pourcentages normalisés par rapport à une S2)
– Prise de décision
– Optimisation
Choix du niveau de performance
14. #JSS2014
• Nouvelle preview à venir fin 2014
– Surface fonctionnelle plus grande
– Performances améliorées
• In-memory columnstore
• Parallel queries
• Rebuild d’index > 2Go
• Nouveau tiers pensé pour les éditeurs
– Besoin d’un grand nombre de base de données
– Gestion des ressources pour l’ensemble de ces bases
Azure SQL Database : futur
16. #JSS2014
• Sauvegardes automatiques
dans Azure Storage
• Logs transactionnels
périodiques (5 mn)
• Copie d’une base sans
interruption de service
• API REST, PowerShell ou
portail Azure
• Politique de rétention des
sauvegardes:
– Basic (max 7 jours)
– Standard (max 14 jours)
– Premium (max 35 jours)
« Self-service restore »
Geo- replicated
Restore from backup
SQL Database
Backups
sabcp01bl21
Azure Storage
sabcp01bl21
17. #JSS2014
Geo- replicated
SQL Database
Backups
sabcp01bl21
Azure Storage
sabcp01bl21
Restore to any
Azure region
• Disponible pour les
services Basic, Standard et
Premium
• Bâti sur le « self-service
restore »
• Restauration de la base
sur n’importe quelle
région
« Basic Recovery »
18. #JSS2014
Geo- replicated
• Inclus en Standard
• Création d’un serveur secondaire
passif
• Réplication dans une région
Azure prédéfinie
• Réplication automatique et
asynchrone des données
• API REST, PowerShell ou portail
Azure
• RTO < 24h, RPO < 1h
« Geo-réplication »
19. #JSS2014
• Activation self service en mode
Premium
• Création de serveurs secondaires
accessibles en lecture (max 4)
• Réplication sur n’importe quelle
région Azure
• Réplication automatique
asynchrone des données
• REST API, PowerShell ou Portail
Azure
• RTO < 1h, RPO < 5mn
• Possibilité Bascule déclenchée par
l’utilisateur
« Active Geo-Replication »
Up to 4
secondaries
22. #JSS2014
Partitionner les données : pourquoi faire ?
• L’application excède les limites d’une base de données :
– Capacité
– Performance
– Localisation
– Isolation
• Types d’application :
– Single tenant
– Multi-tenant
– Modèle hybride
23. #JSS2014
Terminologie
(1)
Database
(2) Sharding Key
. . .
(3) Shard Map
Manager
(4)
Shard
(4) Shard
(5) Shard Set
(6) Sharded Table
(7) Reference Table
(8) Shardlet
Customer ID Name
1 Alice
2 Bob
Customer Table
Data Center ID DC Name
1 Boston
2 Miami
Data Center Table
24. #JSS2014
Partitionnement : principes
• Deux types de « shard maps »
– Range : valeurs contigües
– List : valeurs explicites
• Quatre types de « sharding
keys »
– INT, BIGINT, GUID, VARBINARY
[shards_global]
sid smid server database
1 1 Server1 DB1
2 1 Server1 DB2
[shardmaps_global]
smid name
1 RangeShardMap
[shard_mappings_global]
mid smid min max Sid
1 1 0 100 1
2 1 100 200 2
Shard Set
DB1
[0-100)
. . .DB2
[100-200)
DB3
[200-300)
DB4
[300-400)
DB5
[400-500)
DB6
[500-600)
DBn
[n – n+100)
Shard Map
Manager
27. #JSS2014
Data Dependent Routing : Requête mono-
Shard
// Get a routed connection for a given shardingKey
using (SqlConnection conn = ShardMap.OpenConnectionForKey(
shardingKey,
connectionString /* Credentials Only */,
ConnectionOptions.Validate /* Validate */ ));
{
using (SqlCommand cmd = new SqlCommand()
{
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM customers WHERE customer ID = 104";
SqlDataReader sdr = cmd.ExecuteReader();
// Now consume results from the data reader…
}
}
28. #JSS2014
Data Dependent Routing : Requête multi-
Shards
Client App
MSQ APIs
SELECT count(*)
FROM customers
UNION ALL result set
DB1
[0-100)
. . .DB2
[100-200)
DB3
[200-300)
DB4
[300-400)
DB5
[400-500)
DB6
[500-600)
DBn
[n – n+100)
Application
Developer
Shard Map
Manager
29. #JSS2014
Data Dependent Routing : Requête multi-
Shards
using (MultiShardConnection conn = new MultiShardConnection(m_shardMap.GetAllShards(null),
MultiShardTestUtils.GetTestSqlCredential()))
{
using (MultiShardCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT count(*) FROM customers";
cmd.CommandType = CommandType.Text;
cmd.Policy = MultiShardPolicy.PartialResults;
using (MultiShardDataReader sdr = cmd.ExecuteReader(includeShardNameColumn: true))
{
while (sdr.Read())
{
// Now consume results from the data reader…
}
}
}
}
32. #JSS2014
• Un service de base de données relationnelles entièrement géré par Microsoft
• Des fonctions natives assurant la continuité de service et la scalabilité de
bases de données hautement disponibles, sécurisées, sauvegardées avec le
minimum d’administration
SQL Database Service : Synthèse
Elasticité et performance : six niveaux de performance disponibles dans trois niveaux de fonctionnalités. Possibilité de changer de niveau en fonction du besoin. Meilleure isolation des ressources. Tarification simplifiée.
Continuité de service : une série de fonctionnalité pour la reprise d’activité allant de la restauration simple d’une sauvegarde à la Géo-Réplication active en lecture pour les applications critiques.
Familier et managé : les outils de managements sont familiers et les APIs d’administration complètes mais simples. Service totalement géré par Microsoft sans maintenance nécessaire.
Création d’un base vide jss2014test pour montrer les différentes étapes
Visualisation des statistiques sur une base Standard utilisée depuis quelques heures, via le portail, et via Azure SQL Database Management
Même stratégie sur une base business, via Azure SQL Database Management
Changement de tiers via une commande T-SQL, en PowerShell ou via le portail, sur la base jss2014test
Predictable performance levels
Programmatic scale-out
Dashboard views of DB metrics
Self-service restore
Disaster recovery
Microsoft-backed SLAs
Familiar toiols
Programmatic
Self-managed