SQLSaturday Paris 2016
Le chemin du CEP vers le Cloud
De StreamInsight à Azure Stream Analytics
Marius Zaharia
SQLSaturday Paris 2016
Merci à nos sponsors
SQLSaturday Paris 2016
Votre speaker : MARIUS ZAHARIA
 Senior Cloud Architect, Cellenza
 MVP Azure
 Azure Advisor
 P-SELLER Azure, Microsoft
 Community Manager, AZUG FR
SQLSaturday Paris 2016
De StreamInsight à Azure Stream Analytics
 Le traitement des évènements
 Besoins / scénarii type
 Moteurs CEP : la solution
 StreamInsight : le (premier) CEP de Microsoft
 Azure Stream Analytics : la réponse Cloud
 Principes de traitement temporal
 Modèles / patterns de requêtes
 StreamInsight et Stream Analytics : face à face
 Conclusion
SQLSaturday Paris 2016
Le traitement des évènements (rappel ?)
 Traitement des évènements : méthode de suivi et analyse des flux
d’information par rapport à des repères (évènements) dans le
temps.
 Traitement complexe des évènements (Complex Event Processing
- CEP) : traitement en temps réel
 De sources singulières ou multiples d’évènements
 Possiblement par rapport à des données de référence
 Pour identifier des modèles de répétition complexes
SQLSaturday Paris 2016
Besoins / scénarii type
 Monitoring de réseau
 Surveillance intelligente
 Gestion et analyse des risques
 Commerce électronique
 Suivi des ventes
 Détection des fraudes
 Routage de commandes
intelligent
 Analyse des coûts de transaction
 Objets connectés
(des capteurs aux voitures et avions)
 Gestion des stocks
 Analyse des flux web
 Alertes financières (portefeuille)
 Analyse de prix
 Gestion des données de marché
 Trading algorithmique
 Enrichissement de données
SQLSaturday Paris 2016
Moteurs CEP : la solution
 Moteurs de Complex Event Processing
 TIBCO BusinessEvents / StreamBase
 Oracle CEP
 WebSphere Business Events
 Sybase / SAP ESP
 Fujitsu
 … Microsoft ?
SQLSaturday Paris 2016
StreamInsight : le (premier) CEP de Microsoft
 Résolution du problème – en manière spécifique:
 Moteur d’exécution: embarqué (dans l’application) ou
serveur « standalone »
 Principes: application / adaptateurs in/out /
requête / event / « payload »
 Application CEP :
 Développement en .NET
 Requêtes : LINQ (en .NET)
 Adaptateurs développés sur mesure;
exposés en Web Services WCF
var payloadByRegion =
from i in inputStream
group i by i.Region into byRegion
from c in byRegion.HoppingWindow(
TimeSpan.FromMinutes(1),
TimeSpan.FromSeconds(2),
HoppingWindowOutputPolicy.ClipToWin
dowEnd)
select new {
Region = byRegion.Key,
Sum = c.Sum(p => p.Value)
};
SQLSaturday Paris 2016
 StreamInsight
SQLSaturday Paris 2016
Azure Stream Analytics : la réponse Cloud de Microsoft
 Evolution de la résolution:
 Application => Job Stream Analytics
 Adaptateurs => Entrées et sorties standardisées:
 Entrées: Event Hub, IoT Hub (flux), Blob Storage (flux et données de référence)
 Sorties: SQL Database, DocumentDB, Topic ou Queue Service Bus, Blob ou Table Storage,
PowerBI !
 Formats entrée/sortie: JSON, CSV, (Apache) Avro
 Requêtes: type « SQL »
 Provisionnement et démarrage très rapide et facile
 Scalabilité x1 – x50 (extensible à la demande)
 Possibilité de tester des différentes étapes
SQLSaturday Paris 2016
Azure Stream Analytics – portail(s)
SQLSaturday Paris 2016
 Azure Stream Analytics – dans le nouveau portail !
SQLSaturday Paris 2016
Principes de traitement temporal
 Temps applicatif vs temps de l’exécution
 Intervalles (fenêtres) de temps
 « Tumbling »
 « Hopping »
 « Sliding »
 « Snapshot »
 « Count »
 Agrégations (group by)
 Remise en ordre des évènements désordonnés
 Traitement des évènements tardive
SQLSaturday Paris 2016
Principes de requetage (focus sur Azure SA)
 Types de données:
 simples (bigint, nvarchar, float, datetime, …)
 Complexes : types tableau (array) ou enregistrement (record)
 Eléments de langage: SELECT, FROM, INTO, JOIN, GROUP, …
 Certains sont plus spécifiques : APPLY, Reference Data JOIN
 Gestion temporelle: TIMESTAMP BY, décalage de temps, remise en
ordre
 Fonctions (incluses): Scalar (Conversion, Date & Time, Mathematical,
String), Record, Analytic, Aggregate, Geospatial
 Autres fonctions pourront être créées sur mesure
SQLSaturday Paris 2016
Référence des constructs de langage (Azure SA)
Commandes
• SELECT
• FROM
• WHERE
• GROUP BY
• HAVING
• CASE
• JOIN
• UNION
Extensions de type fenêtre de temps
• Tumbling Window
• Hopping Window
• Sliding Window
• Duration
Fonctions Agrégates
• SUM
• COUNT
• AVG
• MIN
• MAX
Fonctions pour la mise à l’échelle
• WITH
• PARTITION BY
Fonctions date / temps
• DATENAME
• DATEPART
• DAY
• MONTH
• YEAR
• DATETIMEFROMPARTS
• DATEDIFF
• DATADD
Fonctions chaîne
• LEN
• CONCAT
• CHARINDEX
• SUBSTRING
• PATINDEX
Fonctions Statistiques
• VAR
• VARP
• STDEV
• STDEVP
SQLSaturday Paris 2016
Modèles / patterns de requêtes
 Trouver le premier évènement dans un intervalle
SQLSaturday Paris 2016
Modèles / patterns de requêtes
 Trouver le dernier
évènement dans un
intervalle
SQLSaturday Paris 2016
Modèles / patterns de requêtes
 Détecter l’absence d’évènements
SQLSaturday Paris 2016
Modèles / patterns de requêtes
 Envoi de sorties multiples
SQLSaturday Paris 2016
Modèles / patterns de requêtes
 Comptage
de valeurs uniques
SQLSaturday Paris 2016
StreamInsight et Stream Analytics : face à face
 Requetâge: LINQ (.NET) vs SQL-like
SQLSaturday Paris 2016
StreamInsight et Stream Analytics : face à face
• Intervalles temporels
StreamInsight Stream Analytics
Hopping vs Hopping
Tumbling vs Tumbling
- vs Sliding
Snapshot vs -
Count vs -
SQLSaturday Paris 2016
StreamInsight et Stream Analytics : face à face
• Entrées et Sorties
 StreamInsight: adaptateurs
customisés.
 On peut accepter tout type
d’entrée et format
 Nécessite du
développement spécifique
 Stream Analytics: multitude
de types d’entrées et
sorties, tous prêts à l’emploi
 Format prédéfini: CSV,
JSON, Arvo
 Moins flexible sinon: pas de
connectivité directement
SQLSaturday Paris 2016
StreamInsight et Stream Analytics : face à face
• Exécution / déploiement
 StreamInsight:
 Unité:
 « application StreamInsight »
 « process »
 Moteur embarqué dans une
application .NET, ou
 Serveur autonome (dans une
machine) accessible via web service
WCF
 Installation: via installer StreamInsight
 Déploiement: applicatif .NET (binaries,
service, endpoints, …)
 Stream Analytics:
 Unité: « job »
 Moteur hébergé dans Azure.
 Service en mode PaaS; pas de
visibilité sur le fonctionnement
interne
 Installation: rien à faire
 Déploiement: service Azure (portail,
PowerShell/CLI, REST API)
SQLSaturday Paris 2016
StreamInsight et Stream Analytics : face à face
• Extensibilité
 StreamInsight:
 Adaptateurs customisés
 Format entrée/sortie
customisable
 Encoding customisé
 User Defined Aggregates /
 Fonctions customisées
 Stream Analytics:
 Pas d’entrées / sorties
customisées
 Format fixe (JSON, CSV, Avro)
 Encoding: UTF-8
 Pas de UDF ou équivalent
 Fonctions custom Machine
