title: Incremental windowed aggregations at Apache Flink
title: Επαυξητική συνάθροιση παραθύρων στο Apache Flink
Creators: name: Ντελμπιζης Αστεριος
Publisher: name: Technical University of Crete
Year: 2020

description: Nowadays, stream data are produced at a constant and rapid pace, more and more applications attempt to use the streams in order to receive crucial decisions. This outcome can be achieved by using algorithms and data structures that effectively process large amounts of data. These data are called Big Data and can be generated from different sources (sensors, social media). Processing and analysis of Big Data has become essential. Synopses are used in queries in Big Data because of their quick response times. Synopses summarize data set and provide approximate answers to queries.
Apache Flink is one of the dominant systems for processing stream data. On data streams it is very important to calculate aggregated results and usually this is achievable using windows, since the number of streams is infinite. Results are, thus, produced after each window expires. However, Flink supports specific number of built-in implemented functions for windows.
The purpose of this work is to extend the number of built-in functions that can be supported by Flink, by allowing synopses to be computed and to then provide approximate results. In addition, to maximize performance, we must ensure that building the synopses is done during the time that data are inserted into their windows. This is very important to avoid the pitfall of processing the tuples of a window after it is closed, which would require a second pass over its elements.
description: Στις μέρες μας, δεδομένα παράγονται συνεχώς σε ασύλληπτους ρυθμούς και όλο και περισσότερες εφαρμογές προσπαθούν να χρησιμοποιήσουν όλα αυτά τα δεδομένα, για να πάρουν κρίσιμες αποφάσεις. Αυτό, μπορούν να το πετύχουν, χρησιμοποιώντας αλγορίθμους και δομές δεδομένων που επεξεργάζονται αποδοτικά μεγάλα σύνολα δεδομένων. Τα σύνολα αυτά, παράγονται από διάφορες πηγές (π.χ. αισθητήρες, μέσα κοινωνικής δικτύωσης) και ονομάζονται Μεγάλα Δεδομένα. Η επεξεργασία, καθώς και η ανάλυση των Μεγάλων Δεδομένων, έχει γίνει πλέον αναγκαία. Για τη γρήγορη απάντηση επερωτήσεων σε Μεγάλα Δεδομένα, χρησιμοποιούνται συνόψεις, οι οποίες συνοψίζουν το σύνολο δεδομένων και παρέχουν προσεγγιστικές απαντήσεις σε υποερωτήματα.
Το Apache Flink  είναι ένα από τα κυρίαρχα συστήματα για επεξεργασία σε ροές δεδομένων. Πάνω σε ροές δεδομένων, είναι πολύ σημαντικό να υπολογίζουμε συναθροιστικά αποτελέσματα και συνήθως αυτό μπορεί να επιτευχθεί χρησιμοποιώντας παράθυρα, καθώς οι ροές είναι άπειρες. Έτσι, τα αποτελέσματα παράγονται μετά τη λήξη κάθε παραθύρου. Το Flink όμως υποστηρίζει συγκεκριμένο αριθμό ενσωματωμένων συναρτήσεων που έχουν υλοποιηθεί.
Σκοπός της διπλωματικής μας εργασίας είναι  να επεκτείνουμε τον αριθμό των ενσωματωμένων συναρτήσεων που μπορεί να υποστηρίζει το Flink, επιτρέποντας τον υπολογισμό των συνόψεων και στη συνέχεια, την παροχή κατά προσέγγιση αποτελεσμάτων. Επιπλέον, για να μεγιστοποιήσουμε την απόδοση, πρέπει να διασφαλίσουμε ότι η κατασκευή των συνόψεων γίνεται κατά τη διάρκεια της εισαγωγής δεδομένων στα παράθυρα. Αυτό είναι πολύ σημαντικό για να αποφευχθεί η παγίδα της επεξεργασίας των πλειάδων ενός παραθύρου αφού κλείσει, κάτι που θα απαιτούσε ένα δεύτερο πέρασμα των στοιχείων του.