Туториалы:
- https://www.postgresqltutorial.com/
- https://www.sqlitetutorial.net/
- https://www.oracletutorial.com/
- https://www.mysqltutorial.org/
Задачи:
- https://www.sql-ex.ru
- https://www.codewars.com/?language=sql
Инструменты проектирования БД
- Визуализация планов запросов PostgreSQL: https://explain.dalibo.com/
- GUI-клиент для работы с БД: https://dbeaver.io/
Видосики:
- Плейлисты по разным СУБД: https://www.youtube.com/c/SQLDeveloperBI/playlists
- https://www.youtube.com/playlist?list=PLY7PmJJFH5nT-lbFKxfbp3rw5BBuq5Azo
Литература:
- Томас Кайт. Oracle для профессионалов
- https://postgrespro.ru/education/books/dbtech
- Алан Бьюли. Изучаем SQL. - про MySQL
- К. Дж. Дейт. Введение в системы баз данных
- Database Systems: Design, Implementation, & Management (Carlos Coronel, Steven Morris)
Прочее:
- https://github.com/agarcialeon/awesome-database
- https://dbdb.io/
- https://db.cs.cmu.edu/
- https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/playlists
- Сравнение диалектов SQL: http://troels.arvin.dk/db/rdbms/
- Как БД работают изнутри: https://habr.com/ru/company/mailru/blog/266811/
Ссылки для альтернативно мыслящих:
- https://www.w3schools.com/sql/
- https://learnxinyminutes.com/docs/sql/
- https://metanit.com/sql/
- http://sql-tutorial.ru/
- https://metanit.com/nosql/mongodb/
- https://www.mysqltutorial.org/mysql-resources.aspx
- https://shlomi-noach.github.io/awesome-mysql/
- https://www.mysql.com/products/workbench/
FAQ:
Q: Нужно ли знать английский?
A: Нет.
Q: Что лучше, SQL или NoSQL?
A: SQL.
Q: Вопросы с лабами и задачками
A: Задавай, ответят, но могут и обоссать.
Q: Помогите с :ORM_нейм для :язык_нейм
A: Лучше спроси в тредах по конкретным языкам.
Q: Где хранить файлы?
A: Не в БД. Для этого есть объектные хранилища, такие как Amazon S3 и Ceph.
Q: Нужны ли сертификаты?
A: Только если собираешься заводить трактор.
Здесь мы:
- Разбираемся, почему PostgreSQL - не Oracle
- Пытаемся понять, зачем нужен Тырпрайс, если есть бесплатный опенсурс
- Обсуждаем, какие новые тенденции хранения данных появляются в современном цифровом обеществе
- Решаем всем тредом лабы для заплутавших студентов и задачки с sql-ex для тех, у кого завтра ПЕРВОЕ собеседование
- Анализируем, как работает поиск вконтакте
- И просто хорошо проводим время, обсирая чужой код, не раскрывая, как писать правильно.
Поехали!
Ну я вкатуджон, я задавал вопросы и Вы меня выгнали с такой формулировкой мол читай зе факинг мануал, ну тогда сами постите, если мне рот затыкаете.
Да знаем мы твои "посты":
- Хочу вкатиться хуй пойми куда увидев рекламу говнокурсов
- Сделайте за меня задачу, условие которой надо угадать или выпытывать у меня пол треда
- Вот запрос на две страницы. Почему у васи хуй на лбу? Нет, стурктуры таблиц не будет. А... и я имел ввиду почему у лены пизда до колена. То есть почему у васи пизда на лбу до колена... Че вы доебались до мелочей, я конкретный вопрос задал.
В чем смысл на новый проект ставить mysql вместо постгри? Какие у нее вообще плюсы есть в сравнении?
Ну мне mysql больше понравился в плане "легковесности" если конечно локально ставить. Попроще в развертывании и не так загружает "железо".
Моя первая работа с базами данных была на компанию в регионах в 2017 году. Платили 30к гросс. Даже тогда я считал это рабством ебаный. Работа в коллекторском агентстве Сбера - дочерняя компания. Но я благодарен этому опыту, ибо я там делал отчётность и писал десятки запросов в день.
Тут же натурально работа только на еду. Даже на койко место + еду в ДС не хватит.
А без "субъективно"? Я только слышал где-то мол mysql умеет как-то круто клатеризоваться
>но будут много платить.
раньше да, сейчас уже не так много и ебли в сто раз больше.
тебе точно в НИИ. сужу только потому, как ты сформулировал вопрос и основываясь на твоих сомнениях.
а вообще тут не правильного ответа, в обоих случаях свои плюсы и минсы. Пойти в НИИ не значит, что ты всю жизнь будешь за гроши чаи с кузьмичами гонять, так же как и банк далеко не всегда сулит брольшие горы.
если бы ты задал такой же вопрос лет 10-15 назад, когда я заканчивал ВУЗ. тогда точно бы банк.
C/C++/C# разраб
у меня есть опыт работы в банковской сфере (небольшой)
скипнул. да скорее всего я просто неудачно попал в неудачное время, но...
На собесе "Нам срочно надо, ряяя...похуй что это не знаешь, разберешся по ходу, время будет".
По факту уже на второй недели началось...
"Это короче бросай, потом доделаешь. тут крупный клиент, вот это надо сделать быстро, срок.."Ну за сегодня сможешь?"
никогда не забуду это состояние опустошения после работы.
когда тебя ебут по срокам, работа на выходных и вместо того, чтобы разобраться и сделать нормально, делаешь абы как лишь бы в тайминг уложиться.
> C/C++/C# разраб
Это круто, я тоже думаю подтянуть C/C++ в перспективе
> у меня есть опыт работы в банковской сфере (небольшой)
А сейчас в какой сфере работаешь?
> "Ну за сегодня сможешь?"
Вот тоже не нравится это. С первого курса не мог терпеть эту срочность. Хочется верить, что есть места где можно вдумчиво работать и разбираться в коде, а не скакать по верхам
>А сейчас в какой сфере работаешь?
C#/бэкенд
>вдумчиво работать и разбираться в коде, а не скакать по верхам
НИИ или opensource)
знания имею базовые, выше джоина пока не знаю, все, что показывали на обучении, выглядело как тонна бесполезной инфы, впадлу все это учить
и вот вопрос, а с помощью нейросети, которая, по моему мнению, может спокойно писать любой запрос, еще учитывая мою помощь с умением читать код: смогу ли я таким там свободно работать этим способом? или есть подводные? или может люди уже так и работают? или работодатель будет очень недоволен если увидит, что я черпаю помощь у ИИ? или всем поебать будет, главное делай работу
>лучших учеников заберут на работу.
>тонна бесполезной инфы, впадлу все это учить
>я черпаю помощь у ИИ
Ты уже не подходишь под определение лучшего ученика. Вообще скуль учится буквально за месяц, если не за недели две, по крайней мере на уровне аналитика. Напряги сраку и осиль ты этот простейший синтаксис.
а я под него и не планирую подходить, я не отличник/зубрила/ботан, чтобы всю эту хуйню выучивать, если я могу за пару секунд ответ получить, и мне и компании это в плюс, 2025 год уже
> sql аналитика
Чиво блядь? Писать скули может даже саппорт если припрёт, а учить тебя должны не скулю, а билять аналитике.
> всем поебать будет, главное делай работу
this. Только ценность аналитика не втом чтобы писать скули, а в том чтобы знать что писать и как интерпретировать результат. Удачи в начинании лох.
тебе тоже спасибо бро
В этом и суть что sql отличает нормального аналитика от Мани-эксельщика который научился ВПРы делать.
АналИтики часто завязаны на предметную область. Банки, ритеил, риски, etc. А с умением в sql ты можешь быстро перекатиться из одной предметной области в другую.
А насколько быстро осуществляется вкат в предметную область? Реально самому обучиться? Например, для продуктовой аналитики нужно знать метрики, их вроде несложно выучить. А вот в банковской сфере надо знать дохрена, т.к. предметная область обширная.
Анрил узнать это вне работы. Только непосредственно на работе познаешь

Нашел 1 страницу просто с описанием и в книге больше нет никаких примеров как и в других книгах.
Что за пиздец? Когда их применяют? Какие юзкейсы?
Вот есть у тебя таблица с кучей путей к файлам. Ты хочешь их обработать. Берёшь и начинаешь в несколько потоков читать из таблицы. Появляется проблема - разные потоки могут выбрать из базы один и тот же файл и начать его пердолить. Это плохо и потому, что лишняя работа, и потому, что сами файлы тоже будут лочиться на диске. Решение - каждый поток, когда делает select из таблицы, блокирует эти строки. Тогда другие потоки их не получат, если будут делать select + skip locked. Проблема решена. Может быть другая проблема с неотпусканием блокировки, если процесс вдруг завис, например. Поэтому можно ещё мониторить и прибивать процессы, которые слишком долго работают.
Ты делаешь это неправильно. Надо просто разбить батч на части и каждому воркеру дать свое подмножество. Тогда и блокировки не потребуются.
Прочитать всю таблицу, разбить на батчи, запомнить какой батч кому дал и проконтролировать что он обработан. Короче написать целое приложение, которое таблицу на батчи делит.
И все это вместо двух процедур: getRowsForProcessing() и markRowsAsProcessed() . Вот уж внатуре - ебанутым нет покоя.
А потом железная женщина будит тебя в три утра, потому что твой сервис опять залочил бд и пошли пятисотые.
Какая женщина, ебанько? Блокировка на изменение строк вешается. "залочил бд" - что это вообще нахуй означает? У тебя, долбоеба, все транзакции блокировку вешают.
Каждый раз в ахуе с таких кретинов. Ну не понимает нихуя в теме, но надо высраться обязательно. Про каких-то женщин, про блокировку базы, хуйню малафью.
Потому что практические примеры познаются, как ни странно, на практике. Всех ситуаций не предугадаешь, самый простой и часто встречающийся пример - транзакция на списание денег со счёта.
Думай сам, включай фантазию.
https://vladmihalcea.com/race-condition/
Вот например, когда обосрались с изоляцией транзакций.
>Надо просто разбить батч на части
Как? Я сейчас так и делаю, беру по несколько строк (батч) и их блокирую. Если не блокировать строки, то надо отдельно мониторить, какие строки сейчас каким воркером обрабатываются.
Ок. Разбил. Какой батч батча уже в работе, а какой нет?
Беги бд разлочивать, пицценосец.
Первым N строкам присваиваешь worker=1, следующим N строкам worker=2 и так далее. Каждый воркер знает свой номер, они уникальные, и селектит только строки со своим номером. Воркер обрабатывает только свои строки, никакой гонки, блокировка не нужна.
>Каждый воркер знает свой номер
Откуда? Есть пул свободных воркеров, они не знают ничего о других воркерах. Они работают независимо.
С блокировкой ты просто селектишь незалоченные строки, их лочишь и работаешь с ними. Транзакция либо завершается, если воркер отработал, или откатывается, если воркер почему-то помер. В любом случае лок снимается, и с этими строками можно опять работать (если прошлый воркер умер). Ничего сверх этого писать не надо. Ну кроме одного случая, который я описал, когда воркер завис.
>строкам присваиваешь
>блокировка не нужна
Бля, кретин ебаный. Во первых, во время "присваивания" строки будут заблокированы. А во вторых, на таблицу с миллионом записей тебе придется сделать миллион апдейтов.
Лол, так ты вообще не из айти. Дай угадаю: ты сраный препод из сраного замкадского каледжа. Ох уж эти провинциалы!
Нет, пока он строки не получит для работы.
Перечитал, понял, что ебануто написало про "воркер отработал". Имел в виду "воркер отработал с БД", а не вообще всю таску.
1.
SELECT id
FROM queue
WHERE status = 0
LIMIT 10
FOR UPDATE SKIP LOCKED;
2.
UPDATE queue
SET status = 1
WHERE id IN (<список>)
RETURNING id;
Плюс дополнительно можно pid воркера записать сразу, и периодически проверять, что он не помер или не завис.
Постгрес. В оракле не смотрел, можно ли так, мы всё равно с него укатываемся.
Конечно в НИИ лол, будешь сидеть там лет 50 на жопе ровно в расслабленном темпе делать, что там тебе надо без мозгоебства.
Параллельно можно где-то подрабатывать или частные заказики делать.
Я работаю сейчас в прямо противоположной сфере и меня так это уже заебало, что нет сил никаких. Соковыжималка, никому не советую.
Консалтинг
Ребенок, тут взрослые сидят, иди в b играйся

