Τα ημιδομημένα δεδομένα έχουν κάποια οργάνωση, αλλά δεν ταιριάζουν απόλυτα σε πίνακες. Οι κεφαλίδες JSON, XML, YAML και email εμπίπτουν όλες σε αυτήν την κατηγορία. Τα δεδομένα έχουν ετικέτες ή κλειδιά που περιγράφουν τη δομή τους, αλλά η δομή μπορεί να διαφέρει από εγγραφή σε εγγραφή. Ένα αντικείμενο JSON μπορεί να έχει ένα πεδίο που δεν υπάρχει σε ένα άλλο. Ένα έγγραφο XML μπορεί να ενσωματώνει στοιχεία διαφορετικά από το επόμενο. Το σχήμα είναι ευέλικτο, μερικές φορές ονομάζεται σχήμα κατά την ανάγνωση. Εφαρμόζετε δομή όταν υποβάλλετε ερώτημα στα δεδομένα, όχι όταν τα αποθηκεύετε.
Τα ημιδομημένα δεδομένα είναι συνηθισμένα στις σύγχρονες εφαρμογές. Τα API επιστρέφουν JSON. Τα αρχεία καταγραφής χρησιμοποιούν ζεύγη κλειδιού-τιμής. Τα αρχεία διαμόρφωσης χρησιμοποιούν YAML. Οι βάσεις δεδομένων εγγράφων NoSQL αποθηκεύουν το JSON εγγενώς. Η ευελιξία είναι χρήσιμη όταν το μοντέλο δεδομένων εξελίσσεται ή μεταβάλλεται. Αποτελεί επίσης μια πρόκληση για την ανάλυση. Η υποβολή ερωτημάτων σε ημιδομημένα δεδομένα απαιτεί διαφορετικά εργαλεία και τεχνικές από την υποβολή ερωτημάτων σε πίνακες. Πρέπει να πλοηγηθείτε σε ένθετες δομές, να χειριστείτε πεδία που λείπουν και να ισοπεδώσετε πίνακες. Οι μηχανές SQL έχουν προσαρμοστεί. Οι PostgreSQL, MySQL και Snowflake υποστηρίζουν όλες συναρτήσεις JSON. Μπορείτε να υποβάλετε ερωτήματα μέσα σε έγγραφα JSON χωρίς να τα εξαγάγετε πρώτα. Αυτή η θολούρα μεταξύ δομημένων και ημιδομημένων δεδομένων καθιστά τη διάκριση λιγότερο σχετική. Το σημαντικό ερώτημα δεν είναι αν τα δεδομένα είναι ημιδομημένα. Είναι αν μπορείτε να τα υποβάλετε ερωτήματα αποτελεσματικά.
Ημι-δομημένες μορφές
- JSON — ζεύγη κλειδιού-τιμής, πίνακες, ένθετα αντικείμενα
- XML — στοιχεία με ετικέτες, ιεραρχικά
- YAML — διαμόρφωση αναγνώσιμη από τον άνθρωπο
- CSV — οριοθετημένο αλλά χωρίς πληροφορίες τύπου
- Αρχεία καταγραφής — συμβάντα με χρονική σήμανση και μεταβλητά πεδία
Τα ημιδομημένα δεδομένα είναι η μέση λύση. Έχουν αρκετή δομή για να είναι χρήσιμα και αρκετή ευελιξία για να είναι ακατάστατα.
Comments (2)
Leave a comment