palais descongrèsParis7, 8 et 9février 2012
Vous êtes dans la salle 221M-222M
8 février 2012 – 17H30 - DAT211  Construire des bases de données qui  montent en charge avec SQL Azure  Database Federatio...
Agenda de la session  Introduction au concept SQL Azure Federation  Démonstrations  Retour d’expérience terrain
Agenda de la session  Introduction au concept SQL Azure Federation  Démonstrations  Retour d’expérience terrain
SQL Azure Federations  Les Federations sont des objets SQL Azure !    au même titre que les tables, triggers…  Permettent...
Montée en charge illimitée   Assurer une montée en charge applicative horizontale   Ne jamais être à court en stockage   ...
Un modèle élastique   Une exploitation complète du “paiement à l’usage”   Etendre et réduire la plateforme utilisée sans a...
Des modèles de services efficaces   Modèle de service classique « On Premise »     Un service par base de données   Les m...
Architecture SQL Azure Federations  Federations:    Sont contenues dans une base de données utilisateur    Plusieurs féd...
Architecture SQL Azure Federations    Federation Distribution Key        est la clé utilisée pour distribuer la donnée. E...
Architecture SQL Azure Federations  Federated Tables    Ce sont les tables hébergeant les données distribuées  Reference ...
Architecture SQL Azure Federations  Operations de repartitionnement:   Les Federations autorisent un repartitionnement de...
Architecture SQL Azure Federations  Le routage en fonction des données :    Les applications se connectent toujours à la ...
Architecture SQL Azure Federations   Filtrer les connexions FILTERING=ON     Permet de se connecter à l’ tomic Unit reche...
Architecture SQL Azure Federations   Filtrer les connexions FILTERING=OFF     Permet d’accéder à la totalité du membre   ...
Central et Reference Tables    Central Table                    Reference Tables
Federated Tables    Federated Key
DEMOCréation et utilisation d’une Federation
CodeCREATE FEDERATION ClientFederation(CID INT RANGE)GOUSE FEDERATION ClientFederation(CID = 0) WITHFILTERING=OFF, RESETGO...
CodeCREATE TABLE [dbo].[Client] (       [Client_ID] [int] NOT NULL,       [Client_Prenom] [nvarchar](50) NULL,       [Clie...
CodeUSE FEDERATION ClientFederation(CID = 1342) WITHFILTERING=OFF, RESETGO-- Renvoie tous les clients du membre contenant ...
Code USE FEDERATION ROOT WITH RESET GO ALTER FEDERATION ClientFederation SPLIT AT(CID = 20000) GO ALTER FEDERATION ClientF...
Agenda de la session  Introduction au concept SQL Azure Federation  Démonstrations  Retour d’expérience terrain
Contexte Projet   Site web marchand    Croissance de 100% par an    1 000+ connexions simultanées (pic)    200 000 visi...
Etapes de Migration 1. Déterminer les fédérations        Identifier les entités atomiques        Identifier les tables l...
La Solution implémentée
Fédérations  Deux Fédérations    Une fédération pour les Clients, adresses, code postaux    Une fédération pour les Pani...
Remplacement des types Identity  Utiliser pour les n° de commande  Suppression des propriétés Identity dans les tables  Gé...
Code Transact-SQL  Scripts de création du schéma      Base de données Root         Créer la base         Créer la fédér...
Code Client  Enterprise Library 5.0  Le block Data des EntLib a été étendu pour créer un héritage  de bases fédérées      ...
Points clés à retenir   Une analyse fonctionnelle et technique des bases de données est   indispensable     Optionnelleme...
Conclusion  Les Federations v1 permettent des applications orientées données  avec    Une montée en charge illimitée    ...
Les Federations v2   Les requêtes “Fan-out” sur plusieurs membres   Un versionning des schémas pour permettre un contrôle ...
Liens utiles   Blog Cihan Biyikoglu - SQL Azure   http://blogs.msdn.com/b/cbiyikoglu   SQL Azure Federation Data Migration...
Prochain SlideShare
Chargement dans…5
×

Construire des bases de données qui montent en charge avec SQL Azure Database Federations

345 vues

Publié le

Découvrez dans cette session comment utiliser au mieux les SQL Azure Database Federations pour une montée en charge linéaire de vos bases de données SQL Azure. Les Federations vont notamment vous permettre de repenser vos architectures applicatives afin de tirer pleinement parti des capacités d’élasticité quasi-illimitée offertes par l’offre Cloud de Microsoft, et tout ceci en vous garantissant le meilleur rapport qualité-prix possible.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
345
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
4
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Construire des bases de données qui montent en charge avec SQL Azure Database Federations

  1. 1. palais descongrèsParis7, 8 et 9février 2012
  2. 2. Vous êtes dans la salle 221M-222M
  3. 3. 8 février 2012 – 17H30 - DAT211 Construire des bases de données qui montent en charge avec SQL Azure Database Federations Pascal Belaud - Architecte SQL Server Division Grandes Entreprises - Microsoft France http://belaud.fr Pascal Mercier - Consultant Senior Division Services - Microsoft France pascal.mercier@microsoft.com
  4. 4. Agenda de la session Introduction au concept SQL Azure Federation Démonstrations Retour d’expérience terrain
  5. 5. Agenda de la session Introduction au concept SQL Azure Federation Démonstrations Retour d’expérience terrain
  6. 6. SQL Azure Federations Les Federations sont des objets SQL Azure !  au même titre que les tables, triggers… Permettent d’augmenter la quantité de vos données grâce à  Une montée en charge illimitée avec le meilleur rapport prix/performance  Une élasticité matérielle dynamique et accessible en ligne  Une simplification de l’approche Multi-Services
  7. 7. Montée en charge illimitée Assurer une montée en charge applicative horizontale Ne jamais être à court en stockage  Aller au delà de la limite des 150 Go d’une base de données SQL Azure  Aller au delà de la limite d’un nœud pour vos capacités de calcul  Augmenter de manière linéaire les capacités de calcul  Utiliser un stockage virtuellement illimité
  8. 8. Un modèle élastique Une exploitation complète du “paiement à l’usage” Etendre et réduire la plateforme utilisée sans arrêt* de production  Construire des applications qui grossissent en même temps que leurs activités au fil du temps  Gérer les activités en forte croissance ou en dents de scie Quelques nœuds Beaucoup de nœuds
  9. 9. Des modèles de services efficaces Modèle de service classique « On Premise »  Un service par base de données Les modèles de services Cloud  Une base de données par service ne peut marcher pour de grosses activités  Utilisent plusieurs services par base de données et plusieurs bases de données par service pour une flexibilité complète Les modèles de services:  Un service par base de données  Plusieurs services par base de données  Plusieurs bases de données par service
  10. 10. Architecture SQL Azure Federations Federations:  Sont contenues dans une base de données utilisateur  Plusieurs fédérations possibles dans une même base de données Federation Members:  Une Federation utilise des bases de données (systèmes) SQL Azure pour assurer le stockage des données réparties  Ces bases de données s’appellent des membres de Federation  Les membres de Federation couvrent la totalité des données d’une Federation et sont gérés dynamiquement et automatiquement par leur Federation Federations CustomerFederationeration ClientFederation CustomerFederationeration Ventes Federation Root Membres de Federation
  11. 11. Architecture SQL Azure Federations Federation Distribution Key  est la clé utilisée pour distribuer la donnée. Elle est définie par un label, un type de données et un type de distribution Atomic Unit  représente une instance de la Federation Key. Une Atomic Unit contient tous les enregistrements associés à la clé de Federation Federation Root  est la base de données qui héberge la Federation et toutes les Membre: Range [1000, 2000) informations de distribution Federations AU PK=1605 AU PK=1615 AU PK=1625 AU PK=1305 AU PK=1315 AU PK=1325 AU PK=1005 AU PK=1015 AU PK=1025 CustomerFederationeration ClientFederation CustomerFederationerationVentes Federation Root Membres de Federation Atomic Units
  12. 12. Architecture SQL Azure Federations Federated Tables  Ce sont les tables hébergeant les données distribuées Reference Tables  Ce sont les tables contenant des données de référence. Elles sont dupliquées sur tous les membres de Federation Central Table  Ce sont les tables créées dans la Federation Root pour des informations peu accédées comme des metadata. Central Tables Federations Federated Tables Reference Tables CustomerFederationeration CustomerFederationeration ClientFederation Ventes Federation Root Membres de Federation
  13. 13. Architecture SQL Azure Federations Operations de repartitionnement:  Les Federations autorisent un repartitionnement des données en ligne sans arrêt* de la production ce qui permet une montée de capacité dynamique sereine alter federation ClientFederation split at (CID=7000) CustomerFederationeration ClientFederation CustomerFederationeration Ventes Range Distribution [min,1000, 2000, 3000 ….. 5000, 6000, Max]
  14. 14. Architecture SQL Azure Federations Le routage en fonction des données :  Les applications se connectent toujours à la Federation Root puis exécute une commande use federation pour se connecter à l’Atomic Unit recherchée  Alors que les données sont repartitionnées, les Atomic Unit se déplacent physiquement mais pour autant le routage garantit une connexion au bon membre de Federation systématiquement use federation ClientFederation (CID=5105) CustomerFederationeration ClientFederation CustomerFederationeration Ventes Range Distribution [min,1000, 2000, 3000 ….. 5000, 6000, Max]
  15. 15. Architecture SQL Azure Federations Filtrer les connexions FILTERING=ON  Permet de se connecter à l’ tomic Unit recherchée A uniquement  Les données de référence restent visible  Aucun changement possible de l’état global du membre : pas de DDL, pas de DML sur les données de référence  Très utile pour la plupart des scénarios applicatifs  Aucun risque de dispersion des données : le moteur injecte le bon predicat permettant de les éviter use federation ClientFederation (CID=5105) with FILTERING=ON
  16. 16. Architecture SQL Azure Federations Filtrer les connexions FILTERING=OFF  Permet d’accéder à la totalité du membre  Accès non restreint au membre : identique à se connecter directement à la base de données système  Les ordres DDL, DML et l’accès à tous les Atomic Units du membre autorisés  Très utile pour les tâches d’administration comme le déploiement de nouveaux schémas  Permet les requêtes « fan-out », cad les requêtes simultanées sur de multiples Atomic Units use federation ClientFederation (CID=5105) with FILTERING=OFF
  17. 17. Central et Reference Tables Central Table Reference Tables
  18. 18. Federated Tables Federated Key
  19. 19. DEMOCréation et utilisation d’une Federation
  20. 20. CodeCREATE FEDERATION ClientFederation(CID INT RANGE)GOUSE FEDERATION ClientFederation(CID = 0) WITHFILTERING=OFF, RESETGOSELECT * FROM sys.federationsSELECT * FROM sys.federation_membersSELECT * FROM sys.federation_member_distributionsGO
  21. 21. CodeCREATE TABLE [dbo].[Client] ( [Client_ID] [int] NOT NULL, [Client_Prenom] [nvarchar](50) NULL, [Client_Nom] [nvarchar](50) NULL, [Client_DateNaissance] [date] NULL, [Client_Commune] [nvarchar](50) NULL, [Client_CodePostal] [nvarchar](5) NULL, CONSTRAINT [PK_Client] PRIMARY KEY CLUSTERED ([Client_ID] ASC) WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF)) FEDERATED ON (CID = [Client_ID])GO
  22. 22. CodeUSE FEDERATION ClientFederation(CID = 1342) WITHFILTERING=OFF, RESETGO-- Renvoie tous les clients du membre contenant le client1342SELECT * FROM [dbo].[Client]GOUSE FEDERATION ClientFederation(CID = 1342) WITHFILTERING=ON, RESETGO-- Renvoie le client 1342 uniquementSELECT * FROM [dbo].[Client]GO
  23. 23. Code USE FEDERATION ROOT WITH RESET GO ALTER FEDERATION ClientFederation SPLIT AT(CID = 20000) GO ALTER FEDERATION ClientFederation SPLIT AT(CID = 40000) GO ALTER FEDERATION ClientFederation SPLIT AT(CID = 60000) GO ALTER FEDERATION ClientFederation SPLIT AT(CID = 80000) GO
  24. 24. Agenda de la session Introduction au concept SQL Azure Federation Démonstrations Retour d’expérience terrain
  25. 25. Contexte Projet Site web marchand  Croissance de 100% par an  1 000+ connexions simultanées (pic)  200 000 visites / jour Bases de données  300 000 articles  Bases de données de 1 Go à 10 Go Objectifs  Migrer les bases de données vers SQL Azure + Federation  Rester compatible avec le backoffice
  26. 26. Etapes de Migration 1. Déterminer les fédérations  Identifier les entités atomiques  Identifier les tables liées  Identifier les tables de références 2. Déterminer les clés de fédérations  PK = FedKey ?  Algorithme de calcul de la FedKey ? 3. Identifier les propriétés dépendantes des bases de données non supportées dans les tables fédérées  Identity  Timestamp 4. Mesurer les impacts dans le code  Transact-SQL  Client .Net  Framework d’accès aux données ?
  27. 27. La Solution implémentée
  28. 28. Fédérations Deux Fédérations  Une fédération pour les Clients, adresses, code postaux  Une fédération pour les Paniers Clés de fédérations  Une colonne indépendante pour la clé  Type int  Compatible avec les PK existantes  Deux algorithmes de calcul  Distribution (clients)  Composé distribution + aléatoire (paniers)
  29. 29. Remplacement des types Identity Utiliser pour les n° de commande Suppression des propriétés Identity dans les tables Génération de séquences transverses aux web roles  Identity pool / web role  Garantie sans doublon  Développement d’un framework spécifique  La table des meta-données des pools d’identities sont dans la base de données Root
  30. 30. Code Transact-SQL Scripts de création du schéma  Base de données Root  Créer la base  Créer la fédération  Créer le schéma  Bases de données fédérées  Créer le schéma  Script de Split (optionnel)
  31. 31. Code Client Enterprise Library 5.0 Le block Data des EntLib a été étendu pour créer un héritage de bases fédérées Enterprise Library Database Développement SqlAzureDatabase Spécifique ClientFederatedDatabase BasketFederatedDatabase
  32. 32. Points clés à retenir Une analyse fonctionnelle et technique des bases de données est indispensable  Optionnellement, conserver une base de données non fédérée Identifier les entités éligibles à la fédération  Détourage fonctionnel Autant que possible, éviter les requêtes ventilées (fan out request)  Sinon, optimiser les requêtes en utilisant Task Parallel Library (TPL) Une analyse d’impact sur le code de l’application client est inévitable  l’impact peut-être limité en utilisant  Une technique d’Ioc (MEF, Unity)  Des switchs logiciels
  33. 33. Conclusion Les Federations v1 permettent des applications orientées données avec  Une montée en charge illimitée  Le meilleur rapport prix-performance avec une élasticité dynamique et en ligne  Une simplification des modèles multi services Les Federations enrichissent l’expérience des développeurs  Une gestion robuste des connexions avec un routage des connections grâce à l’annuaire des Federations  Des connexions filtrées pour simplifier les modèles de programmation Une expérience de l’administration enrichie  Opération de redistribution des données en ligne
  34. 34. Les Federations v2 Les requêtes “Fan-out” sur plusieurs membres Un versionning des schémas pour permettre un contrôle plus fin sur les mises à jour de schéma
  35. 35. Liens utiles Blog Cihan Biyikoglu - SQL Azure http://blogs.msdn.com/b/cbiyikoglu SQL Azure Federation Data Migration Wizard http://sqlazurefedmw.codeplex.com Federations Utility for SQL AZURE http://federationsutility-weu.cloudapp.net/Default.aspx

×