Data Engineer
Ποιοι τρόποι υπάρχουν για τη διαγραφή δεδομένων στο ClickHouse;
Χρειαζόμαστε μια μηχανή pipeline — έναν μηχανισμό που θα επιτρέπει τη δημιουργία ροών πολύ γρήγορα μέσω της εισαγωγής συμβάσεων και παραμέτρων. Πώς θα το υλοποιούσες σε ανώτερο επίπεδο;
Πώς λειτουργεί η διαμέριση στο Hive και πώς παρουσιάζεται φυσικά στο σύστημα αρχείων;
Πες μου για τον εαυτό σου — εμπειρία εργασίας, τεχνολογική στοίβα
Ποιος είναι ο σκοπός του διαχωρισμού των δεδομένων σε μπλοκ στο HDFS;
Τι είναι οι νεκρές γραμμές στη βάση δεδομένων;
Ποια εργαλεία χειριστή χρησιμοποιήσατε στο Airflow; Πώς αλληλεπιδράσατε με το dbt μέσω του Airflow;
En cuanto a la consulta, podemos ver qué sucede con los datos, incluyendo qué tipos de joins — qué tipos de joins podemos ver allí?
-- Αρχικός πίνακας stretch -- Είναι απαραίτητο να συμπληρωθούν τα NULL με την προηγούμενη τιμή (όχι NULL) ανά id - εκτέλεση συμπλήρωσης προς τα κάτω id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | NULL 1 | 16:12 | NULL 2 | 09:42 | 133 2 | 15:20 | NULL 2 | 21:33 | NULL 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | NULL 3 | 16:17 | NULL 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | NULL 4 | 16:31 | 7 4 | 17:44 | NULL id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | 10 1 | 16:12 | 10 2 | 09:42 | 133 2 | 15:20 | 133 2 | 21:33 | 133 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | 8 3 | 16:17 | 8 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | 312 4 | 16:31 | 7 4 | 17:44 | 7 -- Ερώτηση SQL για την απόκτηση του επιθυμητού πίνακα SELECT id, ttime, COALESCE(val, LAST_VALUE(val) OVER(PARTITION BY id ORDER BY ttime)) as val FROM stretch
Το Iceberg είναι μια μηχανή που επιτρέπει να κάνεις το S3 βάση δεδομένων, ακόμα και τηρεί το ACID. Ποιο είναι το μειονέκτημά του;
Τηρείται το ACID στο Greenplum;
Ανάλυση δραστηριότητας χρηστών σε διαφημιστικές καμπάνιες Η εταιρεία διατηρεί αρχείο γεγονότων που σχετίζονται με διαφημιστικές καμπάνιες. Παρέχονται δύο πίνακες: • 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 σε αλφαβητική σειρά.
Ποια είναι η διαφορά μεταξύ γεννητριών και λιστών στην Python;
Γιατί η ακόλουθη ερώτηση δεν θα χρησιμοποιήσει το δείκτη αν στον πίνακα records (id) έχει δημιουργηθεί ένας κανονικός δείκτης B-tree στο id; select * from records where id % 2 = 0 - Για το id χρειάζεται δείκτη τύπου GIN - Οι δείκτες δεν λειτουργούν με εκφράσεις στο WHERE - % είναι μια λειτουργία σύγκρισης, όχι φιλτραρίσματος - το limit και το offset είναι υποχρεωτικά για βελτιστοποίηση με δείκτη - Η ερώτηση αναφέρεται σε ένα αριθμητικό πεδίο, όχι σε ένα κείμενο
Παραγωγή μιας λίστας ακριβών κρατήσεων Ερώτηση Πώς μπορείτε να παράγετε μια λίστα κρατήσεων την ημέρα [τηλέφωνο] που θα κοστίζουν στον μέλος (ή στον επισκέπτη) περισσότερο από 30 $? Θυμηθείτε ότι οι επισκέπτες έχουν διαφορετικά κόστη από τα μέλη (τα καταγεγραμμένα κόστη είναι ανά μισάωρο 'διάστημα'), και ο χρήστης επισκέπτης είναι πάντα ID 0. Συμπεριλάβετε στη έξοδό σας το όνομα της εγκατάστασης, το όνομα του μέλους διαμορφωμένο ως μία στήλη και το κόστος. Ταξινομήστε κατά φθίνουσα κόστος και μην χρησιμοποιείτε υποερωτήματα.
Δίνεται μια συμβολοσειρά από μηδενικά και μονάδες. Πρέπει να γράψετε μια συνάρτηση func() που θα επιστρέφει τον μέγιστο αριθμό συνεχόμενων μονάδων. Για παράδειγμα: func("010111011") -> 3
Ποιοι τύποι φυσικής σύνδεσης πινάκων υπάρχουν (Hash Join, Merge Join, Nested Loop);
Γράψτε ένα απλό DAG για το Apache Airflow
Έχετε εμπειρία με τη βιβλιοθήκη Langchain; Ποιες εργασίες λύσατε με τη βοήθειά της;
Πώς βλέπετε το σχέδιο εκτέλεσης ενός ερωτήματος στην Oracle; Πώς διαφέρει το EXPLAIN PLAN από το EXPLAIN ANALYZE;