Part de trafic des bots L'équipe antifraude a développé un mécanisme pour détecter le trafic des bots sur le site de la boutique : lorsqu'un bot accède au site, la sous-chaîne "bot" (sans tenir compte de la casse) est ajoutée aux paramètres de son URL. Si l'user_id a été identifié comme bot au moins une fois en décembre, il doit toujours être considéré comme bot. Étudiez le jeu de données des visites des utilisateurs sur le site et calculez la part des bots par rapport au nombre total d'utilisateurs en décembre 2024 (arrondi à un chiffre après la virgule). Format d'entrée Table visits: - event_date (date) — date de la visite - user_id (int) — identifiant unique de l'utilisateur - url (string) — lien par lequel la visite a été effectuée Les données ne contiennent pas de valeurs manquantes ou incorrectes. Format de sortie La requête doit retourner une table avec les champs: - share (float) — part des bots par rapport au total des utilisateurs en décembre, arrondée à un chiffre après la virgule.
Data Engineer
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
Il existe deux transactions. La première transaction exécute une commande. Ensuite, la deuxième transaction exécute une commande. Ensuite, la première transaction continue. Quelle séquence conduira à un blocage mutuel? ```sql -- première transaction update accounts set balance = balance + 100 where id = ?; -- deuxième transaction update accounts set balance = balance - 50 where id = ?; update accounts set balance = balance + 200 where id = ?; ```
Comment restaurer le travail à partir d'une branche distante si vous obtenez un message d'erreur disant que la branche n'existe pas lorsque vous essayez de faire `git checkout hotfix/missing-footer`?
Analyse de l’activité des utilisateurs dans les campagnes publicitaires L’entreprise tient un registre des événements liés aux campagnes publicitaires. Deux tableaux sont fournis: • campaigns — liste des campagnes publicitaires avec leurs identifiants et noms; • events — événements des utilisateurs par campagne avec des informations sur le type d’événement (par exemple 'click' (clic sur la publicité)) et le temps. Il est nécessaire de générer un rapport pour chaque campagne avec les indicateurs suivants: • Nombre total d’événements. • Nombre d’utilisateurs uniques ayant effectué des événements. • Temps du premier et du dernier événement par campagne. • Rang de la campagne par ordre décroissant du nombre total d’événements. Le rang est un nombre attribué à chaque ligne dans le jeu de résultats basé sur l’ordre des données. Si deux ou plusieurs lignes ont la même valeur, elles reçoivent le même rang, mais le rang suivant est sauté. Le rapport doit inclure uniquement les campagnes ayant eu des événements : les campagnes sans événements ne sont pas prises en compte. Le rapport final doit être trié d’abord par le rang de la campagne en ordre croissant, puis par campaign_name en ordre alphabétique. Format d’entrée • campaign_name (string) — nom de la campagne publicitaire • start_date (timestamp) — date et heure de début de la campagne • end_date (timestamp) — date et heure de fin de la campagne Tableau events: • event_id (int) — identifiant unique de l’événement • user_id (int) — identifiant unique de l’utilisateur ayant effectué l’événement • campaign_id (int) — identifiant unique de la campagne • event_type (string) — type d’événement, par exemple 'click' ou 'conversion' • event_time (timestamp) — date et heure de l’événement Les données ne contiennent pas de valeurs manquantes ou incorrectes. Format de sortie La requête doit retourner un tableau avec les champs dans cet ordre: • campaign_name (string) — nom de la campagne publicitaire • total_events (int) — nombre total d’événements liés à la campagne • unique_users (int) — nombre d’utilisateurs uniques ayant effectué des événements • first_event_time (timestamp) — date et heure du premier événement de la campagne • last_event_time (timestamp) — date et heure du dernier événement de la campagne • campaign_rank (int) — rang de la campagne par ordre décroissant du nombre total d’événements Trier les données par le rang de la campagne en ordre croissant, puis par campaign_name en ordre alphabétique.
Que faut-il faire si vous souhaitez changer la branche vers laquelle pointe un sous-module? - Les sous-modules ne supportent pas le changement de branche - Supprimer le sous-module et l'ajouter à nouveau avec la branche souhaitée - Modifier la branche dans le sous-module et effectuer un commit dans le dépôt principal - Exécuter git checkout sur la branche souhaitée dans le sous-module et enregistrer les modifications dans le dépôt principal - Exécuter git submodule update --branch en spécifiant la nouvelle branche
Pourquoi envisagez-vous des offres d'emploi en ce moment?
Quelle opération la commande a-t-elle effectuée? - A exécuté git revert sur le commit avec config.yaml - A exécuté git filter-branch --index-filter "git rm --cached config.yaml" -- --all - A exécuté git rebase -i en supprimant les commits contenant des modifications du fichier - A exécuté git commit --amend et git push --force - A exécuté git cherry-pick pour créer une nouvelle branche sans config.yaml
Que s'est-il passé et comment récupérer le travail ?
Dans PostgreSQL, l'en-tête de version de la ligne inclut le paramètre xmax. Quel est son rôle dans la gestion des transactions? - Pour créer un identifiant unique de ligne dans la table - Pour vérifier la visibilité de la ligne par d'autres transactions - Pour indiquer le numéro de transaction qui a supprimé ou mis à jour la ligne - Pour bloquer la ligne contre les modifications simultanées par plusieurs transactions - Pour indiquer la valeur maximale pouvant être enregistrée dans une colonne numérique
La table notifications contient un champ status, dont les valeurs sont : 'sent', 'delivered', 'read'. Laquelle des requêtes est correcte ? 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
Veuillez nous expliquer pourquoi cette offre vous intéresse.
Une structure de tables indiquée sur l'image a été créée. Il est nécessaire d'exécuter la requête indiquée sur l'image. Quel type de join doit être utilisé à la place de [...], pour que dans le résultat, les enregistrements avec type = 'table_aw' aient la colonne 'naming' remplie, et pour les enregistrements avec type = 'table2' la colonne '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 ); -- structure des tables 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'; -- requête Laisser vide inner cross right left
Quelle commande doit-on utiliser depuis le dossier racine du projet pour mettre à jour le sous-module docs/ à la dernière version du dépôt distant et préparer ce changement pour le 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 "Mise à jour" git submodule update --init docs/
Analyse de la fréquentation des clubs de fitness Vous travaillez en tant qu'analyste dans une chaîne de clubs de fitness. Vous disposez d'informations sur les visites des utilisateurs et les abonnements qu'ils achètent. Il est nécessaire d'analyser l'efficacité de l'utilisation des abonnements. Calculez pour chaque type d'abonnement : • le nombre total d'utilisateurs ayant utilisé ce type d'abonnement. Ne considérez que les user_id uniques; • le nombre total de visites pour cet abonnement. Considérez toutes les visites des utilisateurs avec cet abonnement; • la part des utilisateurs de cet abonnement en pourcentage du nombre total de tous les utilisateurs (arrondi à un chiffre après la virgule). Pour calculer la part des utilisateurs, utilisez le rapport entre le nombre d'utilisateurs avec cet abonnement et le nombre total d'utilisateurs uniques. Chaque utilisateur ne peut avoir qu'un seul abonnement. Triez le résultat par type d'abonnement par ordre alphabétique. Format d'entrée Table memberships: • membership_id (int) — identifiant unique de l'abonnement • user_id (int) — identifiant unique de l'utilisateur • membership_type (text) — type d'abonnement Table visits:
Vous devez rapidement revenir à une version antérieure de plusieurs fichiers sans toucher aux autres modifications. Que faire ? git reset --hard HEAD Supprimer et recréer les fichiers manuellement git fetch et git merge git revert HEAD git checkout HEAD^ <fichier1> <fichier2>
Que s'est-il passé et comment revenir en arrière ?
Quels projets Scala avez-vous déjà réalisés ? Partagez des tâches spécifiques et des réalisations dans cette technologie.
Que peut-on dire de la correction de la requête suivante? select * from sessions where ended_at is null and status != 'pending';
Vous avez deux tables liées : first_table et second_table. Vous souhaitez exécuter la commande TRUNCATE TABLE second_table CASCADE;, pour supprimer toutes les lignes de la table second_table et toutes les données qui en dépendent. Quelles peuvent être les conséquences de l'exécution de cette commande ? create table first_table ( id integer primary key ); create table second_table ( id serial primary key, first_table_fk integer references first_table(id) ); - La séquence second_table_id_seq sera réinitialisée à sa valeur initiale. - Toutes les entrées de first_table liées par clé étrangère à second_table seront supprimées. - Les index existants pour second_table seront supprimés et recréés automatiquement. - Lors d'insertion ultérieure dans second_table, la valeur par défaut pour id pourrait commencer à partir d'une valeur incorrecte. - Une erreur se produira, car la commande CASCADE est interdite pour les tables avec des clés étrangères.