[SQL] – Real-Time Datawarehouse and Reporting Solutions

Speaker: Carlos Bossy – Durée : 75mn – Niveau : 200

Objectif de la session

  • Ne pas impacter les systèmes sources
  • Processer uniquement le données fraiches pas plus
  • Ce que SQL Server peut faire pour vous

Ne pas impacter les systèmes sources

Pour être le plus réactif et capter le changement de vos données sources utilisez :

  • Replication
  • CDC (Change Data Capture)
  • SSIS

Il existe d’autres solutions (Data Vault, Triggers, Caching, Procactive Caching, ROLAP ….) que nous ne verrons pas dans cette session.

Description du Pattern (Replication/CDC/ETL)

Utilisation de la Réplication et du CDC

  • Répliquez les données sources dans un ODS   => utilisez la réplication
  • Capter le changement des données sur votre ODS => activez le Change Data Capture
  • Alimentez l’entrepôt, via SSIS,  à partir de l’ODS et faire de l’incrémental sur les données fraichement modifiées en utilisant le CDC qui a capté les modifications effectuées
  • Traitez uniquement les partitions et les dimensions du cube pour lesquels des données ont été modifiées

Réplication

Les étapes de la réplication transactionnelle :

  • select des objets à répliquer,
  • Création du snpashot (on a la même table dans la base de réplication que la base source);
  • Continuité (afin de s’assurer que dans la base de réplication on a toujours les mêmes données qu’à la source)
  • Background process

La  réplication en quelques mots :

  • facile à maintenir,
  • très peu de latence,
  • pas de filtre,
  • changer la Souscrpitpeur à partir du Publisher,
  • Faites bien attention lorsque que vous voulez modifier le Subscriber

Faites attention sur des proc stocks qui mettre à jour plusieurs millions de lignes. Il est préférable d’exécuter la proc stock sur les deux bases (source et répliquée) en stoppant la réplication car une mise à jour massive de données source peut cascher la réplication.

Change Data Capture

Le CDC en quelques mots :

  • Capte toutes les opérations d’insertion, mise  à jour, suppression
  • Possède  son propre schéma
  • Fournit des fonctions SQL pour manipuler les données modifiées.

Intégration de Données

Les enjeux de l’intégration de données dans un Real-Time environnent

  • Exécutions en continue
  • Traiter les modifications
  • Combiner cd avec données statiques
  • Construire des check de validation de données

Démo

La démo est faite sur AdventureWorks2012

Mise en place de la réplications sous SSMS :

  • Création de publication : Replication -> Local Publication  (on déroule le wizard, le type de publication est Transcational et on sélectionne les objets qu’on veut répliquer, création du snapshot,)
  • Création de souscription  : Replication -> Local Subscription (on déroule le wizard, création de la base de réplication (ODS), la panifaction est paramétrée en Run continously pour avoir du temps réel)

Mise en place du CDC sur la base de replication:

  • sp_cdc_enable_table : on spécifie la  table pour laquelle on veut capter le changement
  • On créé une table fonction permettant de récupérer les données modifiées sur la table « espionnée »

On crée la base DWH

  • Création des dim/fact tables
  • Création des tables de staging (qui seront alimentées en truncate/insert)
  • Mise en place d’une proc stock avec un MERGE STATEMENT permettant d’alimenter la table de staging (oops une proc stock)

Création et excution d’un package SSIS permettant :

  • d’alimenter les tables de stating (via la proc stock)
  • De cleaner les tables de CDC
  • Puis de charger les tables de l’entrepôt
  • Le tout avec une boucle infinie

Création d’un report SSRS sur nos données (directement sur l’entrepôt) qui est rafraîchit toutes les 5 min.

Création d’un script TSQL permettant de créer des transactions dans notre base sources et on l’exécute.

Et wouahhh çà marche. Les données se rafraichissent  (la latence est de 1 à 2 sec)

Conclusion

Description très intéressante d’une architecture permettant de répondre à des problématique des DWH temps (ou quasi) réel.

Viable d’après le speaker sur les systèmes sources transactionnel de plusieurs milliers de transactions à la sec.

Frédéric

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s