Luciddream Δημοσ. 17 Φεβρουαρίου 2016 Δημοσ. 17 Φεβρουαρίου 2016 Τοπικ για κουβέντα περισσότερο... εδώ και καιρό δουλεύω πολύ με δεδομένα αποθηκευμένα σε XML αρχεία. Κατα την γνώμη μου έχει τα αρνητικά του, αλλά έχει και τα θετικά του. Όταν λέω για δεδομένα εννοώ αρχεία τουλάχιστον 50-100mb το καθένα, ίσως και παραπάνω. Έχω την απορία τι άλλες μορφές γενικά χρησιμοποιούνται? Για να γίνω και λίγο πιο συγκεκριμένος, μιλάω για δεδομένα που θα μπορούν να στέλνονται με κάποιον τρόπο σαν αρχεία απο διάφορους χρήστες, αλλά και να μπορούν να διαβάζονται/γράφονται απο άνθρωπο, έστω και με χρήση ειδικού προγράμματος (αλλά όχι πολύ ειδικού που να το καθιστά δύσκολο να υιοθετηθεί, π.χ excel / ms-access) Με λίγο Googling βρίσκω JSON, YAML, LUA. Υπάρχουν χρήσεις για αυτά? Έχουν κάποια πλεονεκτήματα? Υποθέτω ότι θα βρεθεί κάποιος να μου πει ότι JSON > XML, προσωπικά αν και έχω χρησιμοποιήσει JSON σε αρκετές περιπτώσεις, δεν νομίζω ότι μπορεί απλά να το αντικαθιστήσει. Υπάρχουν πολλά εργαλεία για XML που σου κάνουν την ζωή πιο εύκολη, ακόμα και αν έχουν ένα μικρό learning curve.
albNik Δημοσ. 17 Φεβρουαρίου 2016 Δημοσ. 17 Φεβρουαρίου 2016 Δες και αυτο απο την google https://developers.google.com/protocol-buffers/docs/overview 1
defacer Δημοσ. 17 Φεβρουαρίου 2016 Δημοσ. 17 Φεβρουαρίου 2016 Με λίγο Googling βρίσκω JSON, YAML, LUA. Υπάρχουν χρήσεις για αυτά? Έχουν κάποια πλεονεκτήματα? Υποθέτω ότι θα βρεθεί κάποιος να μου πει ότι JSON > XML, προσωπικά αν και έχω χρησιμοποιήσει JSON σε αρκετές περιπτώσεις, δεν νομίζω ότι μπορεί απλά να το αντικαθιστήσει. Υπάρχουν πολλά εργαλεία για XML που σου κάνουν την ζωή πιο εύκολη, ακόμα και αν έχουν ένα μικρό learning curve. Φυσικά και "υπάρχουν χρήσεις" για όλα αυτά format, αλλά δεν καταλαβαίνω καθόλου τι θες να μάθεις.
Luciddream Δημοσ. 17 Φεβρουαρίου 2016 Μέλος Δημοσ. 17 Φεβρουαρίου 2016 Φυσικά και "υπάρχουν χρήσεις" για όλα αυτά format, αλλά δεν καταλαβαίνω καθόλου τι θες να μάθεις. Θέλω να δω αν υπάρχει κάτι εναλλακτικό που θα μπορούσε να δουλέψει αντίστοιχα με το XML. Ειδικά όταν μιλάμε για πολύπλοκες μορφές δεδομένων, π.χ για δεδομένα που το CSV δεν θα μπορούσε να χρησιμοποιηθεί. Και φυσικά για δεδομένα μεγάλου μεγέθους, 100+ MB το κάθε αρχείο. Κάπου πήρε το μάτι μου όταν έψαχνα κάποιος που δούλευε με YAML 400mb αρχείο. Επίσης θέλω να καταλάβω αν όντως έχουν πλεονεκτήματα οι άλλες μορφές, ή όχι, αλλα μόνο για θέματα αποθήκευσης/human readability ή σε ταχύτητα ανάγνωσης/επεξεργασίας. Το ότι έχουν πλεονεκτήματα σε μεταφορά μέσω network το ξέρω και το δέχομαι, αλλά για τα άλλα δεν ξέρω. Επίσης στο site του JSON και των protocol buffers, αναγράφεται ότι είναι έως και 100 φορές πιο γρήγορα. Απο που βγαίνει αυτό? Δεν ξέρω καν αν ισχύει
defacer Δημοσ. 17 Φεβρουαρίου 2016 Δημοσ. 17 Φεβρουαρίου 2016 Δεν είναι προφανές ότι τα formats που αναφέρεις έχουν λιγότερο ceremony από XML οπότε σε θέματα readability και ταχύτητα επεξεργασίας είναι καλύτερα; Το θέμα είναι αν αυτά τα πλεονεκτήματα σε ενδιαφέρουν περισσότερο από τα πλεονεκτήματα της XML ή όχι.
Luciddream Δημοσ. 17 Φεβρουαρίου 2016 Μέλος Δημοσ. 17 Φεβρουαρίου 2016 Όσον αφορά το JSON, δεν μου φαίνεται καθόλου readable, ή ίσως δεν έχω βρει το κατάλληλο εργαλείο για να το κάνει. Αν έχεις μια πολύπλοκη μορφή που δεν χωράει στην οθόνη και θέλει scrolling, χάνεται η μπάλα. Επίσης αν θέλεις να κάνεις queries πάνω στα data δεν ξέρω αν υπάρχει κάτι αντίστοιχο του XPATH, και desktop εργαλεία για να το κάνεις, τα οποία να έχουν και ένα σχετικό performance. Βλέπω ένα http://goessner.net/articles/JsonPath/ αλλά δεν ξέρω πόσο χρησιμοποιείται απο τον κόσμο / προγραμματιστές / κτλπ. Για τα άλλα δεν ξέρω, γιαυτό και ρωτάω μήπως έχει κανείς κάποια εμπειρία και είδε ότι του κάνει την ζωή πιο εύκολη.
Papakaliati Δημοσ. 17 Φεβρουαρίου 2016 Δημοσ. 17 Φεβρουαρίου 2016 Όσον αφορά το JSON, δεν μου φαίνεται καθόλου readable, ή ίσως δεν έχω βρει το κατάλληλο εργαλείο για να το κάνει. Αν έχεις μια πολύπλοκη μορφή που δεν χωράει στην οθόνη και θέλει scrolling, χάνεται η μπάλα. Επίσης αν θέλεις να κάνεις queries πάνω στα data δεν ξέρω αν υπάρχει κάτι αντίστοιχο του XPATH, και desktop εργαλεία για να το κάνεις, τα οποία να έχουν και ένα σχετικό performance. Βλέπω ένα http://goessner.net/articles/JsonPath/ αλλά δεν ξέρω πόσο χρησιμοποιείται απο τον κόσμο / προγραμματιστές / κτλπ. Για τα άλλα δεν ξέρω, γιαυτό και ρωτάω μήπως έχει κανείς κάποια εμπειρία και είδε ότι του κάνει την ζωή πιο εύκολη. Ποιο σου φαινεται πιο readable εσενα; Here is how a simple JSON piece of data may look (140 characters): { "id": 123, "title": "Object Thinking", "author": "David West", "published": { "by": "Microsoft Press", "year": 2004 } } A similar document would look like this in XML (167 characters): <?xml version="1.0"?> <book id="123"> <title>Object Thinking</title> <author>David West</author> <published> <by>Microsoft Press</by> <year>2004</year> </published> </book> Απο εκει και περα εξαρταται τι χρειαζεσαι. Πχ αμα δουλευεις javascript, δεν υπαρχει θεμα συζητησης. Αλλιως μια συντομη συγκριση ειναι : JSONPro: Simple syntax, which results in less "markup" overhead compared to XML. Easy to use with JavaScript as the markup is a subset of JS object literal notation and has the same basic data types as JavaScript. JSON Schema for description and datatype and structure validation Con: Simple syntax, only a handful of different data types are supported. XMLPro: Generalized markup; it is possible to create "dialects" for any kind of purpose XML Schema for datatype, structure validation. Makes it also possible to create new datatypes XSLT for transformation into different output formats XPath/XQuery for extracting information (which makes getting information in deeply nested structures much easier then with JSON) built in support for namespaces Con: Relatively wordy compared to JSON (results in more data for the same amount of information) http://stackoverflow.com/a/4862511/3042778 1
defacer Δημοσ. 17 Φεβρουαρίου 2016 Δημοσ. 17 Φεβρουαρίου 2016 Όσον αφορά το JSON, δεν μου φαίνεται καθόλου readable, ή ίσως δεν έχω βρει το κατάλληλο εργαλείο για να το κάνει. Αν έχεις μια πολύπλοκη μορφή που δεν χωράει στην οθόνη και θέλει scrolling, χάνεται η μπάλα. Το ίδιο και με την XML και με οποιοδήποτε άλλο format. Τώρα αν βλέπεις τα δεδομένα μέσα από κάποιο πρόγραμμα το οποίο σου κάνει folding και άλλες ευκολίες, αυτό είναι θέμα του προγράμματος όχι του format. Επίσης αν θέλεις να κάνεις queries πάνω στα data δεν ξέρω αν υπάρχει κάτι αντίστοιχο του XPATH, και desktop εργαλεία για να το κάνεις, τα οποία να έχουν και ένα σχετικό performance. Βεβαίως, αλλά μόλις άλλαξες θέμα (λέγαμε πριν για readability και ταχύτητα ανάγνωσης). Βλέπω ένα http://goessner.net/articles/JsonPath/ αλλά δεν ξέρω πόσο χρησιμοποιείται απο τον κόσμο / προγραμματιστές / κτλπ. Δες το θέμα πρακτικά. Σου χρειάζεται κάτι τέτοιο; Δουλεύει; Είναι ικανοποιητικές οι επιδόσεις; Αν ναι και στα τρία, δε χρειάζεται να αναρωτιέσαι. Αν όχι έστω και σε ένα από τα τρία, δε χρειάζεται να ασχολείσαι. Για τα άλλα δεν ξέρω, γιαυτό και ρωτάω μήπως έχει κανείς κάποια εμπειρία και είδε ότι του κάνει την ζωή πιο εύκολη. Λοιπόν έχουμε καταλήξει ότι η ερώτησή σου βασικά θέλει την απάντηση "use the right tool for the job". Στο απο πάνω post βλέπεις μερικά +/- κάθε προσέγγισης, απο κει και πέρα το να ρωτήσεις "what is the right tool for the job" θέλει είτε να μας πεις συγκεκριμένα για ποιό job μιλάμε είτε να γράψουμε διατριβή που να τα καλύπτει όλα.
Luciddream Δημοσ. 17 Φεβρουαρίου 2016 Μέλος Δημοσ. 17 Φεβρουαρίου 2016 Το ίδιο και με την XML και με οποιοδήποτε άλλο format. Τώρα αν βλέπεις τα δεδομένα μέσα από κάποιο πρόγραμμα το οποίο σου κάνει folding και άλλες ευκολίες, αυτό είναι θέμα του προγράμματος όχι του format. Μα με ενδιαφέρει το πως χρησιμοποιείται αυτό το format, τι εργαλεία υπάρχουν, και πως χρησιμοποιούνται απο τον κόσμο. Είναι βασικό κομμάτι της χρήσης ενός format. Βεβαίως, αλλά μόλις άλλαξες θέμα (λέγαμε πριν για readability και ταχύτητα ανάγνωσης). Readability εννοώ απο ανθρώπους, ταχύτητα ανάγνωσης / επεξεργασίας εννοώ το πως χρησιμοποιείται απο τα προγράμματα. Αλλά και το readability ενισχύεται απο ένα καλό IDE. Για παράδειγμα, το XML έχει τα πολύ δυνατά OxygenXML, Basex, Plugins σε IntelliJ κ.α. Απλά δεν ήθελα να μπω σε πολλές λεπτομέρειες για το XML, γιατί το χρησιμοποιώ ήδη καιρό και ξέρω τα δυνατά του σημεία. Δες το θέμα πρακτικά. Σου χρειάζεται κάτι τέτοιο; Δουλεύει; Είναι ικανοποιητικές οι επιδόσεις; Δεν μπορώ να ξέρω κάτι απο τα τρία. Γιαυτό και ρωτάω. Το XML ξέρω ότι δουλεύει, ότι δεν είναι και ιδιαίτερα πρακτικό, και για τις επιδόσεις δεν μπορώ να ξέρω αν δεν το συγκρίνω με κάποιο άλλο format. Το ότι γράφει το JSON και τα protocol buffers ότι είναι πιο γρήγορα απο το XML το θεωρώ τουλάχιστον αστείο, χωρίς σωστά benchmark. απο κει και πέρα το να ρωτήσεις "what is the right tool for the job" θέλει είτε να μας πεις συγκεκριμένα για ποιό job μιλάμε Ας πάρουμε για παράδειγμα το ODF format, αν και έχει πολύ μικρότερη πολυπλοκότητα απο τα δεδομένα για τα οποία γράφω κώδικα. Θα μπορούσε να χρησιμοποιηθεί κάποιο άλλο storage format εκτός XML? Θα ήταν readable? Υπάρχουν προγράμματα που τα χρησιμοποιούν? Υπάρχουν plugins, IDEs, εργαλεία για ανάκτηση δεδομένων με χρήση queries π.χ απο αυτά τα format? Ποιο σου φαινεται πιο readable εσενα; Για 10 γραμμές αρχείο λογικό να μην φαίνεται διαφορά ή να φαίνεται η υπεροχή του JSON, αλλά τι γίνεται με πιο πολύπλοκα δεδομένα? Προσωπικά έχω δουλέψει και με τα δύο, και δεν με βολεύει το JSON. Έχω γράψει και JSON-LD και νομίζω ότι δεν συγκρίνεται με το RDF-XML σε readability, και ας έχει περισσότερα πλεονεκτήματα Παρόλα αυτά, μπορεί να μην χρησιμοποιώ το κατάλληλο εργαλείο (IDE,editor,κτλπ), γιαυτό και ρωτάω μήπως έχει κανείς άποψη. Υ.Γ Θα ήταν καλό αν όσοι απαντούν δεν προσπαθούν να βρουν "λύση" στο τοπικ. Δεν λύνονται όλα τα τοπικ. Κουβέντα προσπαθώ να κάνω για να δω τι υπάρχει και ίσως να έχει και άλλος την ίδια η παρόμοια απορία και να τον βοηθήσουμε.
Papakaliati Δημοσ. 17 Φεβρουαρίου 2016 Δημοσ. 17 Φεβρουαρίου 2016 Μα με ενδιαφέρει το πως χρησιμοποιείται αυτό το format, τι εργαλεία υπάρχουν, και πως χρησιμοποιούνται απο τον κόσμο. Είναι βασικό κομμάτι της χρήσης ενός format. Readability εννοώ απο ανθρώπους, ταχύτητα ανάγνωσης / επεξεργασίας εννοώ το πως χρησιμοποιείται απο τα προγράμματα. Αλλά και το readability ενισχύεται απο ένα καλό IDE. Για παράδειγμα, το XML έχει τα πολύ δυνατά OxygenXML, Basex, Plugins σε IntelliJ κ.α. Απλά δεν ήθελα να μπω σε πολλές λεπτομέρειες για το XML, γιατί το χρησιμοποιώ ήδη καιρό και ξέρω τα δυνατά του σημεία. Δεν μπορώ να ξέρω κάτι απο τα τρία. Γιαυτό και ρωτάω. Το XML ξέρω ότι δουλεύει, ότι δεν είναι και ιδιαίτερα πρακτικό, και για τις επιδόσεις δεν μπορώ να ξέρω αν δεν το συγκρίνω με κάποιο άλλο format. Το ότι γράφει το JSON και τα protocol buffers ότι είναι πιο γρήγορα απο το XML το θεωρώ τουλάχιστον αστείο, χωρίς σωστά benchmark. Ας πάρουμε για παράδειγμα το ODF format, αν και έχει πολύ μικρότερη πολυπλοκότητα απο τα δεδομένα για τα οποία γράφω κώδικα. Θα μπορούσε να χρησιμοποιηθεί κάποιο άλλο storage format εκτός XML? Θα ήταν readable? Υπάρχουν προγράμματα που τα χρησιμοποιούν? Υπάρχουν plugins, IDEs, εργαλεία για ανάκτηση δεδομένων με χρήση queries π.χ απο αυτά τα format? Για 10 γραμμές αρχείο λογικό να μην φαίνεται διαφορά ή να φαίνεται η υπεροχή του JSON, αλλά τι γίνεται με πιο πολύπλοκα δεδομένα? Προσωπικά έχω δουλέψει και με τα δύο, και δεν με βολεύει το JSON. Έχω γράψει και JSON-LD και νομίζω ότι δεν συγκρίνεται με το RDF-XML σε readability, και ας έχει περισσότερα πλεονεκτήματα Σαν να τα εχεις μπερδεψει λιγο. Δεν σε νοιαζει ουτε ολη η ιστορια του φορματ, ουτε το πως μπορει να το χρησιμοποιει καποιος αλλος, ουτε το τι εργαλεια ενδεχομενος να υπαρχουνε. Το μονο που σε ενδιαφερει ειναι πως θα σε βολεψει για την δουλεια που θελεις να κανεις εσυ, στον τομεα που σε ενδιαφερει. Σιγα πια την πολυπλοκοτητα και των δυο που θα σε οδηγησει στο να χρησιμοποιησεις εφαρμογες OxygenXML η ξερω εγω τι αλλο. Το μονο που θελεις ειναι ενας editor και ενα site τυπου http://jsonlint.com για να στα κανει expand and error checking... Αμα δεν προκεται να φτιαξεις κανενα Youtube, δυσκολα να μιλαμε για προβληματα αποδοσης. Και στην τελικη αμα θελεις να δεις ποιο εχει καλυτερες επιδοσεις και το πιο ευκολο να δουλεψεις, κατσε γραψε 3 προγραμματακια για την καθε περιπτωση, βαλε το να κανει μερικα αρχεια και κρινε μονος σου. Ειναι πραγματικα απο τις ευκολες περιπτωσεις που μπορεις μονος σου να συγκρινεις.
Luciddream Δημοσ. 17 Φεβρουαρίου 2016 Μέλος Δημοσ. 17 Φεβρουαρίου 2016 ΟΚ, πλεόν είμαι και σίγουρος ότι κάποιοι απαντάνε χωρις να διαβάζουν καν τα ποστ. Πως θα κάνεις paste 100-400 megabyte αρχείο στο jsonlint.com και τι θεωρείς ότι δεν είναι πολύπλοκο στο να κάνεις retrieve και επεξεργασία δεδομένων απο τόσο μεγάλο αρχείο.. δεν ξέρω. Πως θα γίνει validate το schema (είτε json είτε xml είτε whatever), πάλι δεν μου το απαντας. Πως θα ψάξεις π.χ μέσα στο JSON ή στο τάδε format, να βρεις συγκεκριμένα data που να συσχετίζονται με άλλα data. (π.χ να είναι childs του ίδιου parent, ή siblings, ή whatever) Φυσικά και είναι πράγματα που μετράνε, όταν θέλεις να έχεις validation στα δεδομένα σου, και όταν θέλεις να βρίσκεις γρήγορα λάθη σε αυτά. Το ότι δεν τα έχεις χρειαστεί εσύ για κάποια δουλειά δεν σημαίνει ότι δεν χρειάζονται σε άλλες περιπτώσεις. Δεν μπορώ να καταλάβω πραγματικά γιατί είστε τόσο προκατειλειμένοι. Ξεκολλήστε λίγο.
ZAKKWYLDE Δημοσ. 17 Φεβρουαρίου 2016 Δημοσ. 17 Φεβρουαρίου 2016 Επίσης αν θέλεις να κάνεις queries πάνω στα data δεν ξέρω αν υπάρχει κάτι αντίστοιχο του XPATH, και desktop εργαλεία για να το κάνεις, τα οποία να έχουν και ένα σχετικό performance. Βλέπω ένα http://goessner.net/articles/JsonPath/ αλλά δεν ξέρω πόσο χρησιμοποιείται απο τον κόσμο / προγραμματιστές / κτλπ. Είναι πολύ καλό το JsonPath, ευκολότερο ίσως και απο το XPath. Τα JSON είτε τα γράφεις σωστά δομημένα (όπως και τα XML αν θέλεις να είναι readable. Η απλά τα περνάς μέσα απο έναν prettifier.
Επισκέπτης Δημοσ. 18 Φεβρουαρίου 2016 Δημοσ. 18 Φεβρουαρίου 2016 Αν έχεις αρχεία 400Mb μήπως θα ήταν καλύτερα να τα βάλεις σε μια database αντί να τα επεξεργάζεσαι χύμα; Μου φαίνεται ότι προσπαθείς να εφεύρεις τον τροχό.
ZAKKWYLDE Δημοσ. 18 Φεβρουαρίου 2016 Δημοσ. 18 Φεβρουαρίου 2016 Ε ναι το να κάνεις query τα data σου με xpath/jsonpath ε είναι λίγο θέμα. Ούτε indexing, ούτε constraints, ούτε transactions. Στη χειρότερη ρίξτα σε μια MongoDB και παίξε με filter/map/reduce που είναι σαφώς πιο intuitive απο xpath/jsonpath
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα