На джуна я бы отличие джоинов всех видов спросил и агрегаты (сумма, хевинг, авг, каунт). На мидла - сразу по представлениям пробежался бы + оконные функции (роу намберы) + понимание стрктуры субд (сервер, схема, таблица, вью, мат вью, синоним) На сеньора - все выше перечисленное + опыт оптимизации запросов, план выполнения, опыт в разных синтаксисах oracla + t-sql (mssql)+ hive какой-нибудь. Спросил отличия синтаксиса и ограничения.
мимо бизнес аналитик по витринам данных, опыт 5+ лет
>>249941344 (OP) Правильно понял, что ты идешь на джуна по базам данных и ничего не знаешь про базы данных и язык SQL? Тебе повезло, в треде человек с 5+ лет опыта в этой сфере, могу ответить на любые вопросы.
>>249946675 Жму тоже. Не, 300 реально в моем случае, я же типа developer, а не аналитик. Ну и недавно осознал, что одним SQL сыт не будешь и начал активно учить языки программирования и развиваться в сторону data engineering.
>>249941344 (OP) Кроме того, что тут уже написали у меня всегда спрашивали индексы. Достаточно подробно, какие преимущества и недостатки, какие виды есть, про б-дерево отдельно - что это такое, на пальцах пояснить как работает. Еще про оконные функции спрашивали но редко, 1 раз всего вроде, но я только после вката понял зачем они и так и не пользовался. И да это собесы на фулстека, а не sql разраба.
>>249946972 Я думаю, зависит от места, но вообще да. У нас аналитики это те, кто делают выгрузки по запросам пользователей и рисуют отчеты, а девелоперы делают загрузки в хранилище. Ну и вопросы оптимизации тоже разработчики решают, если селектики отказываются работать.
>>249947279 Ну понял, классика. У нас также все, только я по стажу работы могу работу девелопера вполне делать, хоть и пришел на позицию бизнес аналитика.
>>249946616 >>249946675 Да хз на самом деле про рынок. Сейчас рыночек вверх летит стремительно, можно и с 250-300к на собесы с ноги влетать, думаю. мимо брат двхшник в ритейле
>>249941344 (OP) Я обычно спрашиваю что такое NoSql базы данных и нахуй они нужны + пример. Что такое индексы и как они работают. И почему нельзя все подряд индексировать. Как работает дефолтный BTree. Дефолтные/не дефолтные типы данных. Как профилировать запросы (EXPLAIN/ANALYZE). Нормализация/денормализация. Что касается чистого sql'я то отличие джоинов. По условному примеру из 2х который придумываю на ходу верчу кручу всякими селектами вида - а вытащи мне в результате user info который будет иметь первое слово из users.name и user.email) ну и + групбаи, агрегирующими функции, юнионы, триггеры, сиквенсы, транзакции.
Короче я всегда спрашиваю в грубину до всего что знаю сам, и пытаюсь понять какие сильные стороны, где готовился и узнал что-то новое, а где пошел 3 раза прочитал, заучил но нихуя не понял.
>>249946417 Эта хуита действительно настолько простая для вката как кажется? Иногда натыкаюсь на вакансии, требования выглядят будто им за вечер можно начать соответствовать. Просто стремаюсь что я почитаю гайды неделю, а на собесе обосрусь с подливой и стыдно будет мимо иб макака дрочу фаервол
>>249947527 Могут и не предложить столько, но спросить никто не мешает. Впрочем, реально хз, я в двх вообще случайно оказался. А так - у меня есть кореш в сбере, который собеседует СА со знанием БД на уровне миддлов. Говорит, что на двести на собесы залетают совсем отбитые дауны, которые простую задачку на базовое знание оконных функций и джоинов решить не могут.
>>249947916 Да хуй знает, простая или нет. SQL — это такая вещь, которую понимать надо, думать на ней. Кто-то с ходу вкатывается, кто-то годами не может базовые принципы понять. мимо случайно оказался в двх
>>249947916 Она обманчиво простая. Азы SQL учатся за пару вечеров, но чтобы стать большим профессионалов в сфере нужно потратить приблизительно столько же сил, сколько и в любой другой сфере.
>>249947916 Если ты думаешь что в ОЙТИ можно вкатиться нехуя не делая, ты жертва пропаганды типочков которые рубят бабло на курсах для бегинеров где пересказывают мануал.
>>249948599 Ну SQL — это просто инструмент, который для большинства людей, которые с ним работают, даже не является основным. Если у человека вопрос в том, можно ли научиться работать с этим инструментом на приемлемом для ждунов уровне за относительно адекватное время, то ответ — да, теоретически можно, хотя зависит от человека. А вот если вопрос в том, можно ли чисто на SQL вкатываться без других навыков / инструментов, то вряд ли.
>>249948599 Я же написал что я и так в ойти, по крайней мере не меньше чем скл-макака. Вот копипаста с рандом вакансии которую я загуглил прямо сейчас (администратор БД, 70к грошей)
>Знание SQL, написание запросов; >Навыки программирования на каком-либо скриптовом языке; >Желателен опыт работы с unix-системами; >Желателен опыт работы с реляционными базами данных
НА МОЙ ВЗГЛЯД это выглядит как почитать по 2 часа в вечер недельку и потом еще столько же по кнопочкам потыкать. Я вот и спросил, так оно или нет.
Если нет, то интересно было бы узнать что именно подразумевается под ЗНАНИЕМ SQL и что там джуну надо учить месяцами
>>249947973 Я мимо проходил, но всё что этот сеньор помидор рассказал, нам в унике за 1 семестр рассказали Если сам это учить будешь то еще меньше времени уйдет
CRUDы и JOINы даже умственно отсталые фронтендеры знают. И учится это за 2-3 часа. Для разраба по базам даже джуна вопросы будут куда более серьезные, предметные и глубокие. Нужно понимать как работают базы данных разных видов (а их очень много).
>>249949222 Одно дело — курс в универе прослушать, а другое — не пиздануть базу запросом на десять таблиц, в каждой из которых десятки миллионов записей. Я ж говорю: SQL — это инструмент, причём для многих не основной даже. Нужны не только академические знания, но и практический опыт, чтобы было пониманием инструмента, а не зубрёжка разных типов джоинов.
>>249950470 Да вопросы очень часто нужны, чтобы понять, как человек думает. Если ты разбираешься в том, о чём спрашиваешь, то по ответу сразу видно, идёт ли речь о зубрёжке или о практическом опыте.
>>249941344 (OP) К теме треда. Часто вижу вакансии типа Адмиристратор баз данных с огромными для меня зарплатами. Но слабо понимаю, чем занимается каждый день такой сотрудник. Поясните
>>249941344 (OP) Чем отличается count(*) от count(a) что такое coalesce как хранить массивы или справочники зачем нужна нормализация зачем нужна денормализация сколько нормальных форм ты знаешь как работают индексы чем кластерный отличается от некластерного имеет ли смысл использовать varchar(20) вместо varchar(255) как пронумеровать строки, посчитать сумму по группам итп - оконные функции
>>249950861 Зависит от компании, но DBA занимаются практически всем, чем только можно с базами заниматься: развёртка, управление правами, проектирование, кластеризация и прочая залупа.
>>249950861 В основном огребает пиздюлей когда рукожопый девелопер ставит раком его БД, или кто-то выставляет на продажу данные из БД без ведома начальников. А так - нихуя не делает, после начальной настройки всего.
>>249951056 > имеет ли смысл использовать varchar(20) вместо varchar(255) Сколько же я в своё время огрёб проблем из-за одного хуесоса, который считал, что стоит, потому что БЛЯ БУДУ НЕ БУДЕТ У НАС СТРОК БОЛЬШЕ ЧЕМ ВОСЕМЬ СИМВОЛОВ МАМОЙ КЛЯНУСЬ СЛЫШИШЬ.
>>249951201 Я не собеседую SQL-господ, но уверен, что даже по форме ответа видно, знает ли человек, о чём он вообще говорит. Плюс, исходя из ответа можно уже более глубокое общение продолжить.
>>249952057 Ну бля, ты собеседовал хоть кого-нибудь в своей жизни? Если у тебя есть хоть сколько-либо эмпатии, то очень часто видно, понимает ли человек, о чём он говорит, или отвечает по учебнику.
>>249952488 Места они занимают одинаково только в случае, когда там одинаковое количество символов лежит, поэтому твой вопрос некорректен. Надо спрашивать, есть ли разница между занимаемым объёмом памяти при хранении строки в двадцать символов для varchar(20) и varchar(255). Но не суть.
>>249951201 Ой блять. Ну тогда по твоей логике теорию вообще нахуй не надо спрашивать? Ты же ведь понимаешь что одно дело брать Алешу которому на курсах или в универе преподавали и он что-то помнит, или хотя бы на пальцах может объяснить. А другое это брать Колю который до недавна был мануальным тестером, и кроме как тыцкать на кнопочки и заводить тикеты нихуя не умел, по совету своих корешей посмотрел 3 видеоурока на ютубе и все, он блять уже джуниор.
>>249953861 Я в этом контексте в своё время очень сильно полюбил просить джунов, когда зовут на собесы, пояснить за четыре столпа ООП, но не мне, а девочке-хрюше, которая рядом сидит и в этих ваших кодингах нихуя не понимает. Вот прям сразу становится видно, заучил ли кандидат термины или понимает их.
>>249954667 Если хочешь прям жёсткую валидацию данных, чтобы ровно n символов всегда было, то тогда вообще char(n) надо использовать — чуть полегче вышло. Но вообще я согласен, что структура данных должна в среднем быть определена на уровне БД настолько жёстко, насколько это возможно. Другое дело, что в том конкретном случае надо было всего-то посмотреть на задачу с перспективой на год-два вперёд, чтобы не выстрелить себе в ногу. Речь шла условно об «итерируемой строке», размер который со временем не мог не вылезти за границу в восемь символов.
>>249954250 >как хранить массивы Ну тут можно растечься про вложенные таблицы в Oracle и погрузить экзаменатора в эти душные дебри, чтобы он сам ждал пока ты поскорее заткнешься (потому что сам он ими конечно не пользуется).
Про рекурсивные запросы могут спрашивать, а также про GROUPING SETS и ROLLUP, но это если только речь идет о серьезной вакансии.
Что такое дедлок и как его устроить - хороший вопрос.
Ну и вопрос вопросов - чем отличается первичный ключ о уникального индекса.
>>249955122 Ну хуй знает, хуй знает. Я в своей практике видел несколько залётных, которые умудрялись базу пиздануть из-за хуёво оптимизированных запросов. Но речь и не про джунов идёт, тут я согласен.
>>249955122 У меня тянка sql-разрабом ебошит, дают ей задачу оптимизировать запрос, который такие как ты писали, которым > что сложного выучить селект и джоин и который отрабатывает 10 минут, она делает какую-то магию и запрос отрабатывает 20 секунд, можно ещё быстрее, но это уже надо делать не час, а два дня, оно того не стоит.
>>249955254 >Не составит труда выучить фигурки и их движения, но из них складываются сложные партии А ты хорош, с таким мою работу еще не сравнивали. >>249955122 >А большего и не требуется. Где не требуется? Тут разговор про людей, которые специализируются на разработке БД, а не просто юзают SQL в прикладных целях.
>>249941344 (OP) У тебя есть две таблицы Org и People У каждого сотрудника в таблице People указан ID его организации из таблицы Org У каждой организации в таблице Org указан номер телефона приемной Тебе необходимо добавить столбец в таблицу People, назвать его Org_phone и положить туда номер телефона, который ты возьмешь из организаций. Твои действия?
>>249956216 Ебать ты душный. Ну не добавить столбец, а просто заджойнить таблицу people с соответствующими сотрудникам номерами телефонов. не мой вопрос
>>249947916 Все так, это действительно просто. Зависит от специализации, правда. Если ты разработчик, то всю эту синьерскую хуйню нужно знать, а если обычная макака-отчетник, то достаточно видов джойна, понимать, зачем нужны индексы ну и оконные функции раз в полгода. У макаки-отчетника другой путь развития к 300к - ты дрочишь не sql, а бизнес-процессы в своей конторе, находишь слабые места, рисуешь презу начальству с масштабом проблемы и вариантами решения. В плане техники вместо углубления в sql лучше задрочить python и pandas какой-нибудь, простейшие ml-модели.
>>249956319 > а просто заджойнить таблицу people с соответствующими сотрудникам номерами телефонов И вывести это для огранизаций, у которых >= 3 сотрудников и заменить в телефоне все симфолы, которые не являются цифрами
>>249941344 (OP) >на джуна по разраба по базам данных Это что за покемон? Типа те кто не осилил ни один язык программирования и включает - выключает базы?
>>249956914 Я б это это как плюс тебе зачел на собеседовании. Right join - это для евреев, арабов и прочих, кто пишет справа налево. Для большинства задач и национальностей - это мало того что не нужно, так ещё и совершенно не естественно, особенно в ansi нотации(перейти к предикату, вернуться назад и вычитать что там соединялось,..)
>>249957452 Я и сам говорю, что не пользуюсь правым джойном и полностью разделяю мнение про евреев. Но для меня это хороший вопрос на понимание. >>249957392 Мы вам перезвоним. >>249957493 Так не делают, обычно пишут просто select * from A, B Кстати, тоже можно спрашивать на собесах, что вернет этот запрос, мне не все отвечали
>>249956216 Именно. И вот ты, не будучи долбоёбом, на первом же этапе отсеял задачу как ебанутую. А если где-то потребуется телефон приемной, тащи его из соответствующей таблицы, нихуя не нужно делать. Логика примерно такая была на 2-3 собеседованиях.
>>249955899 Ну там не голый sql, ещё базовые сисярп, питон и джава (спецом не учила, но иногда приходилось чота допиливать по мелочи у разных работодателей)
>>249957810 Если не всё ещё забыл с универа, это довольно базовая штука, которая вообще показывает, насколько ты хорошо себе представляешь отличие РСУБД от Экселевской таблицы. Вообще полезно сесть и джойны без джойнов порасписывать, если не раздуплился до конца, иначе сути cartesian explosion не поймешь, когда БД продакшена умрёт от селекта с десятком джойнов.
>>249956914 Тянка рассказывала, взяли чувака, через две недели уволили, за что? Он по дефолту right join юзал, ну т.е. все левый, а он правый, ну и типа посовещались коллективом, решили что он пиздец странный и пишет криповые запросы и типа давайте уволим, мы с ним не сработаемся.
>>249959942 Ну кстати я один раз в карьере видел налаженную а ля базу данных достаточно мощную экселевскую ебалу с внешними интерфейсами. На удивление оно работало достаточно стабильно. Очень много где использование СУБД нецелесообразно, ибо объёмы оперируемых данных слишком малы относительно ресурсов, которые жрёт СУБД. Другое дело, что СУБД на такой незначительный объём данных можно поднять условно на хорошей домашней пеке, а это стоит таких копеек, что всем впадлу ебаться. Не говорю, впрочем, что это что-то плохое.
>>249960354 > видел налаженную а ля базу данных достаточно мощную экселевскую ебалу с внешними интерфейсами НАПИСАЛ @ НЕ ПРОЧИТАЛ @ ОТПРАВИЛ Имею в виду, что видел, как эксель с внешними интерфейсами использовался в качестве БД на достаточно большой объём данных и количество операций, причём эта ебала работала достаточно стабильно.
>>249941344 (OP) Обязательно спросят, че такое транзакция, про нормальные формы могут спросить, че это такое типа. Попросят джоин написать с агрегатной функцией, а потом и с хэвингом. Вот собсна и всё.
>>249960167 Если ещё в соединении указывает порядок таблиц в обратном порядке, типа t1.id, t2.id from t1, t2 where t2.id = t1.id - за такое я б тоже увольнял. Пришлось бы половину коллег нынешних уволить, лол
>>249960852 > никогда на проде не поднимайте субд в докере Чому? У всех в Кубере всё давно, нужно только volume подключить и не хранить БД в контейнере.
>>249960852 > дети, никогда на проде не поднимайте субд в докере Хули б и нет. Вот мне как-то с барского плеча дали задачу прикрутить CI для битрикса, который поднимался в докере, так я два дня просидел, но так и не придумал, как это сделать ебучие инфоблоки, сука.
>>249961036 Забыл миддл-слой на VBA. >>249960966 Легаси, хули. В России это ещё не так критично, хотя всплывает порой, а в белом мире есть код, который работает лет по пятьдесят уже и который написан на каком-нибудь ебучем коболе. В США в корону пенсионеров дёргали за бешеные деньги, чтобы они дорабатывали системы, потому что молодняка с такими знаниями инструментов из восьмидесятых нихуя нет на рынке по очевидным причинам.
>>249941344 (OP) Сразу спросят о том, хочешь ли получать 300 к / сек, и если ты ответишь Да, над тобой будут долго насмехаться, заявив, что реальная зарплата будет только на 4-й месяц после испытательного срока, и она в десять раз меньше. А если ответишь Нет, тогда будут ржать и говорить, что ты лошара и не имеешь амбиций. Шутка, да. Удачи тебе.
>>249961042 Вообще, если совсем маленькие объемы данных и очень хочется, то можно.
Если более менее серьезный продакшин, лучше не надо. БД - довольно критичный сервис. Ему нужно настраивать потребление памяти и использование процессора. Более того, сервис должен быть стабильным, а чем меньше компонентов, тем оно надежнее. И тут у тебя появляется прослойка из докера. Зачем - хз. Чтобы версии разные быстрее разворачивать? Так с СУБД это не нужно делать.
Более того, если у тебя более менее серьезные нагрузки на базу, то надо под нее отдельную машину выделять. Хоть база в докере хоть не в докере. А если ты и так отдельную машину выделил, то установи стенделоун постгрю и не бзди, что докер ебанется и все на проде ебанет.
>>249961252 Когда ты добавляешь в битриксе какую-то новую страничку, например, то это никак не аффектит код, а только данные в БД. Нихуя не понятно, как это отслеживать.
>>249961825 Дополнительно скажу, что проблемы у меня с постгрей в докере начались, когда база разрослась до таблиц в 100кк записей. За минуту было где-то 6-7к запросов, если не путаюсь.
>>249961976 А-а-а, понял. Да, это пиздец. Наверное, в том числе и поэтому у Эльдорадо/МВидео нет нормального CI тянучка в метре от меня регресс проводит.
>>249962319 Ну я говорю: я подумал два дня, нихуя не придумал и слил задачу, а потом и из компании ушёл, потому что вот таких охуенных левых задач стало много по отношению к профильной работе.
>>249963575 Ей понравилось, как я кофе варю и всё завертелось. Вообще хуй знает, методом проб и ошибок, до нее отношался с другими тянками, там поголовно шлюхи, многие при этом не особо умные. С этой просто повезло наверное. Ну и я после знакомства ей немного картину мира поломал, чтобы правильно развивалась.
>>249947973 >Вопросы явно не на джуна Нормальные вопросы для начинающего работника. Всю эту хрень при обучении проходил и как знает. Если на часть отвечает - то потенциал есть. А если везде валится - человек безнадежен, пусть слесарем идет гайки крутить илши веб-макакой
>>249967190 Так джун этим всем заниматься и не будет. Это как брать образованного сисадмина с кучей знаний по сетям, чтобы тот чистил комплюхтеры от пыли.
>>249954667 Тогда просто надо домены использовать. Валидировать такие данные на уровне базы не всегда требуется, т.к. базы часто используются как бездумные хранилища.
>>249953387 Согласен, может про нормальные формы вопрос оторван от реальности - остальное в целом всё используется при построении БД. Мимо-тот-помидор.
>>249953861 Дак блядь дай список задач, дай время пару недель их решать и уже по этим задачам спрашивай.
Как же меня заебали эти уебанские собесы, сука. С этими ебаными вопросами типа "Можно ли наследоваться от класса String и перечислите потокобезопасные коллекции из CUNTcurrent перечислите основные операторы SQL и операторы group by"
сука, ну просто заебало уже, ну какой долбоеб придумал так собесы проводить?
Учу активно тензорфлоу, смотрю вакансии по МЛ/ДС и там всегда какая-то хуита, либо они одной строчкой добавляют ЕЩЕ одну специальность к описываемой, либо занимаются каким-то дрючевом что там и нет МЛа, вакансий немного и требования очень странные. Типа они не могут охуеть как с джавистами или фронтами и написать что-то вроде "Великолепное понимание всей хуйни и еще этой, той, пятой десятой, зарплата 20к рублей". Понятно что МЛщики в этой стране берутся из энтузиастов, их нигде не учат, даже этих потешных курсов скиллбоксов по этому нет кек. Вообщем посмотрим, может мне повезет и так, потом докину в гитхаб проектов учебных, потом начну отправлять сам активно
>>249941344 (OP) Просто набор из каких-нибудь дохуя изъёбистых селектов или апдейтов с кучей условий. Едва ли попросят что-то более сложное из головы, всё равно ж в итоге всё на ходу гуглится.
>>249974450 Джуновский вопрос шопездец. Тебе это зачем? А главное нахуя?
За хуй знает сколько лет такой хуйней не представилось случая заниматься. Список всех таблиц БД ты можешь получить через INFORMATION_SCHEMA. И в цикле херачить EXEC с динамически создаваемым запросом.
А вот как получить список всех бд на сервере я сходу не скажу.