Jss 2015 - Microsoft Stream analytics

44
#JSS2015 es journées SQL Server 2015 n événement organisé par GUSS @GUSS_FRANCE

Transcript of Jss 2015 - Microsoft Stream analytics

Page 1: Jss 2015 -  Microsoft Stream analytics

#JSS2015

Les journéesSQL Server 2015

Un événement organisé par GUSS

@GUSS_FRANCE

Page 2: Jss 2015 -  Microsoft Stream analytics

#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

#JSS2015

Merci à nos sponsors

Page 4: Jss 2015 -  Microsoft Stream analytics

#JSS2015

About me• Michel Hubert• Directeur Technique chez

Cellenza• MVP Azure• Microsoft P-Seller

Page 5: Jss 2015 -  Microsoft Stream analytics

#JSS2015

About me

• Georges Damien• Consultant chez Cellenza

Page 6: Jss 2015 -  Microsoft Stream analytics

#JSS2015

Démonstrateur

http://tinyurl.com/cellenza

Page 7: Jss 2015 -  Microsoft Stream analytics

#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

#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

#JSS2015

• Architecture lambda ?De quoi parle-t-on ?

Page 10: Jss 2015 -  Microsoft Stream analytics

#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

#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

#JSS2015

• Quels cas d’usage ?Big Data + Temps réel

Page 13: Jss 2015 -  Microsoft Stream analytics

#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

#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

#JSS2015

EVENT HUBLa « Master Data »

Page 16: Jss 2015 -  Microsoft Stream analytics

#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

#JSS2015

EventHubEvent Hub vs Topics / Queues

• Bus de messages

Topics / Queues Event Hub

Page 18: Jss 2015 -  Microsoft Stream analytics

#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

#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

#JSS2015

Publication de message .Net / AMQP

Page 21: Jss 2015 -  Microsoft Stream analytics

#JSS2015

Publication de message via HTTP<protocol>://<namespace>.servicebus.windows.net/<eventhubname>/publisher/<partitionkey>/messages

Page 22: Jss 2015 -  Microsoft Stream analytics

#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

#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

#JSS2015

IEventProcessor

Architecture Lambda

Page 25: Jss 2015 -  Microsoft Stream analytics

#JSS2015

IEventProcessor

Architecture Lambda

Page 26: Jss 2015 -  Microsoft Stream analytics

#JSS2015

demoEVENT HUB

Page 27: Jss 2015 -  Microsoft Stream analytics

#JSS2015

STREAM ANALYTICSComplex Event Processing

Page 28: Jss 2015 -  Microsoft Stream analytics

#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

#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

#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

#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

#JSS2015

Stream Analytics

Page 33: Jss 2015 -  Microsoft Stream analytics

#JSS2015

Stream Analytics

Page 34: Jss 2015 -  Microsoft Stream analytics

#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

#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

#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

#JSS2015

• Plusieurs sorties :– SELECT *

INTO outputLogFROM SensorReadings

– SELECT *INTO outputTempAlertFROM SensorReadingsWHERE temp > 75

Exemples de requêtes

Page 38: Jss 2015 -  Microsoft Stream analytics

#JSS2015

demoANALYSE DE LOGSStream Analytics

Page 39: Jss 2015 -  Microsoft Stream analytics

#JSS2015

demoDÉTECTION DE FRAUDESStream Analytics

Page 40: Jss 2015 -  Microsoft Stream analytics

#JSS2015

demoANALYSE DE TWEETSStream Analytics

Page 41: Jss 2015 -  Microsoft Stream analytics

#JSS2015

Des questions ?• Michel Hubert• [email protected]

m• @michelhubert• Georges Damien• Georges.damien@Cellenza.

com• @georges_damien

Page 42: Jss 2015 -  Microsoft Stream analytics

#JSS2015#JSS2015

Les évaluations des sessions,c’est important !!

http://GUSS.Pro/jss

Page 43: Jss 2015 -  Microsoft Stream analytics

#JSS2015

Merci à nos volontaires…

Page 44: Jss 2015 -  Microsoft Stream analytics

#JSS2015#JSS2015