Sobes.tech

Data Engineer

Έχετε εμπειρία με το web-πλαίσιο Gin; Διηγηθείτε μας λεπτομερώς ποιες εργασίες λύσατε με αυτό.

Junior
169

Υπάρχουν δύο συναλλαγές. Αρχικά, η πρώτη συναλλαγή εκτελεί μια εντολή. Στη συνέχεια, η δεύτερη συναλλαγή εκτελεί μια εντολή. Μετά, η πρώτη συναλλαγή συνεχίζει. Ποια ακολουθία θα οδηγήσει σε αμοιβαίο αποκλεισμό; ```sql -- πρώτη συναλλαγή update accounts set balance = balance + 100 where id = ?; -- δεύτερη συναλλαγή update accounts set balance = balance - 50 where id = ?; update accounts set balance = balance + 200 where id = ?; ```

Junior
167

Στο PostgreSQL, είναι απαραίτητο να βελτιστοποιηθεί η απόδοση των συναλλαγών με το ελάχιστο επίπεδο απομόνωσης, στο οποίο: • οι παράλληλες συναλλαγές μπορούν να δουν μη ολοκληρωμένες αλλαγές η μία της άλλης; • είναι δυνατά "βρώμικα διαβάσματα" (dirty read). Ποιο επίπεδο απομόνωσης πρέπει να οριστεί για τη συναλλαγή για να επιτευχθεί αυτός ο στόχος; το dirty read δεν είναι δυνατό στο PostgreSQL repeatable read read uncommitted read committed serializable

Junior
166

Πώς αποκαθιστάτε την εργασία από ένα απομακρυσμένο κλαδί αν λαμβάνετε μήνυμα σφάλματος ότι το κλαδί δεν βρέθηκε όταν προσπαθείτε να κάνετε `git checkout hotfix/missing-footer`;

Junior
165

Ανάλυση δραστηριότητας χρηστών σε διαφημιστικές καμπάνιες Η εταιρεία διατηρεί αρχείο γεγονότων που σχετίζονται με διαφημιστικές καμπάνιες. Παρέχονται δύο πίνακες: • campaigns — λίστα διαφημιστικών καμπανιών με τους αναγνωριστικούς και ονόματά τους; • events — γεγονότα χρηστών ανά καμπάνια με πληροφορίες σχετικά με τον τύπο του γεγονότος (π.χ. 'click' (κλικ)) και τον χρόνο. Απαιτείται η δημιουργία αναφοράς για κάθε καμπάνια με τα ακόλουθα δείκτες: • Συνολικός αριθμός γεγονότων. • Αριθμός μοναδικών χρηστών που πραγματοποίησαν γεγονότα. • Χρόνος του πρώτου και τελευταίου γεγονότος ανά καμπάνια. • Κατάταξη της καμπάνιας κατά φθίνουσα σειρά του συνολικού αριθμού γεγονότων. Η κατάταξη είναι ένας αριθμός που αποδίδεται σε κάθε γραμμή στο σύνολο αποτελεσμάτων βάσει της σειράς των δεδομένων. Αν δύο ή περισσότερες γραμμές έχουν την ίδια τιμή, λαμβάνουν την ίδια κατάταξη, αλλά η επόμενη κατάταξη παραλείπεται. Η αναφορά πρέπει να περιλαμβάνει μόνο καμπάνιες που είχαν γεγονότα: οι καμπάνιες χωρίς γεγονότα δεν λαμβάνονται υπόψη. Το τελικό αναφορά πρέπει να ταξινομηθεί πρώτα κατά την κατάταξη της καμπάνιας σε αύξουσα σειρά, και στη συνέχεια κατά το campaign_name σε αλφαβητική σειρά. Μορφή εισόδου • campaign_name (string) — όνομα διαφημιστικής καμπάνιας • start_date (timestamp) — ημερομηνία και ώρα έναρξης της καμπάνιας • end_date (timestamp) — ημερομηνία και ώρα λήξης της καμπάνιας Πίνακας events: • event_id (int) — μοναδικός αναγνωριστικός αριθμός γεγονότος • user_id (int) — μοναδικός αναγνωριστικός αριθμός χρήστη που πραγματοποίησε το γεγονός • campaign_id (int) — μοναδικός αναγνωριστικός αριθμός καμπάνιας • event_type (string) — τύπος γεγονότος, π.χ. 'click' ή 'conversion' • event_time (timestamp) — ημερομηνία και ώρα γεγονότος Τα δεδομένα δεν περιέχουν ελλείποντα ή λανθασμένα στοιχεία. Μορφή εξόδου Το ερώτημα πρέπει να επιστρέφει έναν πίνακα με τα πεδία με αυτή τη σειρά: • campaign_name (string) — όνομα διαφημιστικής καμπάνιας • total_events (int) — συνολικός αριθμός γεγονότων που σχετίζονται με την καμπάνια • unique_users (int) — αριθμός μοναδικών χρηστών που πραγματοποίησαν γεγονότα • first_event_time (timestamp) — ημερομηνία και ώρα του πρώτου γεγονότος της καμπάνιας • last_event_time (timestamp) — ημερομηνία και ώρα του τελευταίου γεγονότος της καμπάνιας • campaign_rank (int) — κατάταξη της καμπάνιας κατά φθίνουσα σειρά του συνολικού αριθμού γεγονότων Ταξινομήστε τα δεδομένα κατά την κατάταξη της καμπάνιας σε αύξουσα σειρά, και στη συνέχεια κατά το campaign_name σε αλφαβητική σειρά.

