nikolaos_ Δημοσ. 7 Μαρτίου 2014 Δημοσ. 7 Μαρτίου 2014 Δεν θέλω να ρωτήσω κάτι συγκεκριμένο, θέλω να ανοίξω μια μικρή συζήτηση πάνω στο θέμα αυτής της BDB. Να μάθω αν έχει ασχοληθεί κανείς μαζί της, ποια είναι η χρησιμότητά της, αν είναι εύκολη ή δύσκολη, πώς μπορεί να μάθει κανείς περισσότερα, αν αξίζει τον κόπο, αν την έχει χρησιμοποιήσει κανείς κλπ. Όλα ξεκίνησαν όταν ήθελα να εγκαταστήσω το vsftpd με virtual users. Οι οδηγίες για να το κάνω αυτό βρίσκονται στην εξής ιστοσελίδα: http://www.neant.ro/2012/04/secure-ftp-with-vsftpd/ Δεν είχα ιδιαίτερο πρόβλημα να τις εκτελέσω, δεν είναι αυτό το θέμα εδώ. Μου κίνησε την περιέργεια το PAM και το db_load (το οποίο θεωρούσα εντολή του Linux) και έψαξα λίγο για αυτά και από εκεί ξετρύπωσα τη BDB. Δεν μπορώ να πω ότι κατάλαβα και πολλά πράγματα όμως, μου φαίνεται σαν μια απλή εφαρμογή αποθήκευσης ζευγαριών λεξικού {key, value}. Δεν είναι σχεσιακή, δεν είναι "στάνταρ", δεν είναι από αυτό, δεν είναι από το άλλο... τι στο καλό είναι και πώς αξιοποιείται; Πολλές από τις δραστηριότητές μου εμπλέκουν την ύπαρξη ενός λεξικού {k,v} το οποίο μεταβάλλεται σχετικά αργά, οπότε με έχει κεντρίσει μήπως αξίζει να μάθω μερικά πράγματα για αυτό. Αλλά από ελληνικές πηγές, υπάρχουν ελάχιστες, ενώ δεν έχω βρει πολλά tutorials για τον αρχάριο. Τα σχόλια είναι ελεύθερα.
Aztec Δημοσ. 7 Μαρτίου 2014 Δημοσ. 7 Μαρτίου 2014 Θα σου απαντήσω με ερώτηση Ας πούμε ότι θέλεις να φτιάξεις μια portable εφαρμογή η οποία να είναι μικρή σε μέγεθος, να χρησιμοποιεί ένα storage system για να αποθηκεύει τα δεδομένα και να έχεις όσο το δυνατον μικρότερο overhead απο SQL parsing και Query oprimization. Θα σε βόλευε η BDB ?
ParhsG Δημοσ. 7 Μαρτίου 2014 Δημοσ. 7 Μαρτίου 2014 Την εχω δει αλλα υπαρχουν και καλυτερες. Εχει καποια προβληματα
chaos686 Δημοσ. 7 Μαρτίου 2014 Δημοσ. 7 Μαρτίου 2014 Γενικά εκτός από τις σχεσιακές βάσεις υπάρχουν και οι λεγόμενες NoSQL (Not Only SQL). Βρίσκονται σε άνθηση τελευταία καθώς υπάρχει μεγάλη ανάπτυξη στο τομέα των Big Data όπου αυτές οι βάσεις χρησιμοποιούνται αποκλειστικά καθώς μπορούν να πατάνε πάνω σε κατανεμημένα file systems. Αν θες να το ψάξεις παραπάνω δες εργαλεία όπως τα Hadοοp, Spark, Storm (όλα του Apache). Οι NoSql βάσεις χωρίζονται σε 4 κατηγορίες: Column Oriented: πχ Hbase, Cassandra κτλ. με αρκετά βαρύ θεωρητικό υπόβαθρο Document Oriented: πχ. MongoDB, CouchDB, όπου αποθηκεύουν τα δεδομένα συνήθως σε μορφή JSON Key-Value stores: (Εδώ είσαι) όπου κάποιες τρέχουν εξ ολοκλήρου στη RAM Graph databases: όπου αποθηκεύουν τα δεδομένα σε μορφή γράφου (nodes, edges, connections) Δεν έχω χρόνο να δω τι είναι αυτό που θέλεις να κάνεις, αλλά αν τα δεδομένα που έχεις δεν έχουν μεγάλο όγκο θα σου πρότεινα να δεις την Redis, που τρέχει στη μνήμη είναι open source έχει APIs για πολλές γλώσσες και έχει πολύ καλό documentation. 1
nikolaos_ Δημοσ. 7 Μαρτίου 2014 Μέλος Δημοσ. 7 Μαρτίου 2014 Θα σου απαντήσω με ερώτηση Ας πούμε ότι θέλεις να φτιάξεις μια portable εφαρμογή η οποία να είναι μικρή σε μέγεθος, να χρησιμοποιεί ένα storage system για να αποθηκεύει τα δεδομένα και να έχεις όσο το δυνατον μικρότερο overhead απο SQL parsing και Query oprimization. Θα σε βόλευε η BDB ? Πώς μπορώ να απαντήσω, αν δεν ξέρω πώς μπορώ να οργανώσω τα δεδομένα μου στην BDB; Δεν είναι σχεσιακή ΒΔ, για να πω ότι είναι ισοδύναμη της μηχανής InnoDB της mysql (την οποία έχω δουλέψει γιατί μου αρέσουν τα indexes, τα ξένα κλειδιά κλπ.) Μοιάζει με την MyISAM μήπως (που δεν έχω δουλέψει τόσο); Γι' αυτό έκανα προηγουμένως την ερώτηση για την {key, value} δομή. Portable εφαρμογή προς το παρόν και προς το άμεσο μέλλον δεν βλέπω να κάνω. Όμως έχω ανάγκη να γίνεται γρήγορη αναζήτηση και έτσι να εξυπηρετεί σχεδόν-ταυτόχρονα πολλές αιτήσεις αναζήτησης. Σε αυτή την περίπτωση το όποιο χρονικό overhead ελαχιστοποιείται με ενδιαφέρει. Πάντως για δεδομένα της τάξης των 1000-1500 εγγραφών, γιατί να μην χρησιμοποιήσω τις εσωτερικές δομές μιας γλώσσας προγραμματισμού, αλλά να εισαγάγω τη βιβλιοθήκη της BDB; Βέβαια έχω και δεδομένα που φτάνουν τα εκατομμύρια εγγραφές μέσα σε μια εβδομάδα (αλλά στηρίζονται δομικά πάνω σε αυτά τα 1000-1500). (Παρένθεση. Δεν θεωρώ τον εαυτό μου προγραμματιστή, πόσο μάλλον developer, αλλά μπορώ έχοντας κάποιες γνώσεις και με προσπάθεια, να γράψω κάποιον κώδικα -- συνήθως τα αναθέτω σε συνεργάτες αλλά τότε πρέπει να ξέρω τι έχει κάνει). Επίσης η BDB υποστηρίζει, από ό,τι κατάλαβα από όσα διάβασα, SQL και άρα έχει το parsing overhead. Τώρα για τα σύνθετα queries, που επιδέχονται βελτιστοποίηση, δεν έχω ιδιαίτερη γνώμη, εφόσον δεν αντιλαμβάνομαι πώς πρέπει να είναι οργανωμένα τα δεδομένα μου στην BDB. Την εχω δει αλλα υπαρχουν και καλυτερες. Εχει καποια προβληματα Όπως;
Aztec Δημοσ. 7 Μαρτίου 2014 Δημοσ. 7 Μαρτίου 2014 (επεξεργασμένο) Επίσης η BDB υποστηρίζει, από ό,τι κατάλαβα από όσα διάβασα, SQL και άρα έχει το parsing overhead. Η υλοποίηση της SQL είναι κάτι καινούργιο και αν θέλεις το χρησιμοποιείς. Έχεις την δυνατότητα να παίξεις όπως παλιά κλασικά με key value pairs. Να χρησιμοποιείς τις εσωτερικές δομές ??? και όταν κλείσει η εφαρμογή πως θα ανακτήσεις τα δεδομένα ? εννοείς να τα κρατήσεις σε XML η flat files ? ψρειαζεσαι σχεσιακή ? SQL ? τι είναι αυτό που θες να κάνεις ? πόσους πίνακες θες να έχεις και κατα πόσο θα αλλάζουν τα ερωτήματα στην βάση ? και μην ξεχνας είναι embedded επίσης δες μια εδώ http://www.oracle.com/technetwork/articles/embedded/seltzer-berkeleydb-sql-086752.html αν ήθελα να κρατάω rows και να τα ανακτώ γρήγορα μπορώ σωστά ? για να κλείσω Not all SQL applications should be implemented in Oracle Berkeley DB--an open source, embeddable database engine that provides fast, reliable, local persistence with zero administration required--but if you have a relatively fixed set of queries and you care about performance, Berkeley DB may just be the way to go. Επεξ/σία 7 Μαρτίου 2014 από Aztec
Directx Δημοσ. 8 Μαρτίου 2014 Δημοσ. 8 Μαρτίου 2014 Πάντως αν η ΒΔ σου δεν έχει μεγάλες απαιτήσεις και επιθυμείς την χρήση του σχεσιακού μοντέλου μπορείς να δεις και την SQLITE η οποία υλοποιεί μια πλήρη βάση δεδομένων SQL κυριολεκτικά σε ένα DLL αρχείο 2
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα