jss 2015 - microsoft stream analytics
TRANSCRIPT
![Page 1: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/1.jpg)
#JSS2015
Les journéesSQL Server 2015
Un événement organisé par GUSS
@GUSS_FRANCE
![Page 2: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/2.jpg)
#JSS2015
Les journéesSQL Server 2015
Un événement organisé par GUSS
Architecture Lambda -Stream Analytics
Michel HubertGeorges Damien
![Page 3: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/3.jpg)
#JSS2015
Merci à nos sponsors
![Page 4: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/4.jpg)
#JSS2015
About me• Michel Hubert• Directeur Technique chez
Cellenza• MVP Azure• Microsoft P-Seller
![Page 5: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/5.jpg)
#JSS2015
About me
• Georges Damien• Consultant chez Cellenza
![Page 6: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/6.jpg)
#JSS2015
Démonstrateur
http://tinyurl.com/cellenza
![Page 7: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/7.jpg)
#JSS2015
• « La meilleure façon de prédire le futur est de regarder le passé et
le présent ! »
Introduction• Pourquoi les architectures lambda ?
![Page 8: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/8.jpg)
#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
IntroductionPourquoi les architectures lambda ?
![Page 9: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/9.jpg)
#JSS2015
• Architecture lambda ?De quoi parle-t-on ?
![Page 10: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/10.jpg)
#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 baseArchitecture basée sur des données
immuables
UPDATE
![Page 11: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/11.jpg)
#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
![Page 12: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/12.jpg)
#JSS2015
• Quels cas d’usage ?Big Data + Temps réel
![Page 13: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/13.jpg)
#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énarioArchitecture Lambda
![Page 14: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/14.jpg)
#JSS2015
Réponse MicrosoftPresentation and action
Storage andBatch Analysis
StreamAnalysis
IngestionCollectionEvent production
Event hubs
Cloud gateways(web APIs)
Field gateways
Applications
Legacy IOT (custom protocols)
Devices
IP-capable devices(Windows/Linux)Low-power devices (RTOS)
Search and query
Data analytics(Power BI)
Web/thick client dashboardsEvent Hubs
SQL DB
HD Insight
Power BI
Storage Blobs
Stream Analytics
Devices to take action
MachineLearning
more to come…
![Page 15: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/15.jpg)
#JSS2015
EVENT HUBLa « Master Data »
![Page 16: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/16.jpg)
#JSS2015
Azure Service BusAzure Service
BusRelay
Queue
Topic
Notification Hub
Event Hub
NAT and Firewall Traversal ServiceRequest/Response ServicesUnbuffered with TCP ThrottlingMany 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 distributionMost mobile push notification servicesMillions of notification targets
![Page 17: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/17.jpg)
#JSS2015
EventHubEvent Hub vs Topics / Queues
• Bus de messages
Topics / Queues Event Hub
![Page 18: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/18.jpg)
#JSS2015
Event Hub : Principe général
Event Producers
Azure Event Hub
> 1M Producers> 1GB/sec Aggregate Throughput
Up to 32 partitions via portal, more on
request
Parti
tions
Direct
PartitionKeyHash
Consumer
Group(s)
Receivers
AMQP 1.0Credit-based flow controlClient-side cursorsOffset by Id or Timestamp
![Page 19: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/19.jpg)
#JSS2015
Event Hub : Envoi de donnéesChaque Event Hub a un nombre déterminé de partitionsChaque événement possède une clef de partition, assignée à une partition en sortie
Partition 1
Partition 2
Partition “n”
Event 1PartitionKey=
A
Event 1PartitionKey=
B
![Page 20: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/20.jpg)
#JSS2015
Publication de message .Net / AMQP
![Page 21: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/21.jpg)
#JSS2015
Publication de message via HTTP<protocol>://<namespace>.servicebus.windows.net/<eventhubname>/publisher/<partitionkey>/messages
![Page 22: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/22.jpg)
#JSS2015
Event Hub : Consommation de données
Partition 1
Partition 2
Partition “n”
Event 1Pkey = A
Event 2Pkey = B Receiver 6
Receiver 2
Worker “n”
Receiver 1Receiver “n”
Worker 1
Chaque consommateur (worker) se connecte à l’Event Hub, et reçoit les messagesOn met en place un receiver pour chacune des partitions attendues
![Page 23: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/23.jpg)
#JSS2015
Event Hub : Consommation multipleOn met en place des groupes de consommateurs lorsque plusieurs applications consomment un même flux
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
![Page 24: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/24.jpg)
#JSS2015
IEventProcessor
Architecture Lambda
![Page 25: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/25.jpg)
#JSS2015
IEventProcessor
Architecture Lambda
![Page 26: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/26.jpg)
#JSS2015
demoEVENT HUB
![Page 27: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/27.jpg)
#JSS2015
STREAM ANALYTICSComplex Event Processing
![Page 28: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/28.jpg)
#JSS2015
Données au repos
SELECT count(*) FROM ParkingLotWHERE type = 'Auto' AND color = 'Red'
Question“Combien de voitures rouges dans le parking?”
Répondre avec une base de donnée relationnelleMarcher jusqu’au parkingCompter les véhicules qui sont: Rouge, Voiture
![Page 29: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/29.jpg)
#JSS2015
Données en mouvementLa 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 relationnelleS’arrêter, faire se garer toutes les voitures qui arrivent pendant l’heure dans un parking, les compter
Pas la meilleure des solutions…
![Page 30: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/30.jpg)
#JSS2015
L’avantage définitif
SELECT count(*) FROM A-10WHERE 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?”
![Page 31: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/31.jpg)
#JSS2015
Agrégation temporelle – SQL LikeTumblingWindow(minute,5) HoppingWindow(minute, 10 , 5)
SlidingWindow(minute, 3)
https://msdn.microsoft.com/fr-fr/library/azure/dn834998.aspx
![Page 32: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/32.jpg)
#JSS2015
Stream Analytics
![Page 33: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/33.jpg)
#JSS2015
Stream Analytics
![Page 34: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/34.jpg)
#JSS2015
• Agrégation simple :
– SELECT sensorId, MIN(temp) as tempFROM SensorReadingsTIMESTAMP BY timeGROUP BY sensorId, SlidingWindow(second, 5)HAVING MIN(temp) > 75
Exemples de requêtes
![Page 35: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/35.jpg)
#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 timeJOIN SensorData s2 timestamp by timeON s1.dspl = s2.dsplAND DATEDIFF(s, s1, s2) BETWEEN 0 AND 5WHERE (s2.hmdt - s1.hmdt >= .1) or (s1.hmdt - s2.hmdt >= .1)
Exemples de requêtes
![Page 36: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/36.jpg)
#JSS2015
• Jointure avec table de référence :
– SELECT SensorReadings.sensorID, SensorReadings.tempFROM SensorReadingsJOIN thresholdRefDataON SensorReadings.sensorID = thresholdRefData.sensorIDWHERE SensorReadings.temp > thresholdRefData.value
Exemples de requêtes
![Page 37: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/37.jpg)
#JSS2015
• Plusieurs sorties :– SELECT *
INTO outputLogFROM SensorReadings
– SELECT *INTO outputTempAlertFROM SensorReadingsWHERE temp > 75
Exemples de requêtes
![Page 38: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/38.jpg)
#JSS2015
demoANALYSE DE LOGSStream Analytics
![Page 39: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/39.jpg)
#JSS2015
demoDÉTECTION DE FRAUDESStream Analytics
![Page 40: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/40.jpg)
#JSS2015
demoANALYSE DE TWEETSStream Analytics
![Page 41: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/41.jpg)
#JSS2015
Des questions ?• Michel Hubert• [email protected]
m• @michelhubert• Georges Damien• Georges.damien@Cellenza.
com• @georges_damien
![Page 42: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/42.jpg)
#JSS2015#JSS2015
Les évaluations des sessions,c’est important !!
http://GUSS.Pro/jss
![Page 43: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/43.jpg)
#JSS2015
Merci à nos volontaires…
![Page 44: Jss 2015 - Microsoft Stream analytics](https://reader036.vdocuments.mx/reader036/viewer/2022081512/58aea5211a28abd43a8b5f6d/html5/thumbnails/44.jpg)
#JSS2015#JSS2015