Structured Streaming è il modulo di Stream Processing costruito sul motore Spark SQL. In poche parole garantisce l'esecuzione di un messaggio esattamente una volta, è scalabile e fault-tolerant. È possibile definire le analisi stream nello stesso modo in cui si definirebbe un calcolo batch sui dati usando i Dataset/DataFrame API in Scala, Java, Python or R utilizzando l'engine SQL di Spark.
Durante la sessione vedremo un'overview delle funzionalità e un esempio di di come sia possibile eseguire l'ingestion dei dati con Event Hub (Kafka enabled) eseguire un'analisi con Spark e salvare i risultati su Cosmos DB.
Costruire un PoC IoT completo: gestione allarmi, device heartbeat, real-time e batch analysis e integrazione con Dynamics 365. L'intera soluzione sarà costruita utilizzando la piattaforma Cloud Microsoft (Stream Analytics, Logic Apps, SQL Database, Power BI, Dynamics 365).
Il tutto in 1 ora e come sempre scrivendo meno codice possibile!
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterPar-Tec S.p.A.
Il TechAdvisor Mirko Conte spiega come progettare, installare e configurare MySQL Cluster, la versione di punta del database open source più utilizzato al mondo.
Durante la presentazione, Mirko ha condiviso numerose informazioni teoriche e pratiche per comprendere dove, come e quando utilizzare al meglio MySQL Cluster. In questa sessione ha trattato i seguenti punti:
- Valutare MySQL Cluster nel proprio progetto
- Esempi di architettura
- Requisiti hardware/network
- Sessione hands-on
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/progettare-installare-gestire-e-ottimizzare-mysql-cluster#progettare
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
Costruire un PoC IoT completo: gestione allarmi, device heartbeat, real-time e batch analysis e integrazione con Dynamics 365. L'intera soluzione sarà costruita utilizzando la piattaforma Cloud Microsoft (Stream Analytics, Logic Apps, SQL Database, Power BI, Dynamics 365).
Il tutto in 1 ora e come sempre scrivendo meno codice possibile!
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterPar-Tec S.p.A.
Il TechAdvisor Mirko Conte spiega come progettare, installare e configurare MySQL Cluster, la versione di punta del database open source più utilizzato al mondo.
Durante la presentazione, Mirko ha condiviso numerose informazioni teoriche e pratiche per comprendere dove, come e quando utilizzare al meglio MySQL Cluster. In questa sessione ha trattato i seguenti punti:
- Valutare MySQL Cluster nel proprio progetto
- Esempi di architettura
- Requisiti hardware/network
- Sessione hands-on
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/progettare-installare-gestire-e-ottimizzare-mysql-cluster#progettare
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
SQL Server Failover Cluster Instances con Azure Managed DisksGianluca Hotz
Youtube: https://www.youtube.com/watch?v=dgyXkN3FVb4
Come implementare un cluster di SQL Server AlwaysOn Failover Cluster Instances (FCI) con Azure Managed Disks.
Cloud storage in azienda: perche` Riak ci e` piaciutoBioDec
La realizzazione di un software per l'automazione di un processo di
lavoro ha portato all'implementazione di un sistema di storage in
grado di gestire imponenti flussi di dati (raw data, immagini...).
Il core del sistema di archiviazione e` il database NoSql Riak. A
quasi un anno dall'entrata in produzione, tale configurazione si e`
confermata robusta e performante (vengono acquisiti in modo
ridondato centinaia di migliaia di files ogni mese, realizzando un
archivio permanente in costante crescita dell'ordine di terabytes).
Nel corso dell'intervento verranno mostrate le motivazioni che hanno
portato a questa scelta.
Oltre ad una rapida panoramica volta ad illustrare le funzionalita`
di Riak si intende condividere in modo pratico il know-how acquisito
ripercorrendo le problematiche riscontrate durante il setup, la
configurazione e la gestione di un cluster Riak (ambienti di
sviluppo e produzione, ottimizzazioni, deploy del cluster, backup,
disaster recovery, ...).
Per il corso di Sistemi Operativi Avanzati ho studiato l'articolo "Google File System" scritto da Sanjay Ghemawat, Howard Gobioff, e Shun-Tak Leung, inquadrandone il contesto storico, gli obiettivi, le prestazioni e le principali differenze con l'HDFS.
Back to Basics, webinar 6: Messa in esercizioMongoDB
Questo è l'ultimo webinar della serie Back to Basics
che ti offrirà un'introduzione al database MongoDB. Questo webinar ti guiderà attraverso tutti i passaggi per l'implementazione della produzione.
Youtube: https://www.youtube.com/watch?v=jh3CJ1ns0JQ
Il Query Processor è uno dei componenti più sofisticati di un RDBMS, quello di SQL Server non fa eccezione e sono state introdotte molte novità per risolvere le Query in modo più efficiente. In questa sessione affronteremo l'argomento ripercorrendo le varie funzionalità a partire dal nuovo modello del "Cardinality Estimator", introdotto nella versione 2014, per arrivare a tutto ciò che ricade sotto il nome di "Intelligent Query Processor" tra cui le funzionalità di "Adaptive Query Processing", introdotte nella versione 2017, e le novità introdotte nella versione 2019. Il tutto senza dimenticare le funzionalità per aiutare a gestire eventuali problematiche di regressione e coadiuvato da dimostrazioni pratiche.
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLMongoDB
Il significato del termine NoSQL
Le differenze tra gli archivi di tipo chiave-valore, orientati alle colonne e orientati ai documenti
Il significato del termine multi-modello
Database come PostgreSQL non possono girare su Kubernetes. Questo è il ritornello che sentiamo continuamente, ma al tempo stesso la motivazione per noi di EDB di abbattere questo muro, una volta per tutte.
In questo webinar parleremo della nostra avventura finora per portare PostgreSQL su Kubernetes. Scopri perché crediamo che fare benchmark di storage e del database prima di andare in produzione porti a una più sana e longeva vita di un DBMS, anche su Kubernetes.
Condivideremo il nostro processo, i risultati fin qui ottenuti e sveleremo i nostri piani per il futuro con Cloud Native PostgreSQL.
Viene illustrato il problema della raccolta efficiente e scalabile dei dati da potenziali sorgenti di Big Data. Inoltre verrà fatta una carrellata su alcuni tra i più popolari software utilizzabili in una pipeline di data streaming in realtime e/o batch analysis.
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)MongoDB
Come incrementare le prestazioni di scrittura e il volume di dati in MongoDB
Come costruire un semplice cluster partizionato
Come scegliere una chiave della partizione
Vieni a scoprire Cloud Native PostgreSQL (CNP), l’operatore per Kubernetes, direttamente da coloro che lo hanno ideato e lo sviluppano in EDB.
CNP facilita l’integrazione di database PostgreSQL con le tue applicazioni all’interno di cluster Kubernetes e OpenShift Container Platform di RedHat, grazie alla sua gestione automatica dell’architettura primario/standby che include: self-healing, failover, switchover, rolling update, backup, ecc.
Durante il webinar affronteremo i seguenti punti:
- DevOps e Cloud Native
- Introduzione a Cloud Native PostgreSQL
- Architetture
- Caratteristiche principali
- Esempi di uso e configurazione
- Kubernetes, Storage e Postgres
- Demo
- Conclusioni
Come costruire un PoC IoT completo: gestione allarmi, device heartbeat, real-time. L'intera soluzione sarà costruita utilizzando la piattaforma Cloud Microsoft (Stream Analytics, Logic Apps, SQL Database, Power BI, Dynamics 365).
Il tutto in 1 ora e come sempre scrivendo meno codice possibile!
Azure Saturday Pordenone 2018 IoT real time processing for lazy developerAlessio Biasiutti
In this session I explained how to develop a IoT E2E solution writing as less code as possible. I designed the solution using Azure Event Hub, Azure Service Bus, Azure Logic Apps e Azure SQL Database
SQL Server Failover Cluster Instances con Azure Managed DisksGianluca Hotz
Youtube: https://www.youtube.com/watch?v=dgyXkN3FVb4
Come implementare un cluster di SQL Server AlwaysOn Failover Cluster Instances (FCI) con Azure Managed Disks.
Cloud storage in azienda: perche` Riak ci e` piaciutoBioDec
La realizzazione di un software per l'automazione di un processo di
lavoro ha portato all'implementazione di un sistema di storage in
grado di gestire imponenti flussi di dati (raw data, immagini...).
Il core del sistema di archiviazione e` il database NoSql Riak. A
quasi un anno dall'entrata in produzione, tale configurazione si e`
confermata robusta e performante (vengono acquisiti in modo
ridondato centinaia di migliaia di files ogni mese, realizzando un
archivio permanente in costante crescita dell'ordine di terabytes).
Nel corso dell'intervento verranno mostrate le motivazioni che hanno
portato a questa scelta.
Oltre ad una rapida panoramica volta ad illustrare le funzionalita`
di Riak si intende condividere in modo pratico il know-how acquisito
ripercorrendo le problematiche riscontrate durante il setup, la
configurazione e la gestione di un cluster Riak (ambienti di
sviluppo e produzione, ottimizzazioni, deploy del cluster, backup,
disaster recovery, ...).
Per il corso di Sistemi Operativi Avanzati ho studiato l'articolo "Google File System" scritto da Sanjay Ghemawat, Howard Gobioff, e Shun-Tak Leung, inquadrandone il contesto storico, gli obiettivi, le prestazioni e le principali differenze con l'HDFS.
Back to Basics, webinar 6: Messa in esercizioMongoDB
Questo è l'ultimo webinar della serie Back to Basics
che ti offrirà un'introduzione al database MongoDB. Questo webinar ti guiderà attraverso tutti i passaggi per l'implementazione della produzione.
Youtube: https://www.youtube.com/watch?v=jh3CJ1ns0JQ
Il Query Processor è uno dei componenti più sofisticati di un RDBMS, quello di SQL Server non fa eccezione e sono state introdotte molte novità per risolvere le Query in modo più efficiente. In questa sessione affronteremo l'argomento ripercorrendo le varie funzionalità a partire dal nuovo modello del "Cardinality Estimator", introdotto nella versione 2014, per arrivare a tutto ciò che ricade sotto il nome di "Intelligent Query Processor" tra cui le funzionalità di "Adaptive Query Processing", introdotte nella versione 2017, e le novità introdotte nella versione 2019. Il tutto senza dimenticare le funzionalità per aiutare a gestire eventuali problematiche di regressione e coadiuvato da dimostrazioni pratiche.
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLMongoDB
Il significato del termine NoSQL
Le differenze tra gli archivi di tipo chiave-valore, orientati alle colonne e orientati ai documenti
Il significato del termine multi-modello
Database come PostgreSQL non possono girare su Kubernetes. Questo è il ritornello che sentiamo continuamente, ma al tempo stesso la motivazione per noi di EDB di abbattere questo muro, una volta per tutte.
In questo webinar parleremo della nostra avventura finora per portare PostgreSQL su Kubernetes. Scopri perché crediamo che fare benchmark di storage e del database prima di andare in produzione porti a una più sana e longeva vita di un DBMS, anche su Kubernetes.
Condivideremo il nostro processo, i risultati fin qui ottenuti e sveleremo i nostri piani per il futuro con Cloud Native PostgreSQL.
Viene illustrato il problema della raccolta efficiente e scalabile dei dati da potenziali sorgenti di Big Data. Inoltre verrà fatta una carrellata su alcuni tra i più popolari software utilizzabili in una pipeline di data streaming in realtime e/o batch analysis.
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)MongoDB
Come incrementare le prestazioni di scrittura e il volume di dati in MongoDB
Come costruire un semplice cluster partizionato
Come scegliere una chiave della partizione
Vieni a scoprire Cloud Native PostgreSQL (CNP), l’operatore per Kubernetes, direttamente da coloro che lo hanno ideato e lo sviluppano in EDB.
CNP facilita l’integrazione di database PostgreSQL con le tue applicazioni all’interno di cluster Kubernetes e OpenShift Container Platform di RedHat, grazie alla sua gestione automatica dell’architettura primario/standby che include: self-healing, failover, switchover, rolling update, backup, ecc.
Durante il webinar affronteremo i seguenti punti:
- DevOps e Cloud Native
- Introduzione a Cloud Native PostgreSQL
- Architetture
- Caratteristiche principali
- Esempi di uso e configurazione
- Kubernetes, Storage e Postgres
- Demo
- Conclusioni
Come costruire un PoC IoT completo: gestione allarmi, device heartbeat, real-time. L'intera soluzione sarà costruita utilizzando la piattaforma Cloud Microsoft (Stream Analytics, Logic Apps, SQL Database, Power BI, Dynamics 365).
Il tutto in 1 ora e come sempre scrivendo meno codice possibile!
Azure Saturday Pordenone 2018 IoT real time processing for lazy developerAlessio Biasiutti
In this session I explained how to develop a IoT E2E solution writing as less code as possible. I designed the solution using Azure Event Hub, Azure Service Bus, Azure Logic Apps e Azure SQL Database
Azure Synapse Analytics for your IoT SolutionsMarco Parenzan
Let's find out in this session how Azure Synapse Analytics, with its SQL Serverless Pool, ADX, Data Factory, Notebooks, Spark can be useful for managing data analysis in an IoT solution.
Kubernetes as HA time series server, a proposalGiuliano Latini
Grazie allo IoT e al basso costo della connettività mobile possiamo acquisire grosse quantità di dati eterogenei. Un possibile modo per organizzarli nell'ottica del monitoraggio e dell'analisi proattiva è l'uso dei Time Series Database come InfuxDB. Durante la sessione varrà proposta un'architettura in alta affidabilità, utilizzando il servizio AKS di Microsoft Azure, per implementare un sistema di raccolta e classificazione dati in serie temporali con console di visualizzazione, pronti per alimentare altri servizi presenti nell'infrastruttura Microsoft Azure. Una parte del talk sarà dedicata a mostrare l'uso dell'architettura proposta.
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-serviceMarco Pozzan
Power BI Dataflow è il componente di trasformazione dei dati in Power BI. È un processo di Power Query che viene eseguito nel cloud. Bene, questa potrebbe non sembrare una funzionalità molto nuova, giusto? Quindi cosa c'è di nuovo con Dataflow? Le risposte alle vostre domande saranno nella mia sessione :-)
Azure Synapse: data lake & modern data warehouse dalla A alla ZRoberto Messora
Con Azure Synapse abbiamo finalmente a disposizione un ambiente integrato in cui poter implementare compiutamente un modern Data Warehouse. Abbiamo ormai capito sul campo che non ha senso mettere in competizione fra di loro data lake e data warehouse, con Azure Synapse la piena collaborazione fra di loro diventa il punto di forza di una strategia sui dati che unifica in un unico ambiente data ingestion, data preparation e analytics.In questa sessione verrà mostrato come Azure Synapse permetta di fare tutto questo a partire dal dato grezzo proveniente dalle più svariate fonti dati.
Project for the class "Advanced Operating System”: we developed a tool for the analysis of Hadoop, DSTAT and HPROF log in order to estimate the performance of a cluster through graphs and warnings.
Used technologies: Java, R, Hadoop, Python, C
More info: http://www.sromano.altervista.org/progetti_magistrale/SOA_HadoopAnalyzerJR.pdf
Lezione tenuta nel corso di Mobile and Cyber Physical Systems della Laurea Magistrale di Informatica a Pisa.
- Le App per l'integrazione con altri servizi: ThingTweet e ThingHTTPi
- Le App per l'innesco di azioni: TimeControl, TweetControl e React
- Esercizi pratici in Python
Node.js REST interface for MongoDB, we modified mongodb-rest (https://github.com/tdegrunt/mongodb-rest) to manage more operation:
counting elements
"distinct" operations
excel/csv export
list of available db collection
list of keys of a specific query
Multithreading support
It's now also possible to search by date range and are managed sort operations.
Architetture web - Linguaggi e standard - Web server, application server, dat...Fulvio Corno
Master: Amministratore Linux - Livello Avanzato
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti spiega come realizzare un servizio di Database-as-a-Service basato su MySQL e Docker.
I punti trattati durante la presentazione sono:
- DB-as-a-Service: la semplicità del concept
- I possibili approcci
- Architettura di alto livello
- Focus sul Management Agent
- Orchestration at work
- Da cgroups a Docker
- Le sfide principali
- Quale futuro?
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/dbaas-con-docker-un-caso-di-studio
Sistema di logging applicativo per ambienti distribuiti Hadoop-based - Monica...Data Driven Innovation
La soluzione per il monitoraggio real time dei log applicativi di applicazioni distribuite come Spark, si basa su tecnologie open source presenti nella maggior parte delle distribuzioni Hadoop, quali Kafka, Flume e Solr. Ne sfrutta le capacità di gestione di grandi volumi di dati da fruire in tempo reale, per la gestione dei tracciamenti delle applicazioni Scala o Java, mediante l'integrazione con le librerie di log4j. Gli sviluppatori potranno utilizzare una dashbord di monitoraggio per aggregare e filtrare i logs prodotti dal loro codice.
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
Pirma parte del seminario su NoSQL al DiTeDi di Udine del 15/12/2012. Affrontato il caso di studio di un'architettura enterprise, basata su datastore relazionali (PostgreSQL) e non (CouchDB, MongoDB, Redis e OrientDB).
Power Platform: AI Builder la democratizzazione di AIAlessio Biasiutti
L'utilizzo dell'intelligenza artificiale fa crescere molto di più i fatturati delle aziende che la utilizzano rispetto a quelle che non lo stanno facendo. La mancanza di competenze in azienda è quindi un freno alla crescita. AI Builder è la risposta code-less alla creazione di modelli di AI
è possible rinoscere e contare oggetti inquadrati con una telecamera connessa ad Rasperry PI e visualizzare i risultati in una dashbaord realtime di Power BI? Certo che sì anche se non siete dei data scientist!
Azure Stream Analytics è un motore serverless che permette l'analisi dei dati in tempo reale di più flussi simultanei. Durante la sessione vedremo un esempio di come sia possibile determinare situazioni di allarme e notificarle via email.
7. Concetti base
▪ Dimensione messaggio 256K-1M
(dedicated)
▪ Protocolli
▪ HTTPS: overhead ogni invio dati (TLS)
migliore per invio dati non frequente.
▪ AMQP: inizializzazione sessione pesante ma
performance migliori per invio dati frequenti
▪ Capture file su Storage Account o su Data
Lake Store
▪ Streaming Unit
▪ Ingress Fino a 1MB/sec o 1000 eventi/sec
▪ Egress Fino a 2MB/sec o 4096 eventi/sec
▪ Retention: 1-7 giorni
8. Concetti base
• Partitions:
• Permettano di scalare orizzontalmente.
• Un event receiver per ogni partizione
• Numero fisso alla creazione tra 2 e 32
• Impostazione solo in fase di creazione
• Partition key:
• Assegnato dal publisher viene utilizzato per
inviare i dati sempre alla stessa partizione
• Nessun valore Round Robin
• Consumer Group:
• Uno per applicazione receiver
• Checkpoint
• Responsabilità del receiver eseguire commit
dell’ultima posizione letta
9. Kafka mode
• Supporto per versione Kafka 1.0 o maggiori
• Funzioni non supportate
• Idempotent producer
• Transaction
• Compression
• Size-based retention
• Log compaction
• Adding partitions to an existing topic
• HTTP Kafka API support
• Kafka Streams
Kafka Concept Event Hubs Concept
Cluster Namespace
Topic Event Hub
Partition Partition
Consumer Group Consumer Group
Offset Offset
16. Read Read
Concetti base
• Il driver esegue le funzioni utente
dividendelo in operazioni parallele
nei vari worker node
• Il driver recupera i risultati delle
varie operazioni
• I worker nodes leggono e scrivono
dati da e verso il filesystem
Hadoop (HDFS or DBFS on Azure
Storage Account)
• I worker node mettono in cache
parte dei dati letti
Read
Cluster manager
HDFS
Worker nodeWorker node Worker node Worker node
Driver program
SparkSession (SparkContext)
19. SparkSession
• Punto di accesso
all’applicazione e a tutte le
funzionalità del cluster
• Prima della versione 2
esistevano tanti
SparkContext per ogni
funzionalità
20. Spark SQL
Spark SQL è un motore fortemente ottimizzato per poter eseguire query SQL sui
dati.
Quando si esegue una query il risultato viene ritornato come Dataset/DataFrame
• Un Dataset è un collezione di dati distribuita. Questa interfaccia è stata
introdotta dopo la versione 1.6
• Un DataFrame è un dataset organizzato in colonne. Concettualmente è
equivalente ad un tabella di un database relazionale o di un data frame in
R/Python
21. Spark SQL
1) Leggere dati da fonti esterne e
formati diversi
2) Eseguire query
• SQL
• Functions
3) Salvare i dati all’interno del cluster
4) Salvare i dati su destinazioni
esterne
• Connecting to SQL
Databases using JDBC
• Amazon Redshift
• Amazon S3
• Amazon S3 Select
• Azure Blob Storage
• Azure Data Lake
Storage Gen1
• Azure Data Lake
Storage Gen2
• Azure Cosmos DB
• Azure SQL Data
Warehouse
• Cassandra
• Couchbase
• ElasticSearch
• Import Hive Tables
• MongoDB
• Neo4j
• Oracle
• Avro Files
• CSV Files
• JSON Files
• LZO Compressed
Files
• Parquet Files
• Redis
• Riak Time Series
• Snowflake
• Zip Files
23. Structured Streaming
Structured Streaming è il modulo di Stream Processing
costruito sul motore Spark SQL
Permette di eseguire analisi sui dati stream allo stesso
modo con cui si analizzano i dati batch
• Aggregations
• event-time windows
• stream-to-batch joins
24. Concetti Base
L’idea è di trattare un data
stream come se fosse una
tabella in cui vengono
inserite continuamente
delle righe alla fine
In questo modo si possono
eseguire dei comandi SQL
come se fosse una tabella
25. Concetti base
• Ad ogni trigger le nuove righe vengono
aggiunte alla «Input Table»
• Una query sull’imput può generare un dei
nuovi dati nella tabella Result
• Ogni volta che la tabella «Result» viene
aggiornata vengono scritti in output i dati:
• Complete Mode: tutta la tabella (compito
del connettore decidere come gestire la
scrittura)
• Append Mode: solo le nuove righe (si
suppone che non ci siano updates)
• Update Mode: vengono inviate tutte le righe
aggiorate
• Non mantiene in memoria tutta la tabella di
input ma solo i dati che servono a calcolare la
query
27. Input - File
File Source: permette di leggere dati da file comse se fossero uno stream:
• path: il path di dove si trovano i file
• maxFilesPerTrigger: massimo numero di file per trigger (default no max)
• lastestFirst: se processare l’ultimo file per primo
• format: il formato dei dati (parquet,…)
In caso di input non strutturato o semi strutturato, per garantire uno schema consistente durante
l’esecuzione delle query, bisogna definire il formato dell’input.
val userSchema = new StructType().add("name", "string“, true).add("age",
"integer“,true)
StructField params:
• name
• datatype
• nullable
29. Input – Event Hub
Connection Options:
• consumerGroup – nome del consumer
group
• startingPosition – la posizione da cui
partire
• EventPosition.fromOffset("246812")
• EventPosition.fromEnqueuedTime(Inst
ant.now)
• EventPosition.fromStartOfStream
• EventPosition.fromEndOfStream
• maxEventsPerTrigger – il numero
massimo di eventi per trigger
Column Type
body binary
partition string
offset string
sequenceNumber long
enqueuedTime timestamp
publisher string
partitionKey string
properties map[string, json]
systemProperties map[string, json]
35. Watermarking
Limiti:
• L’aggregazione deve avere almeno una finestra o deve essere aggregata per un
campo temporale
• Nome del campo «tempo» deve essere lo stesso di quello specificato in
window
• Output mode deve essere Append o Update
39. Trigger
• Il trigger specifica quando frequentemente vengono
letti i dati dall’input per essere accumulati.
• Ad ogni trigger vengono inviati dei dati alla result table
• Default 0ms (appena finisce l’esecuzione parte la
successiva)
• 2 tipi
• RunOnce (esecuzione della query una volta es
schedulata)
• Schedulati
40. Output
Tipi di output
• Memory (Solo per test)
• Kafka
• EventHub
• File
• Azure Blob
• Sink Custom