Екі транзакция бар. Алғашқы транзакция команда орындайды. Содан кейін екінші транзакция команда орындайды. Кейін алғашқы транзакция жалғастырады. Қандай тәртіп өзара блоктауға әкеледі? ```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 = ?; ```
Data Engineer
PostgreSQL-да транзакцияның өнімділігін оңтайландыру үшін қандай минималды оқшаулау деңгейін орнату керек, онда: • параллель транзакциялар бір-бірінің аяқталмаған өзгерістерін көре алады; • "лақтыру оқылымдары" мүмкін. Осы мақсатқа жету үшін қандай оқшаулау деңгейін көрсету керек? PostgreSQL-да лас оқылым мүмкін емес Repeatable read Read uncommitted Read committed Serializable
Боттардан трафик үлесі Антифрода командасы сайттағы бот трафигін анықтау механизмін әзірледі — бот сайтқа кірген кезде, оның URL параметрлеріне "bot" деген жол қосылады (регистріне қарамай). Егер user_id желтоқсан айында кемінде бір рет бот ретінде анықталса, ол әрқашан бот ретінде анықталуы керек. Пайдаланушылардың сайтқа келу деректерін зерттеп, желтоқсан 2024 жылы боттардың жалпы пайдаланушылар санына қатынасын есептеңіз (бір таңбалы ондыққа дейін дөңгелектеңіз). Кіріс форматы Келулер кестесі: - event_date (күн) — келу күні - user_id (сан) — бірегей пайдаланушы идентификаторы - url (жол) — өту сілтемесі Деректерде жетіспеушіліктер немесе қате мәндер жоқ. Шығыс форматы Сұрау нәтижесі келесі өрістермен кесте қайтаруы керек: - share (float) — желтоқсан айындағы боттардың үлесі, бір таңбалы ондыққа дейін дөңгелектелген.
Сіз hotfix/missing-footer тармағында жұмыс істедіңіз, онда маңызды өзгерістер енгіздіңіз. Содан кейін орындадыңыз: git checkout develop git branch -d hotfix/missing-footer Бір уақытта бұл тармақты біріктірмегеніңізді түсіндіңіз. Оны қалай қалпына келтіруге болады? git checkout hotfix/missing-footer Бірақ қате хабарламасын аласыз: тармақ табылмады. Қашықтағы тармақтан жұмыс қалай қалпына келтіріледі?
Жарнамалық кампаниялар бойынша қолданушы әрекетін талдау Компания жарнамалық кампанияларға байланысты оқиғаларды қадағалайды. Екі кесте беріледі: • campaigns — кампаниялардың идентификаторлары мен атаулары бар тізімі; • events — кампаниялар бойынша қолданушы оқиғалары, оқиға түрі (мысалы, 'click') және уақыты туралы ақпаратпен. Есепте әр кампания үшін: • Барлық оқиғалар саны. • Оқиғаларды жасаған бірегей қолданушылар саны. • Кампания бойынша алғашқы және соңғы оқиғаның уақыты. • Жалпы оқиғалар саны бойынша кампанияның рейтингі. Рейтинг — деректер тәртібі негізінде әр жолға берілетін сан. Егер екі немесе одан көп жолда бірдей мән болса, олар бірдей рейтинг алады, бірақ келесі рейтинг өткізіледі. Тек оқиғалары бар кампаниялар есепке алынады; оқиғалары жоқ кампаниялар ескерілмейді. Жалпы есепті рейтинг бойынша өсу тәртібімен, содан кейін атауы бойынша сұрыптау керек.
Егер сіз қосалқы модуль көрсететін бұтақты өзгерту керек болса, не істеу керек? - Қосалқы модульдер бұтақтарды өзгертуге қолдау көрсетпейді - Қосалқы модульді жойып, қажетті бұтақпен қайта қосу - Қосалқы модульдегі бұтақты өзгертіп, негізгі репозиторийде commit жасау - Қосалқы модульде қажетті бұтаққа git checkout орындап, өзгерістерді негізгі репозиторийде бекіту - Жаңа бұтақты көрсетіп, git submodule update --branch командасын орындау
Неліктен қазір жұмыс ұсыныстарын қарастырып жатырсыз?
Сіз feature/checkout-flow тармағында жұмыс істеп жатырсыз. Rebase әрекетінен кейін себетке қосу және тапсырысты рәсімдеу батырмасы жойылды. git log-ты қараңыз: commit 8bcd3f2 Author: You Date: Fri Apr 26 16:00:00 2025 Мобильді UI түзетулері Ал мынау git reflog-тың шығуы: 2f48e9a HEAD@{0}: rebase -i (squash): UI fixes for mobile 98c1dd3 HEAD@{1}: commit: Added checkout button 3adba75 HEAD@{2}: commit: Add cart logic 8bcd3f2 HEAD@{3}: checkout: moving from main to feature/checkout-flow Не болды және жұмыс қалай қайтаруға болады? git pull --squash --ff-only орындалды, соңғы коммитті reset көмегімен қайтару керек және git pull-ды қайта орындау керек git stash орындалды, қалпына келтіру — git stash pop арқылы git cherry-pick --squash 8bcd3f2..98c1dd3 орындалды, коммиттер қолмен біріктірілді, қалпына келтіру мүмкін емес git revert 98c1dd3 орындалды, git revert-ты reset көмегімен қайтару керек Интерактивті rebase с squash орындалды, ол тарихтың бір бөлігін жойды — git cherry-pick 3adba75 98c1dd3 жасау керек
Бөлімшедегі feature бірнеше сәтсіздікке ұшыраған config.yaml файлы бар бірнеше коммиттерді қамтиды, ол кейін түзетілді. Нәтижесінде команда құпия параметрлерді ашып көрсетуін болдырмау үшін файлдың барлық өзгерістерін тарихтан толық жоюды шешті. Бөлімшенің бастапқы күйі (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 командасын орындап, файлға өзгерістер енгізген коммиттерді жойды - git commit --amend және git push --force командаларын орындады - git cherry-pick командасын пайдаланып, config.yaml жоқ жаңа бұтақ жасады
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
PostgreSQL-да жолдың нұсқасы тақырыбында xmax параметрі бар. Оның транзакцияларды басқарудағы рөлі қандай? - Жолдың бірегей идентификаторын құру үшін - Басқа транзакциялар үшін жолдың көрінетіндігін тексеру үшін - Жолды жойған немесе жаңартқан транзакция нөмірін көрсету үшін - Бірнеше транзакциялар арасындағы бір уақытта өзгертуге жолды блоктау үшін - Сандық бағанға жазылуы мүмкін ең үлкен мәнді көрсету үшін
Осы вакансияға неге қызығасыз?
Суретте көрсетілгендей кесте құрылымы жасалды. Суретте көрсетілген сұрауды қалай орындауға болады? 'type=table_aw' жазбалары үшін 'naming' бағанын, ал 'type=table2' үшін 'serial_number' бағанын толтыру үшін қандай join түрін қолдану керек?
Жобаңызда docs/ каталогында орналасқан құжаттама үшін субмодуль пайдаланылады. Бұл субмодульдің қашықтағы репозиторийінде (мысалы, release тармағында) маңызды жаңартулар пайда болғанын білдіңіз. Бұл өзгерісті соңғы нұсқаға жаңарту және оны commit-ке дайындау үшін қандай команда қолданасыз?
Фитнес-клубтарға бару талдауын жүргізу Сіз фитнес-клубтар желісінде аналитик ретінде жұмыс істейсіз. Сізде пайдаланушылардың келулері мен сатып алған абонементтері туралы ақпарат бар. Абонементтердің тиімділігін талдауыңыз керек. Әрбір абонемент түрі бойынша есептеңіз: • осы түрдегі абонементті пайдаланған пайдаланушылардың жалпы саны. Тек бірегей user_id-ларды есептеңіз; • осы абонемент бойынша жалпы келулер саны. Осы абонементпен пайдаланушылардың барлық келулерін есептеңіз; • осы абонементтің пайдаланушыларының жалпы санына пайызбен үлесін есептеңіз (ондыққа дейін бір таңбаны дөңгелектеңіз). Үлесті есептеу үшін, осы абонементпен пайдаланушылар саны мен барлық бірегей пайдаланушылар санының қатынасын пайдаланыңыз. Әр пайдаланушының тек бір ғана абонементі болуы мүмкін. Нәтижені абонемент түрі бойынша алфавиттік тәртіпте сұрыптаңыз. Кіріс форматы Абонементтер кестесі: • membership_id (int) — бірегей абонемент идентификаторы • user_id (int) — бірегей пайдаланушы идентификаторы • membership_type (text) — абонемент түрі Келулер кестесі:
Сіз бірнеше файлды өткен коммиттен алынған нұсқаға тез қайтаруыңыз керек, басқа өзгерістерді әсер етпестен. Қалай әрекет ету керек? git reset --hard HEAD Файлдарды жою және қайта құру git fetch және git merge git revert HEAD git checkout HEAD^ <файл1> <файл2>
Сіз checkout-flow тармағында жұмыс істеп жатырсыз. Rebase әрекетінен кейін, себет пен соңғы тапсырыс батырмасы қосылған коммиттер жоғалды. git log-ты қараңыз: commit 8bcd3f2 Автор: Сіз Күні: 2025 жылдың 26 сәуірі, жұма, 16:00 Мобильді UI түзетулері Ал, git reflog шығуы: 2f48e9a HEAD@{0}: rebase -i (squash): Мобильді UI түзетулері 98c1dd3 HEAD@{1}: commit: Тексеру батырмасын қосу 3adba75 HEAD@{2}: commit: Себетті логикасын қосу 8bcd3f2 HEAD@{3}: checkout: main-дан feature/checkout-flow-қа көшу Не болғанын және жұмыс қалай қалпына келтіруге болатынын айтыңыз.
Scala-да бұрын қандай жобалармен айналыстыңыз? Бұл технологияда нақты тапсырмалар мен жетістіктеріңізді бөлісіңіз.
Сіз sessions кестесін талдайсыз, онда статус 'success', 'failed', 'pending' болуы мүмкін, ал 'ended_at' өрісі NULL болуы мүмкін, егер сессия аяқталмаған болса. Барлық аяқталмаған сессияларды, 'pending' статусындағы сессияларды қоспағанда, таңдау керек. Келесі сұраудың дұрыстығы туралы не айтуға болады? select * from sessions where ended_at is null and status != 'pending';
Сізде екі байланысты кесте бар: first_table және second_table. Сіз CASCADE опциясымен TRUNCATE TABLE second_table командасын орындағыңыз келеді, ол 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 тізбегі бастапқы мәнге қайтарылады. - second_table-мен сыртқы кілт арқылы байланысқан first_table-ден барлық жазбалар жойылады. - second_table үшін бар индекстер жойылып, автоматты түрде қайта жасалады. - Кейінгі insert кезінде second_table-ге, id үшін әдепкі мән дұрыс емес мәннен басталуы мүмкін. - Қате пайда болады, себебі CASCADE командасы сыртқы кілттері бар кестелер үшін тыйым салынған.