320x288, 0:09
Вот допустим пользователя надо удалить
1. Удаляется все записи каскадно.
2. Помечается удален, но запись остается
3. Удаляется все нахуй каскадно, но все записи переносятся в копию БД удаленных клиентов, это типа архив со всеми кишками, кто что заказал и прочее. И в таком случае как поддерживать структуру таблиц там и там - мне кажется бред. Проще софт делит сделать как в пункте 2.
Тут пунукт 2 обычно выбирается? А если юзер повторно с номера решил зарегатся то что?
Или как такое делается? Это бизнес процессы называются или как. Хотя бизнес процессы это другое, а тут как бы внутренняя хоботня - вот как такое называется?
Где про эти механизмы можно прочитать и кто это делает? Архитектор? А с кем он согласует подобное поведение приложения?
Гугли GDPR.
>Тут пунукт 2 обычно выбирается?
Да, история не удаляется, пользователь отмечается каким-то флагом внутренним. Потом через какое-то время вместо с остальной историей или удаляется, или идёт в бэкап.
>А если юзер повторно с номера решил зарегатся то что?
Решается теми-самыми упомянутыми тобой бизнес-требованиями.
>А с кем он согласует подобное поведение приложения?
С каким-нибудь из C-левелов, который за бизнес отвечает.
Стоит ли покупать Яндекс.практикум и ботать на работе?
На работке как правило есть 3-4ч для ебланства за компом, вот хочу купить курс и пройти его за +- год и перекатиться на что то более перспективное.
Вопрос - хватит ли пары часов в день и не перегорю ли я?
Алсо, если есть какие то ресурсы типа читаешь тему и тут же делаешь какой то урок (по Питону, Джаве, неважно, по всему) - то кидайте, буду благодарен.
Видосики смотреть в опенспейсе сами понимаете палевно.
Нет, двух часов в день не хватит, люди этот курс как работу проходят целыми днями в течение месяца.
Брешут. Все, с кем я говорил и кто проходил этот курс, говорят, что если ты идёшь в него с нуля, то готовься рвать жопу по 10 часов в день, иначе завалишь дедлайны. Плюс к этому у них постоянно что-то отваливается, и задачи из-за этого не принимаются. Менторы могут стабильно игнорить.
Да, достаточно. Некоторые кликхаус ещё любят спрашивать, но упор в него делать не надо, на работе разберёшься, если попадётся.
>учу с переменным успехом SQL и параллельно начинаю осваивать Hadoop, Spark, Kafka и Airflow. Этого достаточно?
Типичный пример resume driven development. Чувак просто вычитал в интернете какие-то баззворды, зачем они нужны - сам толком не знает. Он даже не понял, что сказал. Хадуп и спарк. Там где стоит хадуп - там не будет спарка. И наоборот. Сейчас все эти громоздкие кластеры уходят в небытие. Нет смысла в 2025-м году ебаться с хадуп кластерами. Проще дешево и сердито накатить duckdb. Хотя опять же, зависит от количества данных. Если у него 100 терабайт данных, то конечно, спарк без вариантов. Тут какое-то квадратно-гнездовое мышление, на любой случай лепить спарк и хадуп.
Опять же... как ответить на такой вопрос, если допустим более новый подход (но меньше у всех на слуху) - chDB/duckDB/polars или более классический подход, который типа "правильный" и "требуют все работодатели". Spark/kafka/dbt/superset и т.д.
Выбор между более разрекламированными "общепринятой технологиями" так сказать и "cutting edge".
> Hadoop, Spark, Kafka и Airflow
Мне лень искать, но если кто-нибудь доставит ссылок и книг по теме, могу добавить в шапку после переката.
мимо опхуй

