Heeft u ervaring met het web-framework Gin? Vertel ons meer in detail over de taken die u ermee hebt opgelost.
Data Engineer
Er zijn twee transacties. Eerst voert de eerste transactie een commando uit. Daarna voert de tweede transactie een commando uit. Vervolgens gaat de eerste transactie verder. Welke volgorde leidt tot een deadlock? ```sql -- eerste transactie update accounts set balance = balance + 100 where id = ?; -- tweede transactie update accounts set balance = balance - 50 where id = ?; update accounts set balance = balance + 200 where id = ?; ```
In PostgreSQL is het nodig om de prestaties van transacties te optimaliseren door gebruik te maken van een minimaal isolatieniveau, waarbij: • parallelle transacties onvoltooide wijzigingen van elkaar kunnen zien; • "vuile reads" (dirty read) mogelijk zijn. Welk isolatieniveau moet worden opgegeven voor de transactie om dit doel te bereiken? dirty read is niet mogelijk in PostgreSQL repeatable read read uncommitted read committed serializable
Hoe herstel je werk van een remote branch als je bij het proberen `git checkout hotfix/missing-footer` een foutmelding krijgt dat de branch niet gevonden is?
Analyse van gebruikersactiviteit in reclamecampagnes Het bedrijf houdt een registratie bij van gebeurtenissen gerelateerd aan reclamecampagnes. Er worden twee tabellen verstrekt: • campaigns — lijst van reclamecampagnes met hun identificaties en namen; • events — gebeurtenissen van gebruikers per campagne met informatie over het type gebeurtenis (bijvoorbeeld 'click' (klik)) en de tijd. Het is nodig om voor elke campagne een rapport te maken met de volgende indicatoren: • Totaal aantal gebeurtenissen. • Aantal unieke gebruikers die gebeurtenissen hebben uitgevoerd. • Tijd van de eerste en laatste gebeurtenis per campagne. • Rangorde van de campagne op basis van het afnemende totale aantal gebeurtenissen. Rangorde is een nummer dat aan elke rij in de resultaatset wordt toegekend op basis van de gegevensvolgorde. Als twee of meer rijen dezelfde waarde hebben, krijgen ze dezelfde rang, maar wordt de volgende rang overgeslagen. Het rapport moet alleen campagnes bevatten die gebeurtenissen hebben gehad: campagnes zonder gebeurtenissen worden niet meegenomen. De uiteindelijke rapportage moet eerst gesorteerd worden op de rangorde van de campagne in oplopende volgorde, en vervolgens op campaign_name in alfabetische volgorde. Invoerformaat • campaign_name (string) — naam van de reclamecampagne • start_date (timestamp) — startdatum en -tijd van de campagne • end_date (timestamp) — einddatum en -tijd van de campagne Tabel events: • event_id (int) — unieke identificatie van het evenement • user_id (int) — unieke identificatie van de gebruiker die het evenement heeft uitgevoerd • campaign_id (int) — unieke identificatie van de campagne • event_type (string) — type gebeurtenis, bijvoorbeeld 'click' of 'conversion' • event_time (timestamp) — datum en tijd van het evenement De gegevens bevatten geen ontbrekende of onjuiste waarden. Uitvoerformaat De query moet een tabel retourneren met de velden in deze volgorde: • campaign_name (string) — naam van de reclamecampagne • total_events (int) — totaal aantal gebeurtenissen gerelateerd aan de campagne • unique_users (int) — aantal unieke gebruikers die gebeurtenissen hebben uitgevoerd • first_event_time (timestamp) — datum en tijd van de eerste gebeurtenis van de campagne • last_event_time (timestamp) — datum en tijd van de laatste gebeurtenis van de campagne • campaign_rank (int) — rangorde van de campagne op basis van het afnemende totale aantal gebeurtenissen Sorteer de gegevens op de rangorde van de campagne in oplopende volgorde, en vervolgens op campaign_name in alfabetische volgorde.
Wat moet je doen als je de tak naar welke een submodule wijst wilt wijzigen? - Submodules ondersteunen geen wijziging van tak - Verwijder de submodule en voeg deze opnieuw toe met de gewenste tak - Wijzig de tak in de submodule en voer een commit uit in de hoofdrepository - Voer git checkout uit op de gewenste tak in de submodule en registreer de wijzigingen in de hoofdrepository - Voer git submodule update --branch uit en geef de nieuwe tak op
Waarom overweeg je momenteel vacatures?
Er is een tabelstructuur gemaakt zoals aangegeven in de afbeelding. Het is nodig om de query uit de afbeelding uit te voeren. Welke join moet worden gebruikt in plaats van [...], zodat in het resultaat voor records met type = 'table_aw' de kolom 'naming' gevuld is, en voor records met type = 'table2' de kolom '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 ); -- structuur van de tabellen 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'; -- query Laten leeg inner cross right left
De feature-branch bevat meerdere commits met een verkeerd gecommitteerd config.yaml-bestand, dat later werd gecorrigeerd. Als gevolg hiervan besloot het team om alle wijzigingen aan het bestand volledig uit de geschiedenis te verwijderen om het blootgeven van vertrouwelijke instellingen te voorkomen. Oorspronkelijke staat van de branch (uitvoer van git log --oneline): 1 a4b5c67 (HEAD -> feature) Refactored service logic 2 d9f0a11 Fixed config.yaml typo 3 7c1d3f2 Added temporary config.yaml 4 e3a98cd Initial commit 5 Na het herschrijven van de geschiedenis om het config.yaml-bestand te verwijderen, werd de uitvoer van git log --oneline: 6 b9e7d42 (HEAD -> feature) Refactored service logic 7 41f3b60 Initial commit Welke operatie heeft het team uitgevoerd? - Voerde git revert uit op de commit met config.yaml - Voerde git filter-branch --index-filter "git rm --cached config.yaml" -- --all uit - Voerde git rebase -i uit met het verwijderen van commits die wijzigingen in het bestand bevatten - Voerde git commit --amend en git push --force uit - Voerde git cherry-pick uit om een nieuwe branch zonder config.yaml te maken
Wat is er gebeurd en hoe herstel je het werk?
Vertel ons alstublieft waarom u geïnteresseerd bent in deze vacature.
De tabel notifications bevat een veld status, met waarden: 'sent', 'delivered', 'read'. Welke query is correct? 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
In PostgreSQL bevat de koptekst van de rijversie de parameter xmax. Wat is de rol ervan in transactioneel beheer? - Voor het creëren van een unieke rij-identificatie in de tabel - Voor het controleren van de zichtbaarheid van de rij door andere transacties - Voor het aangeven van het transactie nummer dat de rij heeft verwijderd of bijgewerkt - Voor het blokkeren van de rij tegen gelijktijdige wijzigingen door meerdere transacties - Voor het aangeven van de maximale waarde die in een numerieke kolom kan worden geschreven
Welke opdracht vanuit de hoofddirectory van het project moet worden gebruikt om de submodule docs/ bij te werken naar de nieuwste versie uit de externe repository en deze wijziging voor te bereiden op 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 "Update" git submodule update --init docs/
Je moet snel meerdere bestanden terugzetten naar de versie van de laatste commit, zonder de andere wijzigingen aan te tasten. Hoe doe je dat? git reset --hard HEAD Verwijder en maak de bestanden handmatig opnieuw aan git fetch en git merge git revert HEAD git checkout HEAD^ <bestand1> <bestand2>
Analyse van het bezoek aan fitnessclubs Je werkt als analist bij een keten van fitnessclubs. Je hebt informatie over het bezoek van gebruikers en de abonnementen die ze kopen. Het is nodig om de effectiviteit van het gebruik van abonnementen te analyseren. Bereken voor elk type abonnement: • het totale aantal gebruikers dat dit type abonnement heeft gebruikt. Neem alleen unieke user_id's; • het totale aantal bezoeken met dit abonnement. Neem alle bezoeken van gebruikers met dit abonnement; • het aandeel van gebruikers van dit abonnement in procenten van het totale aantal alle gebruikers (afgerond op één decimaal). Voor het berekenen van het aandeel van gebruikers, gebruik de verhouding tussen het aantal gebruikers met dit abonnement en het totale aantal unieke gebruikers. Elke gebruiker kan slechts één abonnement hebben. Sorteer het resultaat op type abonnement in alfabetische volgorde. Invoerformaat Tabel memberships: • membership_id (int) — uniek identificator van het abonnement • user_id (int) — uniek identificator van de gebruiker • membership_type (text) — type abonnement Tabel visits:
Wat is er gebeurd en hoe kun je het werk terughalen?
Aan welke Scala-projecten heb je eerder gewerkt? Deel specifieke taken en prestaties in deze technologie.
Wat kan er gezegd worden over de correctheid van de volgende query? select * from sessions where ended_at is null and status != 'pending';
Je hebt twee gerelateerde tabellen: first_table en second_table. Je wilt het commando TRUNCATE TABLE second_table CASCADE; uitvoeren, om alle rijen uit second_table en alle afhankelijkheden ervan te verwijderen. Wat kunnen de gevolgen zijn van het uitvoeren van dit commando? create table first_table ( id integer primary key ); create table second_table ( id serial primary key, first_table_fk integer references first_table(id) ); - De sequentie second_table_id_seq wordt teruggezet naar de beginwaarde. - Alle records uit first_table die via een foreign key met second_table verbonden zijn, worden verwijderd. - Bestaande indexen voor second_table worden verwijderd en automatisch opnieuw aangemaakt. - Bij latere invoer in second_table kan de standaardwaarde voor id beginnen met een onjuiste waarde. - Er treedt een fout op, omdat het commando CASCADE verboden is voor tabellen met foreign keys.