StretchDB : comment SQL Server 2016 joue avec l’hybridation des données
SQL Server 2016 sort officiellement ce 1er juin. L’occasion pour LeMagIT de donner un coup de projecteur sur StretchDB, une nouvelle fonction qui permet d’étendre la base et les données vers le Cloud.
Parmi les fonctions qui font leur apparition dans SQL Server 2016, dont la sortie officielle a été fixée à ce 1er juin par Microsoft, Stretch Database, aussi appelée StretchDB, a de quoi suscité l’intérêt. Avec cette fonction, la base peut à la fois exister sur site et partiellement dans le Cloud en tant qu’une base Azure SQL Database. Une entreprise peut exploiter StretchDB pour ainsi accroître la capacité de sa base sur site avec un environnement Cloud. Les données très sollicitées sont conservées sur des instances de SQL Server sur site, alors que StretchDB migre automatiquement les données rarement utilisées vers Azure. Elles y sont accessibles à la demande, en toute transparence pour l’utilisateur.
Mais pourquoi donc stocker certaines données en local et d’autres dans le Cloud ? Pour des raisons de coûts. Comme les systèmes de stockage d’entreprise peuvent s’avérer très couteux, il peut faire sens de n’utiliser ces baies performantes que pour les données les plus chaudes, et placer les données qui sont rarement exploitées et interrogées sur des systèmes moins couteux.
Pour débuter avec cette approche Cloud, les entreprises peuvent d’abord envisager y placer leurs sauvegardes, voire utiliser le Cloud dans le cadre d’une stratégie de reprise après sinistre, avec la fonction AlwaysOn Availability Group Replica.
Une réponse à la question : faut-il ou non supprimer certaines données
Généralement, les entreprises aimeraient bien pouvoir effacer leurs anciennes données - celles rarement utilisées. Toutefois, des contraintes d’ordre réglementaires ou encore métiers les empêchent d’agir de la sorte. Certaines d’entre elles archivent leurs données froides dans un format ou une application tiers, rendant au final leur accès plus difficile. Généralement, le propriétaire d’une entreprise est plus frileux à l’idée d’archiver ses données à cause de la quantité d’informations historiques à conserver. Leur approche est donc de tout garder, pour toujours. Les administrateurs SAN, de leur côté, cherchent toujours à augmenter la capacité et les performances de leur système. Ils encouragent ainsi à supprimer ou archiver les données. L’équipe en charge des bases de données se retrouve au milieu.
StretchDB peut donc être une réponse à ce problème. Une entreprise peut décider quelles tables sont étendues ou activer « remote_data_archive » : la paramètrage est effectué au niveau de la table, et non de la partition. Deux scénarii sont proposés avec cette première itération de StretchDB. Le premier : quand il existe déjà une archive dans la base de données que l’on peut étendre. Le second : quand il existe une table contenant des données chaudes ou froides, définie par l’entreprise en fonction de dates, voire de colonnes.
Il ne s’agit pas de placer uniquement des données dans le Cloud comme premier support. Si c’était le cas, stocker les données à distance n’aurait pas grand intérêt, sans disposer de ressources adéquates pour retourner les données demandées. Avec StretchDB, les ressources d’Azure SQL filtrent les données interrogées dans le Cloud.
Pas de modifications au niveau de l’application
Selon nos informations, une unique base Azure est limitée à 500 Go. Il est fort probable que la taille augmente dans le temps. Toutefois, StretchDB peut exploiter le sharding pour passer outre cette taille limite. Microsoft a annoncé qu’il allait rendre le dimensionnement Azure transparent, permettant d’étendre autant de données que besoin. Si une table est étendue, le Resource Governor peut aussi être déployé pour minimiser l’impact de la migration de données et accélérer le flux. Un bienfait dans les zones où les coûts réseaux sont sujets à de fortes variations.
Lors de la sortie d’une nouvelle version de SQL Server, certaines fonctions sont relativement faciles à implémenter et ne nécessitent pas de modifications de l’application. StretchDB fait partie de celles-ci. SQL Server comprend si la donnée interrogée est en local ou à distance et déclenche l’action.
Comme avec chaque fonction, des paramètres doivent être configurés, mais cela reste ici minimal. Des travaux ont aussi été réalisés sur les scenarii de sauvegarde et restauration afin de minimiser le transfert de données et le stockage pour la sauvegarde. Les scripts liés à la maintenance n’ont pas besoin d’être modifiés ; ni même les requêtes, car l’optimiseur est suffisamment intelligent pour s’adapter lorsque des données froides sont interrogées dans le Cloud.
Les entreprises peuvent gérer plus efficacement les coûts du stockage
Ici, il faut se rappeler que les données à distance sont considérées comme froides. Si la donnée doit être supprimée ou modifiée une fois étendue vers Azure, cela requiert des fonctions d’administration. Et cela affecte les sauvegardes et les indexes, lors d’une suppression ou modification.
Evidemment, parce que la donnée est distante, la latence sera accentuée lorsqu’on y accèdera. Le traitement de requêtes est aussi suffisamment intelligent pour interpréter si la donnée est en local, distante ou bien un mélange des deux.
StretchDB permet aux entreprises de gérer plus efficacement leurs coûts de stockage en conservant en local les données chaudes et froides dans le Cloud. Les utilisateurs choisissent les tables qui contiennent les données froides, soit dans leur intégralité ou par date spécifique, par exemple. Cette approche StretchDB est transparente pour les utilisateurs et les développeurs, et aucune modification de code n’ est nécessaire pour bénéficier de cette fonction. StretchDB est un bonne exemple d’approche hybride qui exploite à la fois des ressources en local et à distance au sein d’une même base de données.
A propos de l’auteur
Rick Heiges est un SQL Server MVP et architecte principal chez DB Best Technologies.
Traduit et adapté par la rédaction