Junior
162

Τι πρέπει να κάνετε αν θέλετε να αλλάξετε το κλαδί στο οποίο δείχνει ένα υπο-μονάδα; - Οι υπο-μονάδες δεν υποστηρίζουν την αλλαγή κλάδου - Διαγράψτε το υπο-μονάδα και προσθέστε το ξανά με το επιθυμητό κλαδί - Αλλάξτε το κλαδί στο υπο-μονάδα και κάντε ένα commit στο κύριο αποθετήριο - Εκτελέστε git checkout στο επιθυμητό κλαδί στο υπο-μονάδα και καταγράψτε τις αλλαγές στο κύριο αποθετήριο - Εκτελέστε git submodule update --branch καθορίζοντας το νέο κλαδί

Junior
161

Γιατί εξετάζετε προτάσεις εργασίας αυτήν τη στιγμή;

Junior
156

Το κλαδί feature περιέχει αρκετά commits με ένα αρχείο config.yaml που έγινε λανθασμένα commit, το οποίο διορθώθηκε αργότερα. Ως αποτέλεσμα, η ομάδα αποφάσισε να διαγράψει εντελώς όλες τις αλλαγές του αρχείου από την ιστορία, ώστε να αποφευχθεί η αποκάλυψη εμπιστευτικών ρυθμίσεων. Η αρχική κατάσταση του κλαδιού (έξοδος του git log --oneline): 1 a4b5c67 (HEAD -> feature) Αναδιαμόρφωσε τη λογική της υπηρεσίας 2 d9f0a11 Διόρθωσε τυπογραφικό λάθος στο config.yaml 3 7c1d3f2 Πρόσθεσε προσωρινό config.yaml 4 e3a98cd Πρώτη δέσμευση 5 Μετά την αναγραφή της ιστορίας για να διαγραφεί το αρχείο config.yaml, η έξοδος του git log --oneline έγινε: 6 b9e7d42 (HEAD -> feature) Αναδιαμόρφωσε τη λογική της υπηρεσίας 7 41f3b60 Πρώτη δέσμευση Τι ενέργεια πραγματοποίησε η ομάδα; - Εκτέλεσε git revert στη δέσμευση με το config.yaml - Εκτέλεσε git filter-branch --index-filter "git rm --cached config.yaml" -- --all - Εκτέλεσε git rebase -i διαγράφοντας commits που περιείχαν αλλαγές στο αρχείο - Εκτέλεσε git commit --amend και git push --force - Χρησιμοποίησε git cherry-pick για να δημιουργήσει ένα νέο κλαδί χωρίς το config.yaml

Junior
154

Παρακαλώ, πείτε μας γιατί σας ενδιαφέρει αυτή η θέση.

Junior
153

Τι συνέβη και πώς να επαναφέρετε την εργασία;

Junior
153

Η πίνακας notifications περιέχει ένα πεδίο status, στο οποίο οι τιμές είναι: 'sent', 'delivered', 'read'. Ποιο από τα ερωτήματα είναι σωστό; select * from notifications where status like '%sent%' order by created_at desc limit 5 select * from notifications where status = 'read' order by created_at desc limit 5 select * from notifications order by status desc limit 5 select * from notifications where status not in ('sent', 'delivered') order by created_at asc limit 5 select * from notifications where status in ('sent', 'delivered') order by created_at desc limit 5

Junior
151

Δομή των πινάκων που εμφανίζεται στην εικόνα έχει δημιουργηθεί. Είναι απαραίτητο να εκτελέσετε το ερώτημα που εμφανίζεται στην εικόνα. Ποιο είδος join πρέπει να χρησιμοποιηθεί στη θέση του [...], ώστε το αποτέλεσμα να περιλαμβάνει type = 'table_aw' η στήλη 'naming' να είναι συμπληρωμένη, και type = 'table2' η στήλη 'serial_number'? create table multirelation( type varchar not null, entity_id integer not null ); create table table_aw( id integer primary key, naming varchar not null ); create table table2( id integer primary key, serial_number varchar not null ); -- δομή των πινάκων select m.type,m.entity_id, ta.naming, t2.serial_number from multirelation m [...] join table_aw ta on m.entity_id = ta.id and m.type='table_aw' [...] join table2 t2 on m.entity_id = t2.id and m.type='table2'; -- ερώτημα Αφήστε κενό inner cross right left

Junior
150

Ποια εντολή από τον ριζικό φάκελο του έργου πρέπει να χρησιμοποιηθεί για να ενημερώσετε το υπο-μονάδα docs/ στην τελευταία έκδοση από το αποθετήριο και να προετοιμάσετε αυτή την αλλαγή για το commit; git fetch docs/ && git merge docs/FETCH_HEAD git pull --recurse-submodules git submodule update --remote docs/ cd docs/ && git pull && cd .. && git commit -am "Ενημέρωση" git submodule update --init docs/

Junior
150

Στην PostgreSQL, η κεφαλίδα έκδοσης γραμμής περιλαμβάνει την παράμετρο xmax. Ποιος είναι ο ρόλος της στη διαχείριση συναλλαγών; - Για τη δημιουργία μοναδικού αναγνωριστικού γραμμής στον πίνακα - Για τον έλεγχο ορατότητας της γραμμής από άλλες συναλλαγές - Για την ένδειξη του αριθμού συναλλαγής που διαγράψε ή ενημέρωσε τη γραμμή - Για το κλείδωμα της γραμμής από αλλαγές ταυτόχρονες από πολλαπλές συναλλαγές - Για την ένδειξη της μέγιστης τιμής που μπορεί να καταγραφεί σε μια αριθμητική στήλη

Junior
150

Ανάλυση επισκεψιμότητας σε γυμναστήρια Εργάζεστε ως αναλυτής σε ένα δίκτυο γυμναστηρίων. Έχετε πληροφορίες σχετικά με τις επισκέψεις χρηστών και τις συνδρομές που αγοράζουν. Είναι απαραίτητο να αναλύσετε την αποτελεσματικότητα της χρήσης των συνδρομών. Υπολογίστε για κάθε τύπο συνδρομής: • τον συνολικό αριθμό χρηστών που χρησιμοποίησαν αυτόν τον τύπο συνδρομής. Λάβετε υπόψη μόνο μοναδικά user_id; • τον συνολικό αριθμό επισκέψεων με αυτήν τη συνδρομή. Λάβετε υπόψη όλες τις επισκέψεις χρηστών με αυτήν τη συνδρομή; • το ποσοστό χρηστών αυτής της συνδρομής επί του συνολικού αριθμού χρηστών (στρογγυλοποιημένο σε ένα δεκαδικό). Για τον υπολογισμό του ποσοστού χρηστών, χρησιμοποιήστε τη σχέση μεταξύ του αριθμού χρηστών με αυτήν τη συνδρομή και του συνολικού αριθμού μοναδικών χρηστών. Κάθε χρήστης μπορεί να έχει μόνο μία συνδρομή. Τα αποτελέσματα ταξινομήστε κατά τύπο συνδρομής σε αλφαβητική σειρά. Μορφή εισόδου Πίνακας memberships: • membership_id (int) — μοναδικός αναγνωριστικός κωδικός συνδρομής • user_id (int) — μοναδικός αναγνωριστικός κωδικός χρήστη • membership_type (text) — τύπος συνδρομής Πίνακας visits:

Junior
147

Χρειάζεται να επαναφέρετε γρήγορα πολλά αρχεία στην έκδοση της τελευταίας δέσμευσης, χωρίς να επηρεάσετε τις άλλες αλλαγές. Πώς να ενεργήσετε; git reset --hard HEAD Διαγράψτε και δημιουργήστε ξανά τα αρχεία χειροκίνητα git fetch και git merge git revert HEAD git checkout HEAD^ <αρχείο1> <αρχείο2>

Junior
147

Σε ποια έργα Scala έχετε εργαστεί προηγουμένως; Μοιραστείτε συγκεκριμένες εργασίες και επιτεύγματα σε αυτήν την τεχνολογία.

Junior
142

Τι μπορούμε να πούμε για την ορθότητα του ακόλουθου ερωτήματος; select * from sessions where ended_at is null and status != 'pending';

Junior
142

Τι συνέβη και πώς να επαναφέρετε την εργασία;

Junior
142

Έχετε δύο σχετιζόμενους πίνακες: first_table και second_table. Θέλετε να εκτελέσετε την εντολή TRUNCATE TABLE second_table CASCADE;, για να διαγράψετε όλες τις γραμμές από τον πίνακα second_table και όλα τα εξαρτώμενα δεδομένα. Ποιες μπορεί να είναι οι συνέπειες της εκτέλεσης αυτής της εντολής; create table first_table ( id integer primary key ); create table second_table ( id serial primary key, first_table_fk integer references first_table(id) ); - Η ακολουθία second_table_id_seq θα επαναφερθεί στην αρχική τιμή. - Όλες οι εγγραφές από το first_table που σχετίζονται μέσω ξένης κλείδας με τον second_table θα διαγραφούν. - Οι υπάρχοντες δείκτες για τον second_table θα διαγραφούν και θα δημιουργηθούν ξανά αυτόματα. - Σε μελλοντικές εισαγωγές στον second_table, η προεπιλεγμένη τιμή για το id μπορεί να ξεκινά με μια λανθασμένη τιμή. - Θα προκύψει σφάλμα, καθώς η εντολή CASCADE απαγορεύεται για πίνακες με ξένες κλείδες.

Junior
140
/3