Data Engineer
Quels champs as-tu utilisés pour distribuer les données dans Greenplum?
Dans PostgreSQL, il est nécessaire d'optimiser les performances des transactions en utilisant un niveau d'isolation minimal, où : • les transactions parallèles peuvent voir des modifications non finalisées les unes des autres ; • des "lectures sales" (dirty read) sont possibles. Quel niveau d'isolation doit être spécifié pour la transaction afin d'atteindre cet objectif ? la lecture sale est impossible dans PostgreSQL lecture répétable lecture non validée lecture validée Serializable
Qu'apporte le format Iceberg par rapport au Parquet classique?
Qu'est-ce qu'un index ? Quelle est la différence entre un index clusterisé et un index non clusterisé ?
## problème de mode # Il y a une liste de nombres. Écrivez une fonction qui trouve la mode de cette liste. # find_mode([1, 2, 3, 3, 4, 5]) #> 3
Préférez-vous travailler individuellement en tant qu'expert ou en équipe de développeurs?
Que renverra la fonction find_mode pour la liste [1, 2, 3, 3, 4, 5] ? Explique étape par étape.
Avez-vous travaillé avec les vitrines de données (couche DWH) ?
Pourquoi envisagez-vous des offres d'emploi en ce moment?
Avez-vous travaillé avec des paramètres et des hints déterminant l'utilisation de Broadcast Join?
Comment concevais-tu le schéma de la base de données ? Le faisais-tu manuellement dans la base, ou stockais-tu les scripts quelque part, ou utilisais-tu Liquibase ? Quel était le processus ?
Avez-vous peut-être une expérience dans le domaine de la science des données — travail avec des modèles, des statistiques?
Que peut-on dire de la correction de la requête suivante? select * from sessions where ended_at is null and status != 'pending';
Quelles stratégies physiques d'exécution de join connaissez-vous?
Rapport pour l'entreprise logistique Vous êtes analyste dans une entreprise logistique qui enregistre les opérations dans les entrepôts. Vous devez établir un rapport sur l'efficacité de chaque entrepôt. Pour chaque entrepôt, calculez : • le nombre total d'opérations (count_operations); • le nombre total de produits traités dans l'entrepôt (sum_quantity); • le temps moyen de traitement d'une opération (avg_processing_time), en ne considérant que les opérations avec un temps spécifié (non NULL), arrondi à l'entier le plus proche; • le nombre maximum et minimum de produits traités dans une seule opération (max_quantity, min_quantity); • le nombre d'opérations de chaque type (« livraison », « expédition », « transfert ») dans des colonnes séparées : supply_operations, shipment_operations, transfer_operations. Filtrez les entrepôts dont le nombre total d'opérations est supérieur à 2 et dont le temps moyen de traitement ne dépasse pas 60 minutes. Triez le résultat par ID d'entrepôt par ordre croissant. Format d'entrée Tableau operations: • operation_id (int) — identifiant unique de l'opération • warehouse_id (int) — identifiant de l'entrepôt • operation_type (text) — type d'opération : « livraison », « expédition », « transfert »
Comment assurer l'unicité globale de la clé primaire dans PostgreSQL lors du sharding?
Quel mécanisme physique de JOIN sera utilisé lors de la jointure de la table des transactions avec la table du calendrier selon la condition d'inégalité (date <= date) ?
Comment fonctionne la jointure par boucle imbriquée et quelle est sa complexité algorithmique ? Quelle est la complexité des trois algorithmes ?
Qu'as-tu écrit en Python à part le DAG Airflow?
Quels algorithmes physiques JOIN fonctionnent dans les bases de données?