Μπορεί Unix shell script να χρησιμοποιηθεί για να χειραγωγήσουν τις βάσεις δεδομένων;

ψήφοι
1

Πρέπει να διαβάσει δεδομένα από ορισμένα αρχεία και τοποθετήστε τα δεδομένα σε διαφορετικούς πίνακες σε μια βάση δεδομένων. Είναι Unix shell script αρκετά ισχυρό για να κάνει τη δουλειά;

Είναι εύκολο να κάνει τη δουλειά στο σενάριο φλοιού ή θα πρέπει να πάει για να κάνει αυτό σε Java;

Δημοσιεύθηκε 16/09/2008 στις 11:39
πηγή χρήστη
Σε άλλες γλώσσες...                            


8 απαντήσεις

ψήφοι
0

Δεν μπορείτε να το δοκιμάσετε τώρα, αλλά κάτι σαν:

echo "INSERT IGNORE  INTO foo (b,a,r) VALUES (1,2,3);" | 
    mysql -u user -psecret -h host database

σε ένα σενάριο φλοιού θα πρέπει να εργαστεί. Δεν ξέρω για να πάρει στοιχεία από αυτό όμως

Απαντήθηκε 16/09/2008 στις 11:42
πηγή χρήστη

ψήφοι
2

είναι δυνατόν: Χρήση του unix shell script σας, να δημιουργήσετε μια δέσμη ενεργειών SQL και να χρησιμοποιήσετε το CLI στη βάση δεδομένων για να εκτελέσει το σενάριο SQL.

εάν ο όγκος των πληροφοριών είναι αρκετά μικρή θα μπορούσε να αξιοποιήσει την SQL στη μνήμη, συμβουλεύω εναντίον του κι αφού ποτέ δεν ξέρεις τι επιφυλάσσει το μέλλον (και θα μπορούσε να είναι πολύ μεγάλο όγκο δεδομένων). Χρησιμοποιώντας μία κλήση ανά αίτηση δεν σας επιτρέπει να επωφεληθείτε από μαζικές πράξεις που μερικές φορές είναι διαθέσιμες.

Απαντήθηκε 16/09/2008 στις 11:43
πηγή χρήστη

ψήφοι
2

Μπορείτε, αλλά θα μπορούσε να είναι λίγο άσχημο, για παράδειγμα, αν χρησιμοποιείτε MySQL και ας υποθέσουμε ότι έχετε μια συμβολοσειρά SQL αποθηκευμένες σε $ sql

echo $sql | mysql -u[user] -p[password] -h[host]

ps θα μπορούσε να είναι μια καλή ιδέα να μας πείτε ποια βάση δεδομένων που χρησιμοποιείτε, ώστε να μπορούμε να προσφέρουμε πιο συγκεκριμένη βοήθεια: p

edit: άλλαξε το παράδειγμα της γραμμής έτσι ώστε να λειτουργεί πραγματικά

Απαντήθηκε 16/09/2008 στις 11:44
πηγή χρήστη

ψήφοι
-2

Shell scripting (Bash ή παρόμοιο) πρωτογενούς πρόθεση δεν είναι να ασχοληθεί με τις βάσεις δεδομένων. Πηγαίνετε για Java ή ακόμα καλύτερα, βόλτα με αυτή την ευκαιρία να μάθουν τα βασικά του scripting γλώσσα όπως η Python ή Ruby.

Απαντήθηκε 16/09/2008 στις 11:44
πηγή χρήστη

ψήφοι
1

Pipe είναι ο φίλος σας.

Για παράδειγμα, στην MySQL:

echo 'load data infile /path/to/the/file into table table_name ...' | 
    mysql -u mysql_user_id -p 

θα πρέπει να κάνει τη δουλειά.

Εφόσον το αρχείο σας με κάποιο τρόπο δομημένο π.χ. κόμμα καρτέλα / διαχωριστεί κ.λπ.

Για λεπτομέρειες, δείτε το εγχειρίδιο για τη βάση δεδομένων σας.

Απαντήθηκε 16/09/2008 στις 11:48
πηγή χρήστη

ψήφοι
2

Φυσικά μπορείτε, υποθέτοντας ότι έχετε μια γραμμή εντολών SQL πελάτη βολικό! Έχω κάνει w / Sybase και την isql πελάτη της γραμμής εντολών. Μπορείτε ακόμη και να πάρετε έξυπνο και να στείλετε τα πράγματα μέσα από awk και στείλτε σενάρια για τη δημιουργία εντολές σχετικά με τη μύγα. Μπορεί να μην είναι ο πιο αποτελεσματικός τρόπος για να κάνει τα πάντα, αλλά υπάρχουν πολλές ευκαιρίες για να λυγίσει Unix χάκερ mojo σας.

Απαντήθηκε 16/09/2008 στις 11:50
πηγή χρήστη

ψήφοι
3

Εάν τα δεδομένα που προσπαθείτε να εισαγάγετε είναι σε λογική μορφή - οριοθετημένο με κόμματα, για παράδειγμα - και server της βάσης δεδομένων σας έχει λογική βοηθητικά προγράμματα γραμμής εντολών, αυτό δεν πρέπει να είναι πρόβλημα. MySQL έχει το «mysqlimport» εργαλείο γραμμής εντολών που θα δέχεται διάφορα επιχειρήματα που περιγράφουν τη μορφή του αρχείου:

mysqlimport \
    --fields-terminated-by=, \
    --ignore-lines=1 \
    --fields-optionally-enclosed-by='"' < datafile.txt

Περνώντας τα δεδομένα μέσω perl / sed / awk μονοκονδυλιές μπορεί να βοηθήσει με να πάρει αυτό στη σωστή μορφή, και το σενάριο κελύφους μπορεί εύκολα να χειριστεί την προτροπή για ονόματα αρχείων, το χειρισμό επιχειρημάτων, κ.λπ.

Χρησιμοποιώντας τα διάφορα εργαλεία γραμμής εντολών που παρέχονται από το Unix είναι ολόκληρο το σημείο του bash scripting. Perl, MySQL, κλπ είναι όλα μέρος αυτής της εργαλειοθήκης.

Απαντήθηκε 16/09/2008 στις 12:10
πηγή χρήστη

ψήφοι
0

Εξαρτάται από το σύστημα διαχείρισης βάσεων δεδομένων σας. Οι περισσότεροι από αυτούς έχουν ισχυρά εργαλεία κέλυφος για την εισαγωγή δεδομένων, κάνοντας ακόμα και κάποιες λειτουργίες ETL. Αυτά τα εργαλεία θα μπορούσαν να είναι ακόμη και πολύ αποδοτικοί και αν υποστηρίζουν χύδην φορτίο - συνήθως Java JDBC δεν μπορεί να το κάνει τόσο εύκολα.

Απαντήθηκε 16/09/2008 στις 18:07
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more