Big data analytics quanto vale e come sfruttarlo con stream analytics e power bi
1. Big Data Analytics quanto vale e come
sfruttarlo con Stream Analytics e Power BI
Click to edit Master subtitle style
#disatpn
saturday 2019
Digital 1nn0vation
2. #disatpn
Chi sono? (Marco Pozzan)
• Consulente di business Intelligence presso www.methode.it
• Docente all’ università di Pordenone in corsi di data warehouse e analisi di Big Data
• Fondatore della community di 1nn0va (www.innovazionefvg.net)
• MCP, MCSA, MCSE, MCT dal 2014 MVP e dal 2016 MVP Reconnect per la Microsoft Data
Platform
marco.pozzan@methode.it
@marcopozzan.it
www.marcopozzan.it
http://www.scoop.it/u/marco-pozzan
http://paper.li/marcopozzan/1422524394
3. #disatpn
Agenda
• Il mercato dei Big Data Analytics
• Il mercato dei Big Data Analytics per settore
• La sfida Smart & Fast
• Introduzione alle architetture e ai servizi
• Events Hub
• Stream analytics
• Demo
4. #disatpn
Il mercato degli analytics
• l mercato italiano dei Big Data Analytics raggiunge nel 2018 un valore
di 1,393 miliardi di euro
• 26% in più rispetto al 2017. Trend positivo degli ultimi tre anni, con
una crescita media del 21% ogni dodici mesi.
5. #disatpn
Il mercato degli analytics
• Le aziende hanno maturato consapevolezza sul tema e l’hanno
trasformata in investimenti infrastrutturali, sperimentazioni e
progetti in produzione.
• Rimane molto ampio il divario fra le grandi imprese che si dividono
l’88% della spesa complessiva e le PMI, che rappresentano una
quota esigua del mercato fermandosi al 12%.
6. #disatpn
Scomposizione spesa degli analytics
• Il 45% della spesa in Analytics è dedicato ai software (database e
strumenti per acquisire, elaborare, visualizzare e analizzare i dati,
applicativi per specifici processi aziendali),
• il 34% ai servizi (personalizzazione dei software, integrazione con i
sistemi informativi aziendali, consulenza di riprogettazione dei processi)
• Il 21% alle risorse infrastrutturali (capacità di calcolo, server e storage
da impiegare nella creazione di servizi di Analytics).
8. #disatpn
Fast & Smart
«Per coglierne appieno i benefici, è necessario che i Big Data
vengano analizzati secondo modalità smart, mediante sofisticati
algoritmi di machine learning in grado di identificare pattern e
correlazioni presenti nei dati e di trasformare questa conoscenza in
azioni concrete che permettano alle imprese di acquisire vantaggio
competitivo”
«Carlo Vercellis, Responsabile scientifico dell’Osservatorio Big Data Analytics &
Business Intelligence»
9. #disatpn
Le grandi aziende in numeri
• Il 62% dichiara la necessità di competenze specifiche di Machine
Learning e Deep Learning
• poco più di 1/3 le ha già introdotte in organico
• 30% prevede di farlo nei prossimi due anni.
• 11% sfrutta oggi modalità di analisi in Real-Time o in Streaming, in
cui vi è un flusso continuo di raccolta dei dati analizzati con continuità.
• 33% possiede un’infrastruttura che consente analisi in Near Real-
Time, con una frequenza d’aggiornamento che scende a meno di
un’ora.
• 56% analizza i dati in modalità batch, con un aggiornamento del
sistema a intervalli regolari e predefiniti (solitamente giornalieri).
10. #disatpn
Le PMI in numeri
• il 7% delle PMI nel 2018 ha avviato progetti di Big Data Analytics
• 4/10 dichiarano di svolgere analisi tradizionali
• il 10% ha una comprensione scarsa o nulla di quali vantaggi i Big
Data potrebbero apportare e di come hanno un approccio all’analisi
dei dati limitato e tradizionale.
• il 31%, è invece sulla buona strada sia dal lato della consapevolezza
sia dal lato tecnologico.
• Una PMI su dieci, infine, si dimostra pronta per lanciare delle
iniziative di Analytics.
• 42% non si sono mosse per mancanza di risorse
12. #disatpn
Tecniche di processamento
• Query batch
• Risponde alla domanda, «Quale era la velocità del vento ieri?"
• Streaming query
• Risponde alla domanda, «quale è stata la media delle raffiche di vento
nell’ultima ora?"
• Approccio ibrido
13. #disatpn
L’architettura Lambda
• Hot Path: fornisce
l'elaborazione del flusso di
dati, consentendo l'accesso
istantaneo ai dati e all'analisi,
ma a scapito di una inferiore
precisione.
• Cold Path: migliora la
precisione con l'elaborazione
batch completa, utilizzando
metodi di affinamento dei dati.
14. #disatpn
Limitazioni
• La sfida principale con l'architettura lambda è che è necessario
mantenere la coerenza tra la logica di elaborazione del percorso
cold e hot.
• Se si modificano i requisiti analitici, è necessario modificare entrambi i set di
codice per mantenere la coerenza.
• Una seconda considerazione è che, dopo che i dati sono stati acquisiti
ed elaborati in un modello, i dati sono effettivamente immutabili e
non possono più essere modificati.
• Le modifiche al modello, ad esempio la raccolta di una vasta gamma di dati o la
creazione online di dispositivi di acquisizione più recenti, rendono difficile la
generazione di confronti più lungo termine dei dati storici
15. #disatpn
L’architettura Kappa
• In Kappa, i dati originali vengono conservati come una sequenza di
file "log". Se è si modifica il modello, è possibile "riprodurre" i
vecchi dati dai registri e applicare la logica del nuovo modello
• hot e cold utilizzano gli stessi dati. Se il modello cambia, i dati storici
possono essere ritrasmessi attraverso il percorso hot per dare i risultati
aggiornati.
16. #disatpn
Soluzione Ibrida
• Azure Stream Analytics = Consente di elaborare flussi di dati
da Event o Iot Hub
• Azure Machine Learning = Supporta l'analisi e la
modellazione predittiva di flussi di dati.
• Azure Blob storage = Mantiene i dati in modo scalare, fino a
un certo punto di scalabilità. Archivio di oggetti generico
• Azure Data Lake Storage = Rende persistenti i dati su scala
massiva con oggetti o dimensioni file illimitati.
• Azure Data Lake Analytics = Esegue l'elaborazione batch e
l'analisi di grandi dati, genera un'elaborazione parallela sui Big
Data.
• Azure SQL Data Warehouse = Fornisce un database
relazionale in grado di una elaborazione parallela (MPP) per
big data
• i dati del dispositivo vengono trasmessi da events Hubs o
dagli ioT hubs (a seconda delle periferiche di origine).
• Power BI e app personalizzata (visualizzazione)
18. #disatpn
Event Hubs
• Azure Event Hubs è una piattaforma di streaming Big Data e un
servizio di import di eventi, in grado di ricevere ed elaborare milioni
di eventi al secondo.
• I dati inviati a un hub di possono essere trasformati e archiviati
utilizzando qualsiasi provider di analisi in tempo reale o oggetti di
batch/storage.
• Event Hub rappresenta la "porta principale" per una pipeline di
eventi, spesso definita ingestion di eventi
• Un ingestion di eventi è una componente o servizio che si trova tra gli
editori di eventi e i consumatori di eventi per disaccoppiare la
produzione di un flusso di eventi dal consumo di tali eventi.
20. #disatpn
Le partizioni
• Una partizione è una sequenza ordinata di eventi. Quando arrivano
nuovi eventi, vengono aggiunti alla fine di questa sequenza.
• Event Hub conserva i dati per un tempo configurato che si applica a
tutte le partizioni. Non puoi eliminarli esplicitamente.
• Il numero di partizioni è specificato al momento della creazione e
deve essere compreso tra 2 e 32. non è modificabile!!!
• sono un meccanismo di organizzazione dei dati che si riferisce al
parallelismo, il numero di partizioni si riferisce direttamente al
numero di lettori simultanei che ci si aspetta di avere.
21. #disatpn
Throughput Units
• La capacità di throughput è controllata dalle unità di throughput.
• Le TU sono unità di capacità pre-acquistate. Una singola unità di
throughput include la seguente capacità:
• Ingresso: fino a 1 MB al secondo o 1000 eventi al secondo (a seconda
dell'evento che si verifica per primo).
• Uscita: fino a 2 MB al secondo o 4096 eventi al secondo.
23. #disatpn
Tipi di data sources
• Data stream: sono eventi di streaming che formano una sequenza
illimitata nel tempo.
• Event Hubs
• IoT Hub
• Blob storage
• Possono essere in formato CSV, JSON o Avro
• Reference data: per connettersi a set di dati ausiliari statici che
vengono utilizzati come dati di ricerca nel flusso. Si utilizza un join
nella query di Stream Analytics per unire i reference data con il data
stream
• Blob storage (max 300 MB)
24. #disatpn
Strutture di un Stream Analytics job
• Di seguito elenchiamo le strutture disponibili per un Stream Analytics
job
• Input(s)
• Output(s)
• Query
Inputs Outputs
Iot Hub Azure Data Lake Store
Event Hubs Azure SQL DB
Azure Blob Storage Azure Blob Storage
Event Hubs
Power BI
Azure Table Storage
Service Bus Queues
Services Bus topics
Azure Cosmos DB
25. #disatpn
Definire le query base
• Si utilizza un linguaggio di query simile a SQL per definire le query in
Stream.
• Ai fini della sintassi, questo linguaggio di query è simile a T-SQL
ma differisce in come viene eseguita la query. https://aka.ms/swzhvp
• SELECT
• INTO output
• FROM input
• Predicate clauses
26. #disatpn
Definire le query base
• Si utilizzano le query di Stream Analytics per selezionare i dati da 1 o
molti input in 1 o più output
• Di seguito un esempio di una query che si usa per passare tutti gli
eventi dall'input all'output
• Si può anche selezionare colonne specifiche e filtrare i dati in base a
una condizione, come segue:
SELECT *
INTO [Output]
FROM [Input]
SELECT ProductName, ProductCategory, Price
INTO [Output]
FROM [Input]
WHERE Price >=200
27. #disatpn
Definire le query base
• Di seguito è riportato un esempio per utilizzare più output in un
processo di analisi dei flussi:
• Si noti che, mentre è possibile avere più input e più output in un
singolo job di Stream Analytics, le best practice consigliano di
suddividere le query non correlate in più job per ottimizzare le
prestazioni.
SELECT ProductName, ProductCategory, Price
INTO [Output]
FROM [Input]
WHERE Price >=200
SELECT ProductName, ProductCategory, Price
INTO [Output]
FROM [Input]
WHERE Price <200
28. #disatpn
Timestamp
• Per elaborare gli eventi in base a un timestamp personalizzato o
all'ora in cui si verificano, utilizzare TIMESTAMP BY nella dichiarazione
SELECT:
SELECT TransTime,
RegisterId,
TransId,
TransAmt
FROM [Input] TIMESTAMP BY TransTime
29. #disatpn
Aggregations and groupings
• Si possono usare molte funzioni di aggregazione ed eseguire calcoli
o creare un output con più dati rispetto all’input
• Le aggregazioni sono simili a T-SQL e la GROUP BY richiedono una
time window
• Selezionare i primi 10 prodotti per quantità di vendita negli ultimi tre
minuti (windowing function):
• Esempi di query per i modelli di utilizzo di Stream Analytics comuni
https://aka.ms/esevh2
SELECT ProductName,
CollectTop(10) OVER (ORDER BY QuantitySold DESC)
FROM [Input] timestamp by time
GROUP BY TumblingWindows(minute,3), ProductName
30. #disatpn
Grouping data per il time
• Ci sono tre funzioni di windowing in Stream Analytics:
• Sliding window
• Tumbling window
• Hopping window
31. #disatpn
Sliding Window
• Le Sliding Window considerano tutte le finestre possibili
della lunghezza specificata. (scorre)
• Tuttavia, per rendere il numero di Windows gestibile per
Stream Analytics, le finestre scorrevoli producono un output
solo quando entra un evento o esce dalla finestra.
• Ogni finestra ha almeno un evento e ogni evento può essere
in più di una Sliding Window .
32. #disatpn
Sliding Window (esempio)
• se abbiamo il seguente set di dati di input con un tempo e un valore:
• Una finestra scorrevole di 10 secondi produrrà finestre che terminano
nei seguenti orari:
• 12-valore 1 entra nella finestra; un valore nella finestra (valore 1).
• 19-valore 2 entra nella finestra; due valori nella finestra (valore 1, valore 2).
• 22-valore 1 esce dalla finestra; un valore nella finestra (valore 2).
timestamp (seconds) Value
12 1
19 2
24 3
33. #disatpn
Sliding Window (esempio)
• Una finestra scorrevole di 10 secondi produrrà finestre che terminano
nei seguenti orari:
• Il valore 24 a 3 entra nella finestra; due valori nella finestra (valore 2, valore 3).
• 29-valore 2 esce dalla finestra; un valore nella finestra (valore 3).
timestamp (seconds) Value
12 1
19 2
24 3
34. #disatpn
Tumbling Window
• Le finestre mobili sono finestre a dimensione fissa che non si
sovrappongono e sono contigue.
• Quando il tempo della dimensione della finestra è passata, una nuova
finestra viene immediatamente creata con la stessa durata.
• Ad esempio, per calcolare la temperatura media per dispositivo per
ciascun periodo di cinque minuti:
35. #disatpn
Hopping Window
• Le finestre di hopping vengono utilizzate per specificare finestre
sovrapposte pianificate. Finestre hopping sono definite con
windowsize, hopsize e timeunit.
• Windowsize: descrive la dimensione della finestra.
• Hopsize: descrive quanto ciascuna finestra avanza.
• Timeunit: descrive l'unità di tempo per il windowsize e il punto di passaggio.
36. #disatpn
Hopping Window (esempio)
• Abbiamo il seguente insieme di dati, inclusi timestamp e nome
dell'evento:
• Si specifica una finestra di hopping con un windowsize di 10, una
hopsize di 5 e i secondi come timeunit. Questo creerà le seguenti
finestre:
• 0-10 secondi: contiene eventi A, B e C.
• 5-15 secondi: contiene gli eventi C e D.
• 10-20 secondi: contiene gli eventi D, E e F.
timestamp (seconds) Value
3 A
5 B
8 C
12 D
16 E
20 F
37. #disatpn
Streaming units
• Per capire la quantità di potenza che si può assegnare ad un job di
Stream Analytics, è necessario capire cosa è una Unità di streaming
(SU).
• sono le risorse di calcolo necessarie per eseguire un job di streaming, e
sono una combinazione di CPU, memoria e dei tassi di I/O
• Gli SU forniscono un modo per astrarre l'utente da dover imparare le
risorse di calcolo individuali necessario per eseguire i job di Stream
Analytics.
38. #disatpn
Demo
• Il throughput per Power BI è dato dal limite di 1M di righe all’ora (per
la TumblingWindow)
• Formula di ingestion = (n°dispositivi * 60 *60)/throughput => (50 *60
*60)/1000000= 0,18 sec