#JSS2015
Les journées
SQL Server 2015
Un événement organisé par GUSS
@GUSS_FRANCE
#JSS2015
Les journées
SQL Server 2015
Un événement organisé par GUSS
Architecture Lambda -Stream Analytics
Michel Hubert
G...
#JSS2015
Merci à nos sponsors
#JSS2015
About me
• Directeur Technique chez Cellenza
• MVP Azure
• Microsoft P-Seller
#JSS2015
About me
#JSS2015
Démonstrateur
http://tinyurl.com/cellenza
#JSS2015
• « La meilleure façon de prédire le futur
est de regarder le passé et le présent ! »
Introduction
• Pourquoi les...
#JSS2015
• Historiquement, le BigData est une suite logique de la
B.I.
• Donc on a appliqué les techniques de la B.I. : Le...
#JSS2015
• Architecture lambda ?
De quoi parle-t-on ?
#JSS2015
• La base de données classique :
• Ex d’une action utilisateur (changement d’adresse) :
• Chaque update écrase de...
#JSS2015
• Stockage immuable :
• La mort de l’update, vive l’insert !
• Toute autre information peut être dérivée/reconstr...
#JSS2015
• Quels cas d’usage ?
Big Data + Temps réel
#JSS2015
• Prenons un scénario Exemple :
– Site eCommerce / Retail
• Quels gains ?
• Analyse temps réel des comportements,...
#JSS2015
Réponse Microsoft
#JSS2015
EVENT HUB
La « Master Data »
#JSS2015
Azure Service Bus
Azure Service Bus
Relay
Queue
Topic
Notification Hub
Event Hub
NAT and Firewall Traversal Servi...
#JSS2015
EventHub
Event Hub vs Topics / Queues
• Bus de messages
Topics / Queues Event Hub
#JSS2015
Event Hub : Principe général
Architecture Lambda
Event
Producers
Azure Event Hub
> 1M Producers
> 1GB/sec
Aggrega...
#JSS2015
Event Hub : Envoi de données
Partition 1
Partition 2
Partition “n”
Event 1
PartitionKey=A
Event 1
PartitionKey=B
#JSS2015
Publication de message .Net / AMQP
#JSS2015
Publication de message via HTTP
<protocol>://<namespace>.servicebus.windows.net/<eventhubname>/publisher/<partiti...
#JSS2015
Event Hub : Consommation de données
Partition 1
Partition 2
Partition “n”
Event 1
Pkey = A
Event 2
Pkey = B Recei...
#JSS2015
Event Hub : Consommation multiple
Partition 1
Partition 2
Partition “n”
Consumer Group C
Callback for prtn. 6
Cal...
#JSS2015
IEventProcessor
Architecture Lambda
#JSS2015
IEventProcessor
Architecture Lambda
#JSS2015
EVENT HUB
#JSS2015
STREAM ANALYTICS
Complex Event Processing
#JSS2015
Données au repos
SELECT count(*) FROM ParkingLot
WHERE type = 'Auto'
AND color = 'Red'
Question
“Combien de voitu...
#JSS2015
Données en mouvement
La question est différente
“Combien de voitures rouges sont passées au marqueur 18A sur l’A-...
#JSS2015
L’avantage définitif
SELECT count(*) FROM A-10
WHERE Type = ‘Voiture’ and Color = ‘Rouge’
GROUP BY TumblingWindow...
#JSS2015
Agrégation temporelle – SQL Like
TumblingWindow(minute,5) HoppingWindow(minute, 10 , 5)
SlidingWindow(minute, 3)
...
#JSS2015
Stream Analytics
#JSS2015
Stream Analytics
#JSS2015
• Agrégation simple :
– SELECT sensorId, MIN(temp) as temp
FROM SensorReadings
TIMESTAMP BY time
GROUP BY sensorI...
#JSS2015
• Agréagation plusieurs flux :
– SELECT s1.time, s1.dspl, s1.hmdt as previousHmdt, s2.hmdt as newHmdt, datediff(s...
#JSS2015
• Jointure avec table de référence :
– SELECT SensorReadings.sensorID, SensorReadings.temp
FROM SensorReadings
JO...
#JSS2015
• Plusieurs sorties :
– SELECT *
INTO outputLog
FROM SensorReadings
– SELECT *
INTO outputTempAlert
FROM SensorRe...
#JSS2015
ANALYSE DE LOGS
Stream Analytics
#JSS2015
DÉTECTION DE FRAUDES
Stream Analytics
#JSS2015
ANALYSE DE TWEETS
Stream Analytics
#JSS2015
Des questions ?
Michel.hubert@Cellenza.com
Georges.damien@Cellenza.com
#JSS2015#JSS2015
Les évaluations des sessions,
c’est important !!
http://GUSS.Pro/jss
#JSS2015
Merci à nos volontaires…
#JSS2015#JSS2015
Prochain SlideShare
Chargement dans…5
×

[JSS2015] Architectures Lambda avec Azure Stream Analytics

498 vues

Publié le

Présentation des architecture lambda et la réponse Microsoft dans Azure

Publié dans : Technologie
  • Soyez le premier à commenter

[JSS2015] Architectures Lambda avec Azure Stream Analytics

  1. 1. #JSS2015 Les journées SQL Server 2015 Un événement organisé par GUSS @GUSS_FRANCE
  2. 2. #JSS2015 Les journées SQL Server 2015 Un événement organisé par GUSS Architecture Lambda -Stream Analytics Michel Hubert Georges Damien
  3. 3. #JSS2015 Merci à nos sponsors
  4. 4. #JSS2015 About me • Directeur Technique chez Cellenza • MVP Azure • Microsoft P-Seller
  5. 5. #JSS2015 About me
  6. 6. #JSS2015 Démonstrateur http://tinyurl.com/cellenza
  7. 7. #JSS2015 • « La meilleure façon de prédire le futur est de regarder le passé et le présent ! » Introduction • Pourquoi les architectures lambda ?
  8. 8. #JSS2015 • Historiquement, le BigData est une suite logique de la B.I. • Donc on a appliqué les techniques de la B.I. : Le Batch • Ce n’est pas plus suffisant ! • Des flux de données à prendre en compte en temps-réel • Des historiques très volumineux qui recèlent de la valeur Introduction Pourquoi les architectures lambda ?
  9. 9. #JSS2015 • Architecture lambda ? De quoi parle-t-on ?
  10. 10. #JSS2015 • La base de données classique : • Ex d’une action utilisateur (changement d’adresse) : • Chaque update écrase des données précédentes ! Principe de base Architecture basée sur des données immuables UPDATE
  11. 11. #JSS2015 • Stockage immuable : • La mort de l’update, vive l’insert ! • Toute autre information peut être dérivée/reconstruite à partir de ces données brutes Principe de base • Architecture basée sur des données immuables
  12. 12. #JSS2015 • Quels cas d’usage ? Big Data + Temps réel
  13. 13. #JSS2015 • Prenons un scénario Exemple : – Site eCommerce / Retail • Quels gains ? • Analyse temps réel des comportements, • Calcul du Taux d’abandon de panier, • Prévision de stock • Détection de Fraude • Analyse d’une campagne marketing • Quels produits ne déclenchent pas d’achat ? Problème de stock ? De prix ? Scénario Architecture Lambda
  14. 14. #JSS2015 Réponse Microsoft
  15. 15. #JSS2015 EVENT HUB La « Master Data »
  16. 16. #JSS2015 Azure Service Bus Azure Service Bus Relay Queue Topic Notification Hub Event Hub NAT and Firewall Traversal Service Request/Response Services Unbuffered with TCP Throttling Many publishers and many consumers to communicate over a FIFO like channel. (Competing consumers and Queue-based Load leveling scenarios) Pub / Sub communication channel. Each Consumer subscribes to a copy of message High-scale notification distribution Most mobile push notification services Millions of notification targets
  17. 17. #JSS2015 EventHub Event Hub vs Topics / Queues • Bus de messages Topics / Queues Event Hub
  18. 18. #JSS2015 Event Hub : Principe général Architecture Lambda Event Producers Azure Event Hub > 1M Producers > 1GB/sec Aggregate Throughput Up to 32 partitions via portal, more on request Partitions Direct PartitionKey Hash Consumer Group(s) Receivers AMQP 1.0 Credit-based flow control Client-side cursors Offset by Id or Timestamp
  19. 19. #JSS2015 Event Hub : Envoi de données Partition 1 Partition 2 Partition “n” Event 1 PartitionKey=A Event 1 PartitionKey=B
  20. 20. #JSS2015 Publication de message .Net / AMQP
  21. 21. #JSS2015 Publication de message via HTTP <protocol>://<namespace>.servicebus.windows.net/<eventhubname>/publisher/<partitionkey>/messages
  22. 22. #JSS2015 Event Hub : Consommation de données Partition 1 Partition 2 Partition “n” Event 1 Pkey = A Event 2 Pkey = B Receiver 6 Receiver 2 Worker “n” Receiver 1 Receiver “n” Worker 1
  23. 23. #JSS2015 Event Hub : Consommation multiple Partition 1 Partition 2 Partition “n” Consumer Group C Callback for prtn. 6 Callback for prtn. 2 Worker “n” Callback for prtn. 1 Callback “n” Worker 1Consumer Group B Callback for prtn. 6 Callback for prtn. 2 Worker “n” Callback for prtn. 1 Callback “n” Worker 1Consumer Group A Worker “n” Callback for prtn. 6 Callback for prtn. 2 Callback for prtn. 1 Callback “n” Worker 1
  24. 24. #JSS2015 IEventProcessor Architecture Lambda
  25. 25. #JSS2015 IEventProcessor Architecture Lambda
  26. 26. #JSS2015 EVENT HUB
  27. 27. #JSS2015 STREAM ANALYTICS Complex Event Processing
  28. 28. #JSS2015 Données au repos SELECT count(*) FROM ParkingLot WHERE type = 'Auto' AND color = 'Red' Question “Combien de voitures rouges dans le parking?” Répondre avec une base de donnée relationnelle Marcher jusqu’au parking Compter les véhicules qui sont: Rouge, Voiture
  29. 29. #JSS2015 Données en mouvement La question est différente “Combien de voitures rouges sont passées au marqueur 18A sur l’A-10 dans la dernière heure?” Répondre avec une base de donnée relationnelle S’arrêter, faire se garer toutes les voitures qui arrivent pendant l’heure dans un parking, les compter Pas la meilleure des solutions…
  30. 30. #JSS2015 L’avantage définitif SELECT count(*) FROM A-10 WHERE Type = ‘Voiture’ and Color = ‘Rouge’ GROUP BY TumblingWindow(hour, 1) La question est différente “Combien de voitures rouges sont passées au marqueur 18A sur l’A-10 dans la dernière heure?”
  31. 31. #JSS2015 Agrégation temporelle – SQL Like TumblingWindow(minute,5) HoppingWindow(minute, 10 , 5) SlidingWindow(minute, 3) https://msdn.microsoft.com/fr-fr/library/azure/dn834998.aspx
  32. 32. #JSS2015 Stream Analytics
  33. 33. #JSS2015 Stream Analytics
  34. 34. #JSS2015 • Agrégation simple : – SELECT sensorId, MIN(temp) as temp FROM SensorReadings TIMESTAMP BY time GROUP BY sensorId, SlidingWindow(second, 5) HAVING MIN(temp) > 75 Exemples de requêtes
  35. 35. #JSS2015 • Agréagation plusieurs flux : – SELECT s1.time, s1.dspl, s1.hmdt as previousHmdt, s2.hmdt as newHmdt, datediff(ss, s1.time, s2.time) as secondsApart FROM SensorData s1 timestamp by time JOIN SensorData s2 timestamp by time ON s1.dspl = s2.dspl AND DATEDIFF(s, s1, s2) BETWEEN 0 AND 5 WHERE (s2.hmdt - s1.hmdt >= .1) or (s1.hmdt - s2.hmdt >= .1) Exemples de requêtes
  36. 36. #JSS2015 • Jointure avec table de référence : – SELECT SensorReadings.sensorID, SensorReadings.temp FROM SensorReadings JOIN thresholdRefData ON SensorReadings.sensorID = thresholdRefData.sensorID WHERE SensorReadings.temp > thresholdRefData.value Exemples de requêtes
  37. 37. #JSS2015 • Plusieurs sorties : – SELECT * INTO outputLog FROM SensorReadings – SELECT * INTO outputTempAlert FROM SensorReadings WHERE temp > 75 Exemples de requêtes
  38. 38. #JSS2015 ANALYSE DE LOGS Stream Analytics
  39. 39. #JSS2015 DÉTECTION DE FRAUDES Stream Analytics
  40. 40. #JSS2015 ANALYSE DE TWEETS Stream Analytics
  41. 41. #JSS2015 Des questions ? Michel.hubert@Cellenza.com Georges.damien@Cellenza.com
  42. 42. #JSS2015#JSS2015 Les évaluations des sessions, c’est important !! http://GUSS.Pro/jss
  43. 43. #JSS2015 Merci à nos volontaires…
  44. 44. #JSS2015#JSS2015

×