# Δεδομένα τοποθεσίας καταστήματος ![Σχεδιαστική σημείωση για αυτήν την ενότητα](../../../../../translated_images/lesson-12.ca7f53039712a3ec14ad6474d8445361c84adab643edc53fa6269b77895606bb.el.jpg) > Σχεδιαστική σημείωση από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. ## Ερωτηματολόγιο πριν την ενότητα [Ερωτηματολόγιο πριν την ενότητα](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/23) ## Εισαγωγή Στην προηγούμενη ενότητα, μάθατε πώς να χρησιμοποιείτε έναν αισθητήρα GPS για να καταγράφετε δεδομένα τοποθεσίας. Για να χρησιμοποιήσετε αυτά τα δεδομένα ώστε να οπτικοποιήσετε την τοποθεσία ενός φορτηγού γεμάτου τρόφιμα και το ταξίδι του, πρέπει να τα στείλετε σε μια υπηρεσία IoT στο cloud και στη συνέχεια να τα αποθηκεύσετε κάπου. Σε αυτήν την ενότητα θα μάθετε για τους διάφορους τρόπους αποθήκευσης δεδομένων IoT και πώς να αποθηκεύετε δεδομένα από την υπηρεσία IoT σας χρησιμοποιώντας serverless κώδικα. Σε αυτήν την ενότητα θα καλύψουμε: * [Δομημένα και μη δομημένα δεδομένα](../../../../../3-transport/lessons/2-store-location-data) * [Αποστολή δεδομένων GPS σε IoT Hub](../../../../../3-transport/lessons/2-store-location-data) * [Διαδρομές hot, warm και cold](../../../../../3-transport/lessons/2-store-location-data) * [Διαχείριση συμβάντων GPS με serverless κώδικα](../../../../../3-transport/lessons/2-store-location-data) * [Λογαριασμοί αποθήκευσης Azure](../../../../../3-transport/lessons/2-store-location-data) * [Σύνδεση του serverless κώδικα με την αποθήκευση](../../../../../3-transport/lessons/2-store-location-data) ## Δομημένα και μη δομημένα δεδομένα Τα υπολογιστικά συστήματα επεξεργάζονται δεδομένα, τα οποία έρχονται σε διάφορες μορφές και μεγέθη. Μπορεί να είναι από απλούς αριθμούς, μεγάλα κείμενα, βίντεο και εικόνες, έως δεδομένα IoT. Τα δεδομένα συνήθως χωρίζονται σε δύο κατηγορίες - *δομημένα* δεδομένα και *μη δομημένα* δεδομένα. * **Δομημένα δεδομένα** είναι δεδομένα με καλά καθορισμένη, αυστηρή δομή που δεν αλλάζει και συνήθως αντιστοιχούν σε πίνακες δεδομένων με σχέσεις. Ένα παράδειγμα είναι τα προσωπικά στοιχεία ενός ατόμου, όπως το όνομα, η ημερομηνία γέννησης και η διεύθυνση. * **Μη δομημένα δεδομένα** είναι δεδομένα χωρίς καλά καθορισμένη, αυστηρή δομή, συμπεριλαμβανομένων δεδομένων που μπορεί να αλλάζουν συχνά τη δομή τους. Ένα παράδειγμα είναι έγγραφα όπως γραπτά κείμενα ή υπολογιστικά φύλλα. ✅ Κάντε μια έρευνα: Μπορείτε να σκεφτείτε άλλα παραδείγματα δομημένων και μη δομημένων δεδομένων; > 💁 Υπάρχουν επίσης ημιδομημένα δεδομένα που είναι δομημένα αλλά δεν ταιριάζουν σε σταθερούς πίνακες δεδομένων. Τα δεδομένα IoT συνήθως θεωρούνται μη δομημένα δεδομένα. Φανταστείτε ότι προσθέτετε συσκευές IoT σε έναν στόλο οχημάτων για μια μεγάλη εμπορική φάρμα. Μπορεί να θέλετε να χρησιμοποιήσετε διαφορετικές συσκευές για διαφορετικούς τύπους οχημάτων. Για παράδειγμα: * Για γεωργικά οχήματα όπως τρακτέρ, θέλετε δεδομένα GPS για να βεβαιωθείτε ότι εργάζονται στα σωστά χωράφια. * Για φορτηγά μεταφοράς τροφίμων σε αποθήκες, θέλετε δεδομένα GPS καθώς και δεδομένα ταχύτητας και επιτάχυνσης για να βεβαιωθείτε ότι ο οδηγός οδηγεί με ασφάλεια, καθώς και δεδομένα ταυτότητας οδηγού και έναρξης/λήξης για συμμόρφωση με τους τοπικούς νόμους για τις ώρες εργασίας. * Για φορτηγά ψυγεία, θέλετε επίσης δεδομένα θερμοκρασίας για να βεβαιωθείτε ότι τα τρόφιμα δεν ζεσταίνονται ή κρυώνουν υπερβολικά και χαλάνε κατά τη μεταφορά. Αυτά τα δεδομένα μπορεί να αλλάζουν συνεχώς. Για παράδειγμα, αν η συσκευή IoT βρίσκεται στην καμπίνα ενός φορτηγού, τότε τα δεδομένα που στέλνει μπορεί να αλλάζουν καθώς αλλάζει το τρέιλερ, για παράδειγμα στέλνοντας δεδομένα θερμοκρασίας μόνο όταν χρησιμοποιείται τρέιλερ ψυγείου. ✅ Τι άλλα δεδομένα IoT μπορεί να καταγραφούν; Σκεφτείτε τα είδη φορτίων που μπορούν να μεταφέρουν τα φορτηγά, καθώς και δεδομένα συντήρησης. Αυτά τα δεδομένα ποικίλλουν από όχημα σε όχημα, αλλά όλα στέλνονται στην ίδια υπηρεσία IoT για επεξεργασία. Η υπηρεσία IoT πρέπει να μπορεί να επεξεργάζεται αυτά τα μη δομημένα δεδομένα, αποθηκεύοντάς τα με τρόπο που να επιτρέπει την αναζήτηση ή ανάλυση, αλλά να λειτουργεί με διαφορετικές δομές δεδομένων. ### Αποθήκευση SQL vs NoSQL Οι βάσεις δεδομένων είναι υπηρεσίες που σας επιτρέπουν να αποθηκεύετε και να αναζητάτε δεδομένα. Οι βάσεις δεδομένων χωρίζονται σε δύο τύπους - SQL και NoSQL. #### Βάσεις δεδομένων SQL Οι πρώτες βάσεις δεδομένων ήταν Συστήματα Διαχείρισης Σχεσιακών Βάσεων Δεδομένων (RDBMS), ή σχεσιακές βάσεις δεδομένων. Αυτές είναι επίσης γνωστές ως βάσεις δεδομένων SQL λόγω της γλώσσας Structured Query Language (SQL) που χρησιμοποιείται για την αλληλεπίδραση με αυτές για την προσθήκη, αφαίρεση, ενημέρωση ή αναζήτηση δεδομένων. Αυτές οι βάσεις δεδομένων αποτελούνται από ένα σχήμα - ένα καλά καθορισμένο σύνολο πινάκων δεδομένων, παρόμοιο με ένα υπολογιστικό φύλλο. Κάθε πίνακας έχει πολλαπλές ονομασμένες στήλες. Όταν εισάγετε δεδομένα, προσθέτετε μια γραμμή στον πίνακα, τοποθετώντας τιμές σε κάθε στήλη. Αυτό διατηρεί τα δεδομένα σε μια πολύ αυστηρή δομή - αν και μπορείτε να αφήσετε στήλες κενές, αν θέλετε να προσθέσετε μια νέα στήλη πρέπει να το κάνετε στη βάση δεδομένων, συμπληρώνοντας τιμές για τις υπάρχουσες γραμμές. Αυτές οι βάσεις δεδομένων είναι σχεσιακές - δηλαδή ένας πίνακας μπορεί να έχει σχέση με έναν άλλο. ![Μια σχεσιακή βάση δεδομένων με το ID του πίνακα Χρηστών να σχετίζεται με τη στήλη user ID του πίνακα αγορών, και το ID του πίνακα προϊόντων να σχετίζεται με το product ID του πίνακα αγορών](../../../../../translated_images/sql-database.be160f12bfccefd3ca718a66468c2c4c89c53e5aad4c295324d576da87f9dfdd.el.png) Για παράδειγμα, αν αποθηκεύατε τα προσωπικά στοιχεία ενός χρήστη σε έναν πίνακα, θα είχατε κάποιο είδος εσωτερικού μοναδικού ID ανά χρήστη που χρησιμοποιείται σε μια γραμμή σε έναν πίνακα που περιέχει το όνομα και τη διεύθυνση του χρήστη. Αν στη συνέχεια θέλατε να αποθηκεύσετε άλλες λεπτομέρειες για αυτόν τον χρήστη, όπως τις αγορές του, σε έναν άλλο πίνακα, θα είχατε μια στήλη στον νέο πίνακα για το ID του χρήστη. Όταν αναζητάτε έναν χρήστη, μπορείτε να χρησιμοποιήσετε το ID του για να λάβετε τα προσωπικά του στοιχεία από έναν πίνακα και τις αγορές του από έναν άλλο. Οι βάσεις δεδομένων SQL είναι ιδανικές για την αποθήκευση δομημένων δεδομένων και για όταν θέλετε να βεβαιωθείτε ότι τα δεδομένα ταιριάζουν με το σχήμα σας. ✅ Αν δεν έχετε χρησιμοποιήσει SQL πριν, αφιερώστε λίγο χρόνο για να διαβάσετε σχετικά με αυτήν στη [σελίδα SQL στη Wikipedia](https://wikipedia.org/wiki/SQL). Μερικές γνωστές βάσεις δεδομένων SQL είναι οι Microsoft SQL Server, MySQL και PostgreSQL. ✅ Κάντε μια έρευνα: Διαβάστε για μερικές από αυτές τις βάσεις δεδομένων SQL και τις δυνατότητές τους. #### Βάσεις δεδομένων NoSQL Οι βάσεις δεδομένων NoSQL ονομάζονται NoSQL επειδή δεν έχουν την ίδια αυστηρή δομή με τις βάσεις δεδομένων SQL. Είναι επίσης γνωστές ως βάσεις δεδομένων εγγράφων καθώς μπορούν να αποθηκεύουν μη δομημένα δεδομένα όπως έγγραφα. > 💁 Παρά το όνομά τους, ορισμένες βάσεις δεδομένων NoSQL σας επιτρέπουν να χρησιμοποιείτε SQL για την αναζήτηση δεδομένων. ![Έγγραφα σε φακέλους σε μια βάση δεδομένων NoSQL](../../../../../translated_images/noqsl-database.62d24ccf5b73f60d35c245a8533f1c7147c0928e955b82cb290b2e184bb434df.el.png) Οι βάσεις δεδομένων NoSQL δεν έχουν προκαθορισμένο σχήμα που να περιορίζει τον τρόπο αποθήκευσης δεδομένων, αντίθετα μπορείτε να εισάγετε οποιαδήποτε μη δομημένα δεδομένα, συνήθως χρησιμοποιώντας έγγραφα JSON. Αυτά τα έγγραφα μπορούν να οργανωθούν σε φακέλους, παρόμοια με αρχεία στον υπολογιστή σας. Κάθε έγγραφο μπορεί να έχει διαφορετικά πεδία από άλλα έγγραφα - για παράδειγμα, αν αποθηκεύατε δεδομένα IoT από τα γεωργικά σας οχήματα, κάποια μπορεί να έχουν πεδία για δεδομένα επιταχυνσιόμετρου και ταχύτητας, ενώ άλλα μπορεί να έχουν πεδία για τη θερμοκρασία στο τρέιλερ. Αν προσθέτατε έναν νέο τύπο φορτηγού, όπως ένα με ενσωματωμένες ζυγαριές για την παρακολούθηση του βάρους των προϊόντων που μεταφέρονται, τότε η συσκευή IoT σας θα μπορούσε να προσθέσει αυτό το νέο πεδίο και να αποθηκευτεί χωρίς αλλαγές στη βάση δεδομένων. Μερικές γνωστές βάσεις δεδομένων NoSQL περιλαμβάνουν τις Azure CosmosDB, MongoDB και CouchDB. ✅ Κάντε μια έρευνα: Διαβάστε για μερικές από αυτές τις βάσεις δεδομένων NoSQL και τις δυνατότητές τους. Σε αυτήν την ενότητα, θα χρησιμοποιήσετε αποθήκευση NoSQL για να αποθηκεύσετε δεδομένα IoT. ## Αποστολή δεδομένων GPS σε IoT Hub Στην προηγούμενη ενότητα καταγράψατε δεδομένα GPS από έναν αισθητήρα GPS συνδεδεμένο στη συσκευή IoT σας. Για να αποθηκεύσετε αυτά τα δεδομένα IoT στο cloud, πρέπει να τα στείλετε σε μια υπηρεσία IoT. Και πάλι, θα χρησιμοποιήσετε το Azure IoT Hub, την ίδια υπηρεσία IoT cloud που χρησιμοποιήσατε στο προηγούμενο έργο. ![Αποστολή τηλεμετρίας GPS από μια συσκευή IoT στο IoT Hub](../../../../../translated_images/gps-telemetry-iot-hub.8115335d51cd2c1285d20e9d1b18cf685e59a8e093e7797291ef173445af6f3d.el.png) ### Εργασία - αποστολή δεδομένων GPS σε IoT Hub 1. Δημιουργήστε ένα νέο IoT Hub χρησιμοποιώντας το δωρεάν επίπεδο. > ⚠️ Μπορείτε να ανατρέξετε στις [οδηγίες για τη δημιουργία ενός IoT Hub από το έργο 2, ενότητα 4](../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#create-an-iot-service-in-the-cloud) αν χρειαστεί. Θυμηθείτε να δημιουργήσετε μια νέα Ομάδα Πόρων. Ονομάστε τη νέα Ομάδα Πόρων `gps-sensor` και το νέο IoT Hub ένα μοναδικό όνομα βασισμένο στο `gps-sensor`, όπως `gps-sensor-<το όνομά σας>`. > 💁 Αν έχετε ακόμα το IoT Hub από το προηγούμενο έργο, μπορείτε να το επαναχρησιμοποιήσετε. Θυμηθείτε να χρησιμοποιήσετε το όνομα αυτού του IoT Hub και την Ομάδα Πόρων στην οποία βρίσκεται όταν δημιουργείτε άλλες υπηρεσίες. 1. Προσθέστε μια νέα συσκευή στο IoT Hub. Ονομάστε αυτήν τη συσκευή `gps-sensor`. Αποκτήστε τη συμβολοσειρά σύνδεσης για τη συσκευή. 1. Ενημερώστε τον κώδικα της συσκευής σας ώστε να στέλνει τα δεδομένα GPS στο νέο IoT Hub χρησιμοποιώντας τη συμβολοσειρά σύνδεσης της συσκευής από το προηγούμενο βήμα. > ⚠️ Μπορείτε να ανατρέξετε στις [οδηγίες για τη σύνδεση της συσκευής σας με το IoT από το έργο 2, ενότητα 4](../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#connect-your-device-to-the-iot-service) αν χρειαστεί. 1. Όταν στέλνετε τα δεδομένα GPS, κάντε το ως JSON στη παρακάτω μορφή: ```json { "gps" : { "lat" : , "lon" : } } ``` 1. Στείλτε δεδομένα GPS κάθε λεπτό ώστε να μην εξαντλήσετε την ημερήσια κατανομή μηνυμάτων. Αν χρησιμοποιείτε το Wio Terminal, θυμηθείτε να προσθέσετε όλες τις απαραίτητες βιβλιοθήκες και να ρυθμίσετε την ώρα χρησιμοποιώντας έναν NTP server. Ο κώδικάς σας θα πρέπει επίσης να βεβαιωθεί ότι έχει διαβάσει όλα τα δεδομένα από τη σειριακή θύρα πριν στείλει την τοποθεσία GPS, χρησιμοποιώντας τον υπάρχοντα κώδικα από την προηγούμενη ενότητα. Χρησιμοποιήστε τον παρακάτω κώδικα για να κατασκευάσετε το έγγραφο JSON: ```cpp DynamicJsonDocument doc(1024); doc["gps"]["lat"] = gps.location.lat(); doc["gps"]["lon"] = gps.location.lng(); ``` Αν χρησιμοποιείτε μια Εικονική συσκευή IoT, θυμηθείτε να εγκαταστήσετε όλες τις απαραίτητες βιβλιοθήκες χρησιμοποιώντας ένα εικονικό περιβάλλον. Για το Raspberry Pi και την Εικονική συσκευή IoT, χρησιμοποιήστε τον υπάρχοντα κώδικα από την προηγούμενη ενότητα για να λάβετε τις τιμές γεωγραφικού πλάτους και μήκους και στη συνέχεια στείλτε τις στη σωστή μορφή JSON με τον παρακάτω κώδικα: ```python message_json = { "gps" : { "lat":lat, "lon":lon } } print("Sending telemetry", message_json) message = Message(json.dumps(message_json)) ``` > 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στους φακέλους [code/wio-terminal](../../../../../3-transport/lessons/2-store-location-data/code/wio-terminal), [code/pi](../../../../../3-transport/lessons/2-store-location-data/code/pi) ή [code/virtual-device](../../../../../3-transport/lessons/2-store-location-data/code/virtual-device). Εκτελέστε τον κώδικα της συσκευής σας και βεβαιωθείτε ότι τα μηνύματα ρέουν στο IoT Hub χρησιμοποιώντας την εντολή CLI `az iot hub monitor-events`. ## Διαδρομές hot, warm και cold Τα δεδομένα που ρέουν από μια συσκευή IoT στο cloud δεν επεξεργάζονται πάντα σε πραγματικό χρόνο. Κάποια δεδομένα χρειάζονται επεξεργασία σε πραγματικό χρόνο, άλλα μπορούν να επεξεργαστούν λίγο αργότερα και άλλα μπορούν να επεξεργαστούν πολύ αργότερα. Η ροή δεδομένων σε διαφορετικές υπηρεσίες που επεξεργάζονται τα δεδομένα σε διαφορετικούς χρόνους αναφέρεται ως διαδρομές hot, warm και cold. ### Διαδρομή hot Η διαδρομή hot αναφέρεται σε δεδομένα που πρέπει να επεξεργαστούν σε πραγματικό χρόνο ή σχεδόν σε πραγματικό χρόνο. Θα χρησιμοποιούσατε δεδομένα διαδρομής hot για ειδοποιήσεις, όπως ειδοποιήσεις ότι ένα όχημα πλησιάζει σε μια αποθήκη ή ότι η θερμοκρασία σε ένα φορτηγό ψυγείο είναι πολύ υψηλή. Για να χρησιμοποιήσετε δεδομένα διαδρομής hot, ο κώδικάς σας θα ανταποκρίνεται σε συμβάντα μόλις ληφθούν από τις υπηρεσίες cloud σας. ### Διαδρομή warm Η διαδρομή warm αναφέρεται σε δεδομένα που μπορούν να επεξεργαστούν λίγο μετά τη λήψη τους, για παράδειγμα για αναφορές ή αναλύσεις βραχυπρόθεσμου χρόνου. Θα χρησιμοποιούσατε δεδομένα διαδρομής warm για ημερήσιες αναφορές σχετικά με τη χιλιομετρική απόσταση των οχημάτων, χρησιμοποιώντας δεδομένα που συλλέχθηκαν την προηγούμενη ημέρα. Τα δεδομένα διαδρομής warm αποθηκεύονται μόλις ληφθούν από την υπηρεσία cloud μέσα σε κάποιο είδος αποθήκευσης που μπορεί να προσπελαστεί γρήγορα. ### Διαδρομή cold Η διαδρομή cold αναφέρεται σε ιστορικά δεδομένα, αποθηκεύοντας δεδομένα για μακροχρόνια χρήση ώστε να επεξεργαστούν όποτε χρειαστεί. Για παράδειγμα, θα μπορούσατε να χρησιμοποιήσετε τη διαδρομή cold για να λάβετε ετήσιες αναφορές χιλιομετρικής απόστασης για οχήματα ή να εκτελέσετε αναλύσεις σε διαδρομές για να βρείτε την πιο βέλτιστη διαδρομή για μεί > ⚠️ Μπορείτε να ανατρέξετε στις [οδηγίες για τη δημιουργία ενός Azure Functions Project από το project 2, μάθημα 5](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-a-serverless-application) αν χρειαστεί. 1. Προσθέστε έναν ενεργοποιητή συμβάντων IoT Hub που χρησιμοποιεί το συμβατό με Event Hub endpoint του IoT Hub. > ⚠️ Μπορείτε να ανατρέξετε στις [οδηγίες για τη δημιουργία ενός ενεργοποιητή συμβάντων IoT Hub από το έργο 2, μάθημα 5](../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-an-iot-hub-event-trigger) αν χρειαστεί. 1. Ορίστε τη συμβολοσειρά σύνδεσης του συμβατού με Event Hub endpoint στο αρχείο `local.settings.json` και χρησιμοποιήστε το κλειδί για αυτή την καταχώρηση στο αρχείο `function.json`. 1. Χρησιμοποιήστε την εφαρμογή Azurite ως τοπικό εξομοιωτή αποθήκευσης. 1. Εκτελέστε την εφαρμογή των λειτουργιών σας για να βεβαιωθείτε ότι λαμβάνει συμβάντα από τη συσκευή GPS σας. Βεβαιωθείτε ότι η συσκευή IoT σας λειτουργεί επίσης και στέλνει δεδομένα GPS. ```output Python EventHub trigger processed an event: {"gps": {"lat": 47.73481, "lon": -122.25701}} ``` ## Λογαριασμοί Αποθήκευσης Azure ![Το λογότυπο του Azure Storage](../../../../../translated_images/azure-storage-logo.605c0f602c640d482a80f1b35a2629a32d595711b7ab1d7ceea843250615ff32.el.png) Οι Λογαριασμοί Αποθήκευσης Azure είναι μια υπηρεσία γενικής αποθήκευσης που μπορεί να αποθηκεύσει δεδομένα με διάφορους τρόπους. Μπορείτε να αποθηκεύσετε δεδομένα ως blobs, σε ουρές, σε πίνακες ή ως αρχεία, και όλα αυτά ταυτόχρονα. ### Αποθήκευση Blob Η λέξη *Blob* σημαίνει μεγάλα δυαδικά αντικείμενα, αλλά έχει γίνει ο όρος για οποιαδήποτε μη δομημένα δεδομένα. Μπορείτε να αποθηκεύσετε οποιαδήποτε δεδομένα στην αποθήκευση blob, από έγγραφα JSON που περιέχουν δεδομένα IoT, έως αρχεία εικόνων και ταινιών. Η αποθήκευση blob έχει την έννοια των *containers*, δηλαδή ονομασμένων "κάδων" όπου μπορείτε να αποθηκεύσετε δεδομένα, παρόμοια με πίνακες σε μια σχεσιακή βάση δεδομένων. Αυτά τα containers μπορούν να έχουν έναν ή περισσότερους φακέλους για την αποθήκευση blobs, και κάθε φάκελος μπορεί να περιέχει άλλους φακέλους, παρόμοια με τον τρόπο που αποθηκεύονται τα αρχεία στον σκληρό δίσκο του υπολογιστή σας. Θα χρησιμοποιήσετε την αποθήκευση blob σε αυτό το μάθημα για να αποθηκεύσετε δεδομένα IoT. ✅ Κάντε λίγη έρευνα: Διαβάστε για την [Αποθήκευση Blob Azure](https://docs.microsoft.com/azure/storage/blobs/storage-blobs-overview?WT.mc_id=academic-17441-jabenn) ### Αποθήκευση Πινάκων Η αποθήκευση πινάκων σας επιτρέπει να αποθηκεύετε ημιδομημένα δεδομένα. Η αποθήκευση πινάκων είναι στην πραγματικότητα μια βάση δεδομένων NoSQL, οπότε δεν απαιτεί έναν προκαθορισμένο ορισμό πινάκων, αλλά έχει σχεδιαστεί για να αποθηκεύει δεδομένα σε έναν ή περισσότερους πίνακες, με μοναδικά κλειδιά για τον ορισμό κάθε γραμμής. ✅ Κάντε λίγη έρευνα: Διαβάστε για την [Αποθήκευση Πινάκων Azure](https://docs.microsoft.com/azure/storage/tables/table-storage-overview?WT.mc_id=academic-17441-jabenn) ### Αποθήκευση Ουρών Η αποθήκευση ουρών σας επιτρέπει να αποθηκεύετε μηνύματα μεγέθους έως 64KB σε μια ουρά. Μπορείτε να προσθέσετε μηνύματα στο τέλος της ουράς και να τα διαβάσετε από την αρχή. Οι ουρές αποθηκεύουν μηνύματα επ' αόριστον, εφόσον υπάρχει διαθέσιμος χώρος αποθήκευσης, επιτρέποντας την αποθήκευση μηνυμάτων μακροπρόθεσμα και την ανάγνωσή τους όταν χρειάζεται. Για παράδειγμα, αν θέλετε να εκτελέσετε μια μηνιαία εργασία για την επεξεργασία δεδομένων GPS, μπορείτε να προσθέτετε δεδομένα στην ουρά κάθε μέρα για έναν μήνα και στο τέλος του μήνα να επεξεργαστείτε όλα τα μηνύματα από την ουρά. ✅ Κάντε λίγη έρευνα: Διαβάστε για την [Αποθήκευση Ουρών Azure](https://docs.microsoft.com/azure/storage/queues/storage-queues-introduction?WT.mc_id=academic-17441-jabenn) ### Αποθήκευση Αρχείων Η αποθήκευση αρχείων είναι η αποθήκευση αρχείων στο cloud, και οποιεσδήποτε εφαρμογές ή συσκευές μπορούν να συνδεθούν χρησιμοποιώντας πρότυπα πρωτόκολλα της βιομηχανίας. Μπορείτε να γράψετε αρχεία στην αποθήκευση αρχείων και στη συνέχεια να τα προσαρτήσετε ως δίσκο στον υπολογιστή σας. ✅ Κάντε λίγη έρευνα: Διαβάστε για την [Αποθήκευση Αρχείων Azure](https://docs.microsoft.com/azure/storage/files/storage-files-introduction?WT.mc_id=academic-17441-jabenn) ## Συνδέστε τον serverless κώδικά σας με την αποθήκευση Η εφαρμογή λειτουργιών σας τώρα χρειάζεται να συνδεθεί με την αποθήκευση blob για να αποθηκεύσει τα μηνύματα από το IoT Hub. Υπάρχουν 2 τρόποι για να το κάνετε αυτό: * Μέσα στον κώδικα της λειτουργίας, συνδεθείτε με την αποθήκευση blob χρησιμοποιώντας το Python SDK για την αποθήκευση blob και γράψτε τα δεδομένα ως blobs. * Χρησιμοποιήστε μια σύνδεση εξόδου λειτουργίας για να συνδέσετε την τιμή επιστροφής της λειτουργίας με την αποθήκευση blob και να αποθηκεύσετε αυτόματα το blob. Σε αυτό το μάθημα, θα χρησιμοποιήσετε το Python SDK για να δείτε πώς να αλληλεπιδράσετε με την αποθήκευση blob. ![Αποστολή τηλεμετρίας GPS από μια συσκευή IoT στο IoT Hub, στη συνέχεια στις Azure Functions μέσω ενός ενεργοποιητή event hub, και τέλος αποθήκευση στην αποθήκευση blob](../../../../../translated_images/save-telemetry-to-storage-from-functions.ed3b1820980097f143d9f0570072da11304c2bc7906359dfa075b4d9b253c20f.el.png) Τα δεδομένα θα αποθηκευτούν ως JSON blob με την εξής μορφή: ```json { "device_id": , "timestamp" :