Learning possibles (en preview)
SQLSaturday Paris 2016
StreamInsight et Stream Analytics : face à face
• Evolutivité
 StreamInsight:
 Produit « mature »
 Evolutions mineures
uniquement
 Stream Analytics:
 General availability
 Plein développement
 Très évolutif
 Mises à jour en rythme Cloud
SQLSaturday Paris 2016
StreamInsight et Stream Analytics : face à face
• Scalabilité, disponibilité
 StreamInsight:
 Embarqué: mono-fil
 Serveur autonome: parallélisme
en multi-fil possible (y compris
pour la même requête); gestion
manuelle
 Scalabilité: distribution multi-
machine possible
 HA: possible si déployé en
mode distribué
 Stream Analytics:
 Fonctionne potentiellement
en parallélisme; gestion
automatique
 Scalable via Unités de
streaming: 1-48
 HA: 99,9%
SQLSaturday Paris 2016
StreamInsight et Stream Analytics : face à face
• Cout d’utilisation
 Licence SQL Server
 StreamInsight Standard
 StreamInsight Premium =
SQL DataCenter
 A la consommation
 Per unité de streaming
 Per volume de données
traitées
SQLSaturday Paris 2016
StreamInsight et Stream Analytics : face à face
• Monitoring et dépannage
 StreamInsight:
 Monitoring et compteurs de
performance Windows;
 compteurs et alertes
customisés (développer)
 tooling spécifique dédié
(Flow Debugger);
 Stream Analytics
 Journaux (logs) – Portail
Azure + API
 Test des requêtes (upload
fichiers)
 Alertes configurables
SQLSaturday Paris 2016
Conclusions – StreamInsight vs Stream Analytics
 CEP : certainement un concept plein d’avenir (et de présent !)
 StreamInsight : bon pour des applications autonomes, voire
embarquées
 Nécessite un investissement de développement
 Stream Analytics : partout ou le cloud est une solution viable
 Onboarding et setup plus rapide
 Scalable et flexible
 Paiement à l’utilisation, cout d’entrée accesible
SQLSaturday Paris 2016
Questions ?
SQLSaturday Paris 2016
Merci à nos volontaires
SQLSaturday Paris 2016
Et en plus vous
pouvez gagner des
cadeaux !
Donnez votre avis sur les sessions :
http://GUSS.pro/sqlsat
SQLSaturday Paris 2016
Merci !

Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics

  • 1.
    SQLSaturday Paris 2016 Lechemin du CEP vers le Cloud De StreamInsight à Azure Stream Analytics Marius Zaharia
  • 2.
  • 3.
    SQLSaturday Paris 2016 Votrespeaker : MARIUS ZAHARIA  Senior Cloud Architect, Cellenza  MVP Azure  Azure Advisor  P-SELLER Azure, Microsoft  Community Manager, AZUG FR
  • 4.
    SQLSaturday Paris 2016 DeStreamInsight à Azure Stream Analytics  Le traitement des évènements  Besoins / scénarii type  Moteurs CEP : la solution  StreamInsight : le (premier) CEP de Microsoft  Azure Stream Analytics : la réponse Cloud  Principes de traitement temporal  Modèles / patterns de requêtes  StreamInsight et Stream Analytics : face à face  Conclusion
  • 5.
    SQLSaturday Paris 2016 Letraitement des évènements (rappel ?)  Traitement des évènements : méthode de suivi et analyse des flux d’information par rapport à des repères (évènements) dans le temps.  Traitement complexe des évènements (Complex Event Processing - CEP) : traitement en temps réel  De sources singulières ou multiples d’évènements  Possiblement par rapport à des données de référence  Pour identifier des modèles de répétition complexes
  • 6.
    SQLSaturday Paris 2016 Besoins/ scénarii type  Monitoring de réseau  Surveillance intelligente  Gestion et analyse des risques  Commerce électronique  Suivi des ventes  Détection des fraudes  Routage de commandes intelligent  Analyse des coûts de transaction  Objets connectés (des capteurs aux voitures et avions)  Gestion des stocks  Analyse des flux web  Alertes financières (portefeuille)  Analyse de prix  Gestion des données de marché  Trading algorithmique  Enrichissement de données
  • 7.
    SQLSaturday Paris 2016 MoteursCEP : la solution  Moteurs de Complex Event Processing  TIBCO BusinessEvents / StreamBase  Oracle CEP  WebSphere Business Events  Sybase / SAP ESP  Fujitsu  … Microsoft ?
  • 8.
    SQLSaturday Paris 2016 StreamInsight: le (premier) CEP de Microsoft  Résolution du problème – en manière spécifique:  Moteur d’exécution: embarqué (dans l’application) ou serveur « standalone »  Principes: application / adaptateurs in/out / requête / event / « payload »  Application CEP :  Développement en .NET  Requêtes : LINQ (en .NET)  Adaptateurs développés sur mesure; exposés en Web Services WCF var payloadByRegion = from i in inputStream group i by i.Region into byRegion from c in byRegion.HoppingWindow( TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(2), HoppingWindowOutputPolicy.ClipToWin dowEnd) select new { Region = byRegion.Key, Sum = c.Sum(p => p.Value) };
  • 9.
  • 10.
    SQLSaturday Paris 2016 AzureStream Analytics : la réponse Cloud de Microsoft  Evolution de la résolution:  Application => Job Stream Analytics  Adaptateurs => Entrées et sorties standardisées:  Entrées: Event Hub, IoT Hub (flux), Blob Storage (flux et données de référence)  Sorties: SQL Database, DocumentDB, Topic ou Queue Service Bus, Blob ou Table Storage, PowerBI !  Formats entrée/sortie: JSON, CSV, (Apache) Avro  Requêtes: type « SQL »  Provisionnement et démarrage très rapide et facile  Scalabilité x1 – x50 (extensible à la demande)  Possibilité de tester des différentes étapes
  • 11.
    SQLSaturday Paris 2016 AzureStream Analytics – portail(s)
  • 12.
    SQLSaturday Paris 2016 Azure Stream Analytics – dans le nouveau portail !
  • 13.
    SQLSaturday Paris 2016 Principesde traitement temporal  Temps applicatif vs temps de l’exécution  Intervalles (fenêtres) de temps  « Tumbling »  « Hopping »  « Sliding »  « Snapshot »  « Count »  Agrégations (group by)  Remise en ordre des évènements désordonnés  Traitement des évènements tardive
  • 14.
    SQLSaturday Paris 2016 Principesde requetage (focus sur Azure SA)  Types de données:  simples (bigint, nvarchar, float, datetime, …)  Complexes : types tableau (array) ou enregistrement (record)  Eléments de langage: SELECT, FROM, INTO, JOIN, GROUP, …  Certains sont plus spécifiques : APPLY, Reference Data JOIN  Gestion temporelle: TIMESTAMP BY, décalage de temps, remise en ordre  Fonctions (incluses): Scalar (Conversion, Date & Time, Mathematical, String), Record, Analytic, Aggregate, Geospatial  Autres fonctions pourront être créées sur mesure
  • 15.
    SQLSaturday Paris 2016 Référencedes constructs de langage (Azure SA) Commandes • SELECT • FROM • WHERE • GROUP BY • HAVING • CASE • JOIN • UNION Extensions de type fenêtre de temps • Tumbling Window • Hopping Window • Sliding Window • Duration Fonctions Agrégates • SUM • COUNT • AVG • MIN • MAX Fonctions pour la mise à l’échelle • WITH • PARTITION BY Fonctions date / temps • DATENAME • DATEPART • DAY • MONTH • YEAR • DATETIMEFROMPARTS • DATEDIFF • DATADD Fonctions chaîne • LEN • CONCAT • CHARINDEX • SUBSTRING • PATINDEX Fonctions Statistiques • VAR • VARP • STDEV • STDEVP
  • 16.
    SQLSaturday Paris 2016 Modèles/ patterns de requêtes  Trouver le premier évènement dans un intervalle
  • 17.
    SQLSaturday Paris 2016 Modèles/ patterns de requêtes  Trouver le dernier évènement dans un intervalle
  • 18.
    SQLSaturday Paris 2016 Modèles/ patterns de requêtes  Détecter l’absence d’évènements
  • 19.
    SQLSaturday Paris 2016 Modèles/ patterns de requêtes  Envoi de sorties multiples
  • 20.
    SQLSaturday Paris 2016 Modèles/ patterns de requêtes  Comptage de valeurs uniques
  • 21.
    SQLSaturday Paris 2016 StreamInsightet Stream Analytics : face à face  Requetâge: LINQ (.NET) vs SQL-like
  • 22.
    SQLSaturday Paris 2016 StreamInsightet Stream Analytics : face à face • Intervalles temporels StreamInsight Stream Analytics Hopping vs Hopping Tumbling vs Tumbling - vs Sliding Snapshot vs - Count vs -
  • 23.
    SQLSaturday Paris 2016 StreamInsightet Stream Analytics : face à face • Entrées et Sorties  StreamInsight: adaptateurs customisés.  On peut accepter tout type d’entrée et format  Nécessite du développement spécifique  Stream Analytics: multitude de types d’entrées et sorties, tous prêts à l’emploi  Format prédéfini: CSV, JSON, Arvo  Moins flexible sinon: pas de connectivité directement
  • 24.
    SQLSaturday Paris 2016 StreamInsightet Stream Analytics : face à face • Exécution / déploiement  StreamInsight:  Unité:  « application StreamInsight »  « process »  Moteur embarqué dans une application .NET, ou  Serveur autonome (dans une machine) accessible via web service WCF  Installation: via installer StreamInsight  Déploiement: applicatif .NET (binaries, service, endpoints, …)  Stream Analytics:  Unité: « job »  Moteur hébergé dans Azure.  Service en mode PaaS; pas de visibilité sur le fonctionnement interne  Installation: rien à faire  Déploiement: service Azure (portail, PowerShell/CLI, REST API)
  • 25.
    SQLSaturday Paris 2016 StreamInsightet Stream Analytics : face à face • Extensibilité  StreamInsight:  Adaptateurs customisés  Format entrée/sortie customisable  Encoding customisé  User Defined Aggregates /  Fonctions customisées  Stream Analytics:  Pas d’entrées / sorties customisées  Format fixe (JSON, CSV, Avro)  Encoding: UTF-8  Pas de UDF ou équivalent  Fonctions custom Machine Learning possibles (en preview)
  • 26.
    SQLSaturday Paris 2016 StreamInsightet Stream Analytics : face à face • Evolutivité  StreamInsight:  Produit « mature »  Evolutions mineures uniquement  Stream Analytics:  General availability  Plein développement  Très évolutif  Mises à jour en rythme Cloud
  • 27.
    SQLSaturday Paris 2016 StreamInsightet Stream Analytics : face à face • Scalabilité, disponibilité  StreamInsight:  Embarqué: mono-fil  Serveur autonome: parallélisme en multi-fil possible (y compris pour la même requête); gestion manuelle  Scalabilité: distribution multi- machine possible  HA: possible si déployé en mode distribué  Stream Analytics:  Fonctionne potentiellement en parallélisme; gestion automatique  Scalable via Unités de streaming: 1-48  HA: 99,9%
  • 28.
    SQLSaturday Paris 2016 StreamInsightet Stream Analytics : face à face • Cout d’utilisation  Licence SQL Server  StreamInsight Standard  StreamInsight Premium = SQL DataCenter  A la consommation  Per unité de streaming  Per volume de données traitées
  • 29.
    SQLSaturday Paris 2016 StreamInsightet Stream Analytics : face à face • Monitoring et dépannage  StreamInsight:  Monitoring et compteurs de performance Windows;  compteurs et alertes customisés (développer)  tooling spécifique dédié (Flow Debugger);  Stream Analytics  Journaux (logs) – Portail Azure + API  Test des requêtes (upload fichiers)  Alertes configurables
  • 30.
    SQLSaturday Paris 2016 Conclusions– StreamInsight vs Stream Analytics  CEP : certainement un concept plein d’avenir (et de présent !)  StreamInsight : bon pour des applications autonomes, voire embarquées  Nécessite un investissement de développement  Stream Analytics : partout ou le cloud est une solution viable  Onboarding et setup plus rapide  Scalable et flexible  Paiement à l’utilisation, cout d’entrée accesible
  • 31.
  • 32.
    SQLSaturday Paris 2016 Mercià nos volontaires
  • 33.
    SQLSaturday Paris 2016 Eten plus vous pouvez gagner des cadeaux ! Donnez votre avis sur les sessions : http://GUSS.pro/sqlsat
  • 34.