Какой же клеппман пидорас и так всю книгу:
1. Это говно
2. Это говно
3. Это говно
А КАК НАДО ТО БЛЯДЬ ПИДОР. И ТАК ПРО КАЖДУЮ ТЕХНОЛОГИЮ В КНИГИ - НЕ ГОВОРИТ КАК НАДО
В "реальных банках" апдейтом остатков на счетах не ограничатся и, как минимум, учитывают в той же транзакции ещё и статус документа-основания, если он уже проведён, то и делать ничего не надо.
Зумеры совсем ебанулись. Пикрелейтед что такое? Просто пиздец, человек реально заморочился и по пятьдесят сносок на главу сделал. Почти кажое свое слово и утверждение обосновал, откуда это, кто это придумал, ссылки дал. Не учел только что его книгу будут читать не специалисты, как справочную литературу, а какие-то долбобеы вместо фентези в метро.

В реальных банках пользуются такой разработкой древних как "двойная запись". Никто не "меняет" баланс. Никто ничего не вычитает и не прибавляет. Добавляется строчка в таблицу, с идемпотентным ключем, в котрой id счета дебета, id счета кредита и сумма. А когда пользователь смотрит свой "баланс" ему показывают "сальдо" - разницу между суммой по кредиту его счета и дебету.
Все эти данные хранятся в одной таблице, получаются быстро и легко, никаких конфликтов при записи не возникает потому что операции атомарные. Никаких отрицательных чисел в системе нет. А чтобы не выбирать все записи в таблице по счету есть операция "закрытие периода", когда создается запись с "сальдо" на закрываемый период и актуальный "баланс" считается по записям после закрывающей.

576x304, 0:08
Нет это ты иди нахуй. А лучше в школу, где тебя научат пользоваться сносками в книгах. Автор тебе буквально дал ссылку на научную работу из которой он взял свою фразу.
Нахуй иди, я мать твою ебал.
Ору с пидора - его нахуй посылают, но омежке требуется внимание, т.к. друзей нет и не с кем поговорить. Приятно когда отвечают в ответ, кек
Я написал те технологии, которые на слуху. Естественно я планирую глубже разобраться, что и для чего используется. Зачем у тебя пукан подгорает? А эти кластеры точно уходят? Не слышал, чтобы Сбер или ВТБ использовали что-то отличное от этого.
Он не разбирается, игнорируй его. Кроме хадупосраки в РФ используют яндексовский ytsaurus в Яндексе и ВК. Тинёк и ВБ пилят свои дата лейки, можешь в эту сторону посмотреть ещё.
Ну ты просто слышишь, а я реально использую и плачу из своего кармана. Тебе похуй, не ты же платишь, а работодатель. Поэтому у нас цели разные, я стараюсь экономить, выбираю эффективные решения. А ты выбираешь по принципу "требуется в объявлении/не требуется". Один хуй, у Сбера кошелёк бездонный, они хоть миллиард рублей оплатят.
Хадуп нахуй не нужен. Почему? Потому что это джава, мап редюс - это тот же апач спарк на минималках. Hdfs? Есть s3, minio. Apache hive? Тоже устарело. Вся экосистема хадупа - говно.
Естественно, можно взять аренадата за охулион рублей в месяц и использовать для простых пайплайнов. Опять таки, тебе похуй потому что обычный исполнитель.
В оп посте кабан
> Никто не "меняет" баланс.
Очень даже меняют, никто не будет ждать закрытия операционного дня, чтобы каждый раз для каждого счёта вычислять доступные остатки по сотням тысяч проводок/резервов ради проверки, что счёт не уйдёт минус после очередной проводки.
При закрытии дня, да, один раз проверяют соответствие текущих остатков проводкам и записывают в главную книгу.
Ну так это никакой не "баланс", а кеш, который в редисе вообще спокойно лежит и периодически в базой синхронизируется. Речь идет о том как финансы в базе хранятся и учитываются. Проводками и хранятся. То что там сверху нагорожено для скорости и удобства - вообще отдельная тема. Так-то все эти записи еще и в памяти приложения загружены в виде объектов. И в кафке в виде событий. И хуй знает где еще. Но источник истины в этой системе - таблица с проводками.
Всё, что можно сделать через GROUP BY, также можно сделать через оконные функции ( F() OVER () ) и DISTINCT.
Очевидный sub select
Да
Какой вывод мне сделать? Это хорошо или плохо?

>Хотелось бы куда-то расти, но я немного потерян.
Долбоёб, уж определись или тебе развитие или джуниор. Это две разные вещи. Вы сначала приходите говорите "дайте мне легкую работу" или "дайте мне стажировку", вам начинают советовать тестировщиков, junior должности и т.д. Вы устраиваетесь, и тут вдруг оказывается что там 0 развития, 0 опыта, по сути монотонная, скучная, лёгкая работа, которая никак тебя не продвигает как специалиста. Если ты хотел развития, не надо было устраиваться на должность junior-аналитика, надо было брать сложные таски (без приставки "junior").
Это примерно как работать 5 лет говночистом и ожидать, что эти 5 лет засчитают за опыт гендиректором, такая же логика. В смысле, ты получил ровно то что хотел - если ты хотел лёгкий ВКАТ то ты именно ВКАТ и получил. Про развитие никто не говорил.
Да, в общем-то я хотел легкий вкат. Ничего страшного, стаж получу в банке, а вечерами могу и посаморазвиваться. Вопрос был скорее в том, что поизучать, на что потратить свое маленькое свободное время, чтобы потом устроится получше. Уйти всегда можно.
Представь себе, что я допустим даю тебе ЛЁГКУЮ РАБОТУ. Без разницы какую. Скажем, она загружает твой мозг на 10%. И к чему это приведёт через 5 лет? Ты просто отупеешь. Если тебя ни о чём не просят, то они и не оценят твою инициативу. Ты начинаешь всякие tableau в свободное время устанавливать, это будет тоже самое, что кормить свинью моллекулярной кухней. Банку это нахуй не обосралось, они ещё за инициативу отругают лол. Лучше бы нашёл нормальную компанию, которой этот самый tableau реально позарез нужен, а не просто ебучие пет-проекты делать. Какая тебе разница на что время всирать, а так ты хотя бы за это деньги получишь. А так ты просто всрёшь время и нихуя никаких денег не получишь.
Смысл вот устраиваться на такую работу, где требуют меньше, чтобы вечерами пилить дополнительные пет-проекты. А нельзя было сразу подобрать такую работу, где это всё в требованиях содержалось? То есть чтобы там был и tableau, и python, и всё прочее.
Так может эти tableau чем-то лучше, чем тот же эксель, правильно? А значит и я смогу потом начальника убедить, что нам это надо как минимум потестить, да сынициирую так сказать установку да постараюсь имплементировать в рабочий процесс.
Я так-то не спорю, я вижу в твоих словах логику. Ретроспективно я многое бы поменял, но надо играть с тем, что есть. Полгода назад мне очень легко достался этот офер и из-за своей лени я просто согласился на него.
Кто ж тебя возьмет. За такие деньги там уже 20 миллионов индусов откликнулись на вакансию.
Это всё имеет смысл делать, для тех кто в разбирается в теме и может оценить твой труд. Внедрение супер-пупер новшеств для несведущих людей чревато. Это всё равно что быдло накормить молекулярным обедом, принести лимонное облако и икру из дыни на ветчине прошутто. А он скажет - а нахуй ты мне это принёс, я хотел шашлыков поесть с балтикой девяткой.
Конечно сейчас ты сидишь на кукане, ты подписал договора, никуда сейчас не спрыгнешь. Надо было думать об этом ещё до момента подписания. Надо устраиваться туда, где сильная команда, много требуют. Можно учиться от других, если ты с первоклассными чуваками работаешь.
Tableau - как по мне, хуита из хуит. Они ушли из России, плюс, стоят космически дорого ~$1200/год на одного пользователя. По сути, это тот же самый R, только визуальный. С кнопочками-хуёпочками, вместо кода ты лазишь по менюшам и выбираешь готовые функции, вот и всё.
Мне понравилась твоя фраза про молекулярку и свинью, я даже в голос проиграл. Надо запомнить.
Но я не согласен по поводу новшеств. Если инициатива принесет пользу и эту пользу можно показать на пальцах, можно выторговать больше ответственности. Ответственность потом обменять на деньги. Только так я получал повышение в зп раньше.
Легко говорить - надо было что-то делать. В сильной команде может меня никто и не ждал. Опыт работы у меня все-таки в другой отрасли. Кстати, я не в РФ, я в Чехии, но может и вернусь, пока не знаю.
Мы сейчас просто гипотетические сценарии обсуждаем. Переубеждать нет смысла. Считаешь что нужно - ну окей. Практика покажет - нужно оно было или нет.
Ну может с одной стороны и неплохо. Может я просто нагнетаю. С одной стороны, копеечка капает, жить можно. Европку посмотришь.
Лично я бы вкачивал статистику, SQL и R, самые ценные скиллы для аналитика. Но это лично моё мнение.
Я думал меня тут сразу только нахуй пошлют, а ты мне даже релевантную информацию выдал. Благодарю.
Вклинюсь в ваш диалог. Я пиздец люблю R и много на нем всякого разного делал. Но сейчас объективно на рынке труда R никому не нужен. Для аналитики, статистики, всякого разного дата саенс всем нужен питон. Так что советовать кому-то тратить время на изучение R, которое можно было бы потратить на тот же питон или SQL - это просто нечестно.
>Я думал меня тут сразу только нахуй пошлют
ДУМАТЬ это одно, а проверять на практике другое. Я думаю что меня отошьёт вон та красивая девушка, но проверять я конечно не буду. Лучше сразу к жирухе подойду, так у меня больше шансов.
>>409464
>Я пиздец люблю R и много на нем всякого разного делал
Молодец. Я тоже.
>объективно на рынке труда R никому не нужен
В точку.
>советовать кому-то тратить время на изучение R
Нет, подожди, ты сейчас путаешь кислое с пресным. Твоя мысль "не востребован - значит изучать не надо". Так можно сказать про что угодно. Matlab не востребован, изучать не надо. Julia не востребована, изучать не надо. Если на всё смотреть через призму найдёшь работу/не найдёшь, то нахуй нам все остальные языки. Давай все станет питонистами, нахуя нам раст, нахуя нам сишарп. Оставим только один питон и все на нём будем кодить. Чисто для себя можно изучить. Что значит "тратить время"? У языка есть полезное применение! Да, он может быть с недостатками или не такой популярный как питон. Но лишней строчка в резюме не будет. Язык позволяет красиво графики рисовать например, работать с временными рядами. Тем более, мы говорим про рынок евросоюза, а не российский. Если он и правда в Чехии, то там дохуя работы на R.
Так а какой серьезной компании нужен чел без реального стажа, пусть и на говноработе? Все серьезные вакансии требуют опыт работы. Просто все твои аргументы в разговоре с >>409358 аноном касаются и меня. Я устраиваюсь аналитиком на пол ставки (ибо студентота) в парашу где не факт что sqlем вообще кто-то пользуется, и с одной стороны я долбоеб, что выбрал место с минимальным потенциалом развития, но с другой - где как не там я пойму, подходит ли мне эта сфера в принципе или нет. После года работы в любом случае планирую съебаться в более солидное место, где в серьезным ебалом заявлю об 1 годе опыта. Не знаю, анон, ты конечно прав, но легко сказать "надо было делать вот так-то и так-то, сразу залетай на мидла/сеньора", но в реальности все сложнее.
Не соглашусь. Я живу в ЕС, тут работы для R очень мало, а там, где R упоминается, обычно написано R/Python. Тем более, при чем тут матлаб и джулия? Никто не спорит, что лучше знать больше, чем меньше и лучше знать доп. язык, чем не знать, но он хочет вкатиться в аналитику как можно скорее и проще. А для этого логично бросить силы и время сначала на то, что более востребованно, а уже потом, работая, расширять кругозор и узучать новые языки.
Ты продаёшь не опыт, ты продаёшь заказчику аналитику своего бизнеса. Также как и строитель покупает не экскаватор, он покупает вырытую яму. Люди покупают не дрель, они покупают дырку в стене. Все эти: cертификаты, годы опыта, портфолио и т.д. Это лишь дополнительные свистелки и перделки для повышения цены, а не базовое условие для устройства на работу. Серьёзные компании? Блять, это какие? Типа ibm, майкрософта и так далее? А ничё что эти компании десятилетиями нанимают грязных вонючих индусов, работающих на них за копейки? Если ты считаешь себя хуже ёбанного индуса - ну окей.
Вообще, такого концепта как "быть достойным чтобы претендовать на работу" не существует в природе. Ну типа, ты либо делаешь работу и тебе платят деньги, либо обсираешься и тебя увольняют. Всё.
Также как и концепта "уволиться через год, потому что накопил достаточно опыта". Почему люди обычно увольняются? Потому что: 1) хотят больше денег 2) заебало на старом месте, не ценят 3) наскучило, хочется чего-то нового. А бля просто уволиться ради самого увольнения, это какая-то ебанутая причина если честно.

Ох, братик, я 8 лет в базах данных весьма плотненько. Был и Report Developer и DWH/ETL Developer так и сейчас в роли Data Engineer. Очень настопиздело это. Деньги тут можно зарабатывать, но в целом Data Engineer это человек-оркестр. От компании в компании ты будешь немного:
- DBA
- QA
- BI
- Python/Scala/Java Developer
- DevOps
- SQL
- системным аналитиком
- Support Engineer
Не жди что ты научишься хорошо программировать, ты будешь охуенно писать SQL-запросы, но не более. В разных компаниях по-разному, но ты будешь знать всё и ничего одновременно. Сам хочу уволиться и в Гошечку перекатиться, работаю в банке
>Гошечку перекатиться
охлол, я так же
только я сразу в гошечку не могу (нет опыта)
грустно на рынке сейчас для джунов, пиздец как грустно
В Джуна сложно, да. Я хочу в мидла. Есть опыт написания сервисов на петухоне. И в целом опыт в БД
вот я и думаю что делать, в запасе есть ~год на нахлебничество поднятие уровня знаний в бекенде
вот и думаю, стоит ли учиться пока я могу и всё же пытаться в golang, вдруг скоро всё закончится и к нам вернутся иностранные компании, в целом мировая экономика поднимется, и наконец то в айти будут вливать деньги как в ковидные времена и будет много мест для джунов
Мне казалось, что DE это что-то ближе к Hadoop, Kafka, ETL и вот это вот всё, а у тебя какое-то говно выходит будто
Kafka забыл. Hadoop тоже будет.
Мировая экономика нихуя не на подъёме, она нависает над обрывом кризиса и следующее десятилетие будет очень интересным.
Рекомендую тебе не ебланить и хвататься за всех синичек вокруг тебя, вместо того, чтобы смотреть на мифического журавля ласкового зарубежного хайра.
сейчас то понятно что всё плохо
господи найти бы работу в golang я был бы самым счастливым человеком в мире
Сейчас = все плохо будет как минимум десять лет и я не вижу в тебе понимания/осознания этого прогноза.
Заебало читать это нытьё про "человека-оркестра". Зуммеры постоянно жалуются ой блять "я хотел один бекенд а там ещё верстать..." или "я хотел бекенд, а меня ещё заставили разворачивать инфраструктуру, это нормально?". Они видимо ожидают микротаски или узкую специализацию. Где чуть шаг вправо, шаг влево - тут мои полномочия всё, как в том меме. Они ещё потом начинают скулить, типа лол, я же типа 5 в 1, должен получать как за пятерых человек мол! Хуле у меня такая маленькая зарплата, я хочу 500 тысяч в месяц. И ещё наймите 10 дополнительных специалистов - одного девопса, одного тестировщика, одного дба, и т.д. Ещё с таким обиженным еблищем обычно говорят, типа ой компания не может ещё людей нанять. Ненавижу этих людей сука. Просто по одной фразе "человек-оркестр" можно задектировать что скажет дальше.
Здорова, коллеги! Ну чё, погоняем двхшечку? Что у нас здесь сегодня, смотрим?
Старина Дейта, старина Уолт, посмотрим. Я такую кстати ни разу ни проектировал, ща посмотрим.
Как она обновляется я не знаю. Ща соберем эту глыбу. Хыыых еле-еле сджойнил! Хе-хе-хе!!
Ща попробуем. Берите вместе со мной ребятки выгрузку с витринки. Лааадно пойдёт!))

Одно дело когда человек-оркестр в компании ООО "Кабан" где 1.5 разработчика. Тут понятно что ты - незаменимый. Жнец, гонец и на дуде игрец.
Другое дело когда у вас есть целый департамент архитектуры, отдельно девопсы, отдельно DBA и дохуялион АНАЛитиков, но всё вышеперечисленные делаешь почему то ты. И поэтому перекос, одни отделы сидят дунасят, а других ебут потогонкой.
Изучай существующую структуру БД и разбирайся, почему она устроена именно так. Задавай вопросы коллегам (на которые тебе никто не ответит), думай где что можно было бы улучшить.
Тут как раз и возможен рост, особенно если что-то высоконагруженное с этой базой работает. Написать очередной круд на php и js много ума не надо, это и чатгпт сделает, а вот понимать, например, уровни блокировок, чтобы не напарываться на дедлоки на ровном месте, понимать зачем и когда нужны всякие индексы, квери планы, партишены, (де)нормализация — вот это самое сложное и ценное, это знания, которые ты дома/на говнокурсах не получишь никогда. И это то, что будет отличать тебя от таксистов со скуфбокса.
>Стоит ли дальше разбираться, это ведь, то, что нужно?
Это оно. Стоит ли или нет, решать тебе.
Это называется распределенные транзакции. Сделать можно, но некоторые считают, что в микросервисах их не стоит использовать.
Нельзя. Распределенные транзакции делаются через сагу и это большая головная боль для разработчиков. Самое простое решение - объединить все микросервисы в один, чтобы он все делал под одной транзакцией в одном подключении.
Где ты будешь прописывать логику откатов и ретраев в этом твоем двухфазном коммите?
Документация + sql-ex для понимания того, как на скуле решать задачи. Больше ничего не нужно.
У моего проекта архитектура говна. Микросервисы, которые нафиг не нужны. Я ничего не решаю, но хочется предложить что-то получше саги, которая для нашего случая оверкилл, потому что таких транзакция немного
Как сага может быть оверкилом? Одна транзакция, одна сага, одна таблица, один вождь файл.
Ты пытаешься добавить в проект idle in transaction. Так делать не надо.
Выглядит это сложно, чел на совещании рисовал схему, там нужно еще какие-то сущности вводить, а проект и так довольно запутанный. Хочется сделать именованную транзакцию, как будто это выглядит гораздо проще
>У меня есть несколько микросервисов
>которые обращаются к одной бд
Поздравляю, у тебя РАСПРЕДЕЛЁННЫЙ МОНОЛИТ.
скорее даже вредный

Стоит ли ограничиться простым вызовом SQL COUNT(), перед созданием очередного заказа? Гипотетически, если много раз подряд вызвать запрос на создание заказа, то мы проскочим лимит, ведь нет никаких блокировок. Но с другой стороны, сильно за лимит уйти не получится в любом случае. Поэтому не знаю, стоит ли добавлять какие-нибудь блокировки или как обычно решают такие задачи?
Включи для этой транзакции уровень изоляции SERIALIZABLE и тогда точно никто не проскочит.
Да и хуй с ним, ну поламается и туда ему и дорога.

Буквально то что тебе нужно. https://stackoverflow.com/a/1743742
Вообще так делать не стоит, зато обеспечишь дба работой на годы вперед. Инвестируй в будущее.Твои дба братишки на новом месте работы отплатят тебе тем же.
Advisory locks чекни, чтобы блокировать записи конкретного пользователя а не все
Как разобраться с уровнями изоляции транзакций и понять когда и какую выбирать? Как не обосраться на собеседовании?
READ UNCOMMITED - никогда. Дебилы не знают про кафку.
READ COMMITED - всегда.
REPEATABLE READ - никогда. Каловое легаси с бизнес-логикой в хранимках, нет пути.
SERIALIZABLE - каво?
Ну и как понять, что каждый уровень делает? Не просто же их так придумали. На собесе каждый раз спрашивают перечислить все уровни и привести примеры
READ UNCOMMITED - изоляции нет, изменения доступны всем сразу, не дожидаясь комита. Транзакций по сути нет, если очень хочется пукнуть данными и забыть - есть кафка.
READ COMMITED - изменения становятся видны всем после комита своей транзакции. Это дефолтный режим.
REPEATABLE READ - перед началом транзакции делается как бы слепок бд и ты работаешь с ним. Если в режиме READ COMMITED изменения видны в твоей транзакции сразу после комита своей транзакции, то в режиме REPEATABLE READ ты работаешь со старой версией базы, какой она была на момент начала твоей транзакции. Эта хуйня актуальна, если ты в бд пишешь дохуя бизнес логики и в циклах что-то там считаешь. Сейчас так никто не пишет.
SERIALIZABLE - транзакции выстраиваются в очередь и следующая не запустится, пока не завершится текущая. Пизда производительности, никто это не использует.
Вот книжка, в ней где-то в начале разбирается изоляция: https://postgrespro.ru/education/books/internals
Лол, причем здесь вообще уровень изоляции?
>>414701
> SERIALIZABLE - транзакции выстраиваются в очередь и следующая не запустится, пока не завершится текущая. Пизда производительности, никто это не использует.
Чиво блять? Один пользователь может открыть несколько параллельных сессий и ебашить запросы. И просто результаты этих запросов не будут видны пока они не закомичены. Если два одновременно запроса заапдейтят одну и ту же строчку, то просто будет блокировка. Никакие запросы в очередь не выстраиваются.
P.S. я хуйню спорол. Все верно пишешь.
Что значит теперь? Это и 15 лет назад спрашивали.
Такие и задают. От джуна ничего особого не ждут, кроме 3 лет опыта.
Нихуя себе, прям представляю суперкомпьютер с выделенной электростанцией, на котором одиноко крутится постгрес.
30-150к.
Ходить конечно, это называется подышать свежим воздухом. У нас пара коллег курит, иногда выхожу с ними пробздеться, на солнышке постоять.
Разве я не буду дышать дымом большую часть времени? О чём с ними говорить, если мы не знакомы вообще
> Разве я не буду дышать дымом большую часть времени?
Нет, отойди подветренную сторону, там не пахнет.
>О чём с ними говорить, если мы не знакомы вообще
Ошибка сыча, о чем хочешь говори. Спроси кто сколько тут работает, чем занимаются в компании. Да хоть про сикуэль говори, главное не сиди в стороне.
Понял, спасибо. Но мне кажется на практике мозг просто сделает выбор в пользу "стоять и смотреть в пол"
Это же базовые навыки социализации.