Универсальный баз данных тред #11 /sql/ 3268780 В конец треда | Веб
Прошлый >>3122886 (OP)

Ссылки:
- https://www.postgresqltutorial.com/
- https://www.mysqltutorial.org/
- https://www.sqlitetutorial.net/
- https://www.oracletutorial.com/
- https://github.com/agarcialeon/awesome-database

Задачи:
- https://www.sql-ex.ru
- https://www.codewars.com/?language=sql

Продвинутый MySQL:
- https://www.mysqltutorial.org/mysql-resources.aspx
- https://shlomi-noach.github.io/awesome-mysql/

Инструменты проектирования БД
- https://www.mysql.com/products/workbench/
- https://explain.dalibo.com/

Видосики:
- Плейлисты по разным СУБД: 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://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/

FAQ:
Q: Нужно ли знать английский?
A: Нет.

Q: Что лучше, SQL или NoSQL?
A: SQL.

Q: Вопросы с лабами и задачками
A: Задавай, ответят, но могут и обоссать.

Q: Помогите с :ORM_нейм для :язык_нейм
A: Лучше спроси в тредах по конкретным языкам.

Q: Где хранить файлы?
A: Не в БД. Для этого есть объектные хранилища, такие как Amazon S3 и Ceph.

Здесь мы:
- Разбираемся, почему PostgreSQL - не Oracle
- Пытаемся понять, зачем нужен Тырпрайс, если есть бесплатный опенсурс
- Обсуждаем, какие новые тенденции хранения данных появляются в современном цифровом обеществе
- Решаем всем тредом лабы для заплутавших студентов и задачки с sql-ex для тех, у кого завтра ПЕРВОЕ собеседование
- Анализируем, как работает поиск вконтакте
- И просто хорошо проводим время, обсирая чужой код, не раскрывая, как писать правильно.

Поехали!
2 3271750
Всем настолько поебать,что за три дня ни одного поста?
3 3272255
>>271750
Это чисто утилитарный тред, здесь пишут, когда есть вопросы, а не когда хотят початиться.
4 3273514
>>272255
У этого треда активность как у любого другого на этой доске - околонулевая. Даже если человек задает вопрос, этот вопрос может висеть день и больше. Зато соседний тред, в котором айтишники могут повнимаеблядствовать, +- живой.
5 3276114
Куда можно вкатиться с уверенным знанием MS SQL (1.5 года работы+), посредственным знанием питона (простенькие парсеры, работал с апи немного) ,и павер би(пара отчетов буквально было на PBI) . Думал в аналитику уйти, но там хуй поймешь требования, везде разные стэк требуют.
6 3278138

>Q: Что лучше, SQL или NoSQL?


>A: SQL.


поясните для тупых
0b427146545d19141ec88ce0ad503a9c.jpg64 Кб, 800x599
7 3278205
>>278138
Ну ты вообще.
SQL - это Structured Query Language. Есть в природе база в которой не используется язык запросов и у запросов нет никакой структуры?

Вот тебе и вывод: иметь язык запросов с понятной структурой лучше чем не иметь.
8 3278218
>>278205

>у запросов нет никакой структуры


что имеется ввиду под структурой запросов?
philosophythroughtheagesaristotledescratesnietzschebertrandrussellcslewisliljon.jpg44 Кб, 500x667
9 3278312
>>278218
Что значит "что"?
10 3278315
>>278138

>поясните для тупых


Это личное мнение какого-то петуха. Всё зависит от конкретного сценария использования. Есть сценарии когда лучше взять SQL и есть сценарии когда NoSQL лучше. Надо разбирать по каждому отдельному примеру. У меня есть и такие проекты и сякие. В том числе и NoSQL-проекты. И никто не умер от этого. Ничего такого сверхкритического нет. Ну да, в чём-то удобнее, а в чём-то неудобнее. В чём-то лучше, а в чём-то хуже. Где-то быстрее, а где-то медленнее. Можно до бесконечности обсасывать "ааааа, а вот у вас запись на 10% медленнее!" Есть случаи, когда одновременно и NoSQL и SQL в одном проекте используется, один для аналитики, а вторая БД для скорости. Такое тоже бывает.
17003988129030.webm4,6 Мб, webm,
640x360, 1:24
11 3278326
>>278315
Это жпт паста?
image.png1 Мб, 1280x720
12 3278370
>>278315

>Есть случаи, когда одновременно и NoSQL и SQL в одном проекте используется


Это когда основная БД нормальная реляционка но тимлид пропихнул в проект монгу для одного сервиса чтобы у себя в резюме потом написать NoSQL, MongoDB
Снимок экрана от 2024-09-21 21-49-41.png761 Кб, 603x660
13 3278380
>>278370
Да-да, так всё и было. Невыдуманная история о которой невозможно молчать.

>>278326

>Это жпт паста


Давай в ебальник тебе заряжу, если ты ёбнешься с ног тогда я не паста.
14 3278385
>>278312

>пук


ясн
15 3278398
Замечаю в последнее время большой хайп по локальным решениям для "не-распределенной обработки данных с высоким перформансом". Polars, Dask, Ray, DuckDB, и т.д.
Кто-нибудь может объяснить мне, какие задачи у этой ебалы? В моей голове, если хочется поиграться локально с данными (будь то для локальной разработки, или же если ты аналитик и у тебя адхок задача) - есть Pandas для питонистов, есть SQLite для сиквела. Если же надо большие данные - есть жирные реляционные БД, есть всякие распределенные решения на мапредюсе, всё это можно захостить в облаке или онпрем. А вот этот класс инструментов - нафига он?
У меня есть ощущение что это вышло из DS, где люди так или иначе работают на жирных ноутах и модельки локально обучают, но ХЗ, я не машобщик.
16 3278435
>>278385
что имеется ввиду под пук?
17164831276380.mp41,6 Мб, mp4,
1920x1080, 0:11
17 3278450
>>278380
А чего ты порвался? У того, как ты выразился "петуха", хотя бы мнение какое-то было. А хули проку с твоего абзаца воды? Пук среньк, так-то да, а так-то нет.

Дженерик переливание из пустого в порожнее, один в один как жпт кал. Когда надо что-то высрать, но ничего конкретного ты не знаешь. Только жпт так запрограммирована чтобы всегда высирать ответ, а ты нахуя тут насрал?
18 3278463
>>278435
то, что ты обосрался
19 3278474
>>278450
Да не хочу я в ваших тупорылых спорах участвовать. Рассказывать по делу это с пеной у рта доказывать, что nosql пиздец хуже чем sql и вообще nosql нигде не применяется? Да иди ты нахуй и все кто доказывают эту хуйню - идите нахуй. Есть примеры когда nosql + sql используются одновременно, есть даже такой паттерн, называется CQRS:

https://highscalability.com/sql-nosql-yes/
https://www.thereformedprogrammer.net/ef-core-combining-sql-and-nosql-databases-for-better-performance/

Обе бд имеют право на существование.
20 3278481
>>278370
Не обязательно так. У нас сейчас на проде одного довольно ебучего легаси продукта MySQL и Монга. Изначально был только мускуль, но продукт очень быстро разросся и требовал HA, так что мускуль заскейлить под эти требования не получалось. В итоге конфиги остались в мускуле, а основные OLTP в монге. Это в принципе неплохо работает.
21 3278484
>>278481

>MySQL


Эт че?
15848112992680.jpg47 Кб, 537x385
22 3278495
>>278474
Опять какая-то вода, бессмысленный мусор. Право на существование блядь какое-то, филосов стекломойный.

Если человек спрашивает что выбрать, то выбирать ему нужно реляционную базу. Без вариантов. Потому что данные будут в целости, сохранности и в нормальном виде. И перейти с реляционной базы на любую другую - легко. А вот обратно - хуй.

А рассказывать про какие-то охуительные исключения можно до бесконечности, только практической пользы от таких рассказов нихуя нет.
23 3278501
>>278495

>Если человек спрашивает что выбрать


Выбирается в зависимости от задачи. Взвешиваются все плюсы и минусы. У меня есть проекты на nosql, там где сложные запросы не требуются. Никто не жаловался. И есть проекты на постгре. Если ты не можешь сделать на nosql - проблема в тебе и в кривых руках растущих из жопы.
24 3278504
>>278501
Согласен, все по факту.
Выбирается постгрес потому что он способен решить большинство задач, и для него достатоно иметь немного кривые руки растущие из жопы. Он не даст сделать полной хуйни и обойдет за тебя большинство подводных камней.

Постгрес - вариант беспроигрышный. Пишешь в постгрес по умолчанию, а потом уже взвешиваешь плюсы и хуюсы и решаешь что делать дальше. Спойлер: в 99% случаев нихуя делать и не надо.
25 3278512
>>278501

>где сложные запросы не требуются


Сперва не требуются, а потом внезапно хуяк и потребовались. Стартап выстрелил, так иногда бывает. И начинаются анальные пляски с кучей баз каждая в своем микросервисе, по сети летают данные там, где хватило бы обычного запроса на десяток джоинов. В какой-то момент происходит пиздос, данные разъезжаются и вместо холодильника с маркетплейся приезжает коробка дилдаков. Зато не sql.
26 3278531
>>278512
Когда стартап выстреливает - пока мвп лениво крутится в проде набирается команда и переписывается всё чуть ли не с нуля, но по уму. На стадии мвп и поиска инвесторов очень многое, как в коде, так и в инфре нахер не нужно и не делается.

И сделать выгрузку из одной базы для переноса в другую - обычная задача, сто раз уже пройденная многими тысячами разрабов с написанием гигабайтов гайдов.
27 3278547
>>278531
Твои бы слова да в авито. Команду так просто не соберешь, если ты не гугл. Главкабан не понимает, почему надо просрать кучу бабла и получить точно такой же продукт. Чтобы что? Продукт уже есть, надо набрасывать новые фичи с лопаты.
28 3278695
>>278547
этот шарит

>>278531
этот безработный шиз идеалист эскуэль сектант
29 3278714
>>278512
Ой бля хорош нудеть нахуй. Ты как бабка авдрухчо. Зачем писать а вот если то произойдёт, то чё тогда? Ну произойдёт и произойдёт. Что-нибудь придумаю, поставлю вторую бд или дата лейк замучу, или будет какая-нибудь pre-aggregate функция. Ситуаций из которых прям никак не выкрутиться почти не бывает. Нуууу блять всё можно грамотно обыграть, это не конец света.
30 3278744
>>278714

>Нуууу блять всё можно грамотно обыграть


И поэтому все всё грамотно обыгрывают и у всех все заебись.
31 3281434
(PostgreSQL) Есть сущность с 16 байт ключом и двумя десятками опциональных атрибутов, из которых треть - text. Большинство запросов - чтение всех атрибутов, и обновление одного-двух атрибутов. Записей - десятки миллионов. Стоит выбор между одной широкой таблицей с NULL колонками, и двумя десятками таблиц, по одной на каждый опциональный атрибут.
Что стоит выбрать и почему? Есть ли преимущество у таблиц с исключительно фиксированной длиной всех колонок?
32 3281487
>>281434
Жсон
33 3281669
Я джун с 0 опытом работы.
Умею выполнять простые-средние SQL-запросы.
Мне нужно составить знание что я должен делать, куда смотреть, что вводить, какими критериями руководствоваться, какими инструментами пользоваться, чтобы научиться анализировать и оптимизировать работу с mysql. Книги, материалы, темы может кто-нибудь подсказать для этой ситуации?
34 3281754
>>281487

>Жсон в реляционной базе данных.


Это какая нормальная форма?
35 3282212
>>281754
Самая нормальная
36 3288594
>>281669
сам тоже джун, пока смотрю этот плейлист https://youtube.com/playlist?list=PLUaB-1hjhk8FE_XZ87vPPSfHqb6OcM0cF&si=_HI7RFCllbmwDXBN. вроде норм, только видео все на английском, если с ним проблема, то яндекс озвучивание видео в помощь
37 3295058
Сап, аноны
Решил тут sql академию пройти и залип на задачке с insert
Добавьте новый товар в таблицу Goods с именем «Table» и типом «equipment».
В качестве первичного ключа (good_id) укажите количество записей в таблице + 1.

3й аргумент можно просто указать, но хочется его получить, а я не пойму как.

Написал решение:
insert into goods (good_id, good_name, type) values(
count(good_id) + 1,
'Table',
(ifnull(
select max(good_type_id) from GoodTypes where good_type_name = 'equipment'
group by good_type_id, 0)))


Думал через селект выдернуть можно, не получилось, попробовал через ифналл, но и он не сработал.
Что можно применить?
38 3295068
>>295058
А блин. Затупил.
Надо было вместо велъюс использовать селект
clown-academy.mp42,5 Мб, mp4,
700x700, 0:23
39 3295816
>>295058

>sql академию


>В качестве первичного ключа (good_id) укажите количество записей в таблице + 1.


Охуительная академия.
40 3295938
>>295816
Что не так? Порядковый номер - это вполне реальный натуральный ключ. Или ты предлагаешь заменить натуральный ключ автоинкрементом? Почему?
16507308835530.webm9 Мб, webm,
320x240, 3:19
41 3295957
>>295938

>натуральный ключ


Ты совсем ебанулся? Что за шизофазию ты несешь?
Какой он нахуй натуральный если вычисляется на лету, да еще и зависит от состояния ВСЕЙ таблицы, которое меняется постоянно?

Вот удалить запись с айди, например, три. И кто тут теперь вполне натуральный, кто тут блядь порядковый? Кто пятый? Кто десятый? А новый порядковый номер какой будет? Такой же как предыдущий?
И это я не говорю про вставку записей. Там же блядь гонка будет перманентная. Каждый долбоеб пересчитывает записи, а пока он считал там новые добавились.

Даже не знаю с кого я больше охуеваю. С клоунов-академиков или с клоунов-двачеров.
42 3295961
>>295957

>зависит от состояния ВСЕЙ таблицы


Не зависит.

>Вот удалить


Дальше не читал.
16884917041260.webm422 Кб, webm,
480x360, 0:07
43 3295962
>>295961

>укажите количество записей в таблице + 1


>Не зависит.

44 3296021
>>295962
Да ладно, все такими были. Сейчас он разберется и поймет свою ошибку. Или не поймет и пойдет работать в яндекс, там умные не нужны.
image.png380 Кб, 655x527
45 3297145
Привет аноны.

Что у вас спрашивают на собесах? Что сами спрашиваете?

Надо собеседовать маслят накидайте что-нибудь.

С меня как обычно нихуя
46 3297279
>>297145
По описанию логической модели данных напиши создай (напиши в DML) таблицы в 6NF, затем 5NF вьюшки для "основных" таблиц, и пару-тройку процедур для ввода данных. Создай индусы для процедур. Если осталось время, то опиши роли и права для администратора, пользователя, и приложения.
47 3297514
>>297279

>таблицы в 6NF


Зачем это? Выше 3нф редко бывает нужно на практике, а чаще всего одну жирную таблицу вообще дробят на много маленьких и хранят жсоны в базе, потому что так быстрее работает и ниибёт.
48 3297535
>>297514

>Выше 3нф редко бывает нужно на практике


Потому что на практике большинство таблиц в 3NF на самом деле удовлетворяют 5NF или 6NF.

>одну жирную таблицу вообще дробят на много маленьких и хранят жсоны в базе, потому что так быстрее работает и ниибёт.


Что работает быстрее?
49 3297549
>>297535

>Что работает быстрее?


Ты глупый?
50 3297606
>>297279
спасибо анон, но звуит душновато. Хотя тот же 6NF довольно часто используется, но я б не стал так вопрос формулировать.

Я обычно спрашиваю, как работает жоин на физическом уровне, чем отличается кластерный индекс от не кластерного. Рисовать таблички не заставляю, могу спросить про CDC/SCD.
51 3297662
>>297606

>как работает жоин на физическом уровне


В какой версии движка для какой субд?
52 3297691
>>297606

>как работает жоин на физическом уровне


Где об этом можно почитать?
53 3298023
>>295816
Просто учебный пример, потом генерация id будет, надеюсь
54 3298116
>>297662
я имeл в виду про hash\loop\merge
55 3298215
>>297691
Зачем? У промышленных субд внутри происходит ебаная магия с патентованными алгоритмами. Алсо сама концепция декларативного sql говорит, что тебе должно быть похуй на реализацию. Вопрос из серии "к чему бы еще доебаться".
Туда же вопросы про кластерный-некластерный индекс. Все индексы некластерные, блять, а кластерный только один по id, нахуя уделять ему столько внимания?
56 3298274
>>298215
буднешь смеется, мне не давно началит рассказывать что кластерный ПОТОМУШО ДАННЫЕ ХРАНЯТСЯ В НЁМ КЛСТЕРОМ.
57 3298381
Мужики, прошу помощи на коленях

Вот есть древовидная структура у меня в базе
Ко мне приходит последовательность зависимости от корня к листу. Как проверить что эта последовательность есть в бд?
Не понимаю как использовать тут рекурсивный запрос
58 3298400
>>298381

Час потужной мысли и гугления, теперь я вывожу путь от листа до корня в массив и возвращаю
В целом - это уже что-то
59 3298425
>>298381
>>298400
А тебе не приходилов голову просто сделать запрос WHERE parent_id IN(твоя последовательность)? Зачем тебе вообще здесь рекурсия? Рекурсия нужна чтобы ПОСТРОИТЬ дерево, а утебя дерево на вход подается, нужно только убедиться что ноды из этого дерева в базе есть.
60 3298778
>>298425

дед>папка>ребенок
Такая последовательность дается на вход, нужно понять, точно ли папка от деда, ребенок от папки

Не совсем понял как where это проверит
Мне же нужно каждого parentа проверить динамически
61 3299063
>>298778
Я вижу два стула.
1. Рекурсивно построить полные пути от ребенка до самого далекого родителя, потом поискать среди полных путей исходный.
2. Разбить исходный путь на пары (родитель,потомок) и сделать джоин с таблицей связей в бд.
По идее, второй будет работать быстрее.
62 3299273
>>298778
Дк сджойни цепочкой деда на папу, папа на ребёнка, если EXISTS(), то всё ок
63 3299277
>>295957
Помню из-за какого-то сверхразума поймали коллизию счётчика айди мммм найс
64 3299301
>>298778
Ну ты тугой канеш.
Представь что твоя последовательность будет состоять всего из одной ноды. Вот надо тебе найти есть ли в таблице "дед". Как ты будешь эту ноду искать? Дерево будешь рекурсивно строить? Ясен хуй нет.

Ну так твой поиск нескольких нод прекрасно сводится к поиску каждой из этих нод по отдельности. Нам нужно найти что в таблице есть "дед", и в таблице есть "папка", и в таблице есть "внучек". Зачем для этого какие-то рекурсии и деревья?
65 3300190
Базы данных в 95% случаев не нужны.
66 3300200
>>300190
Запили двач без базы данных.
67 3300601
>>300200
Можно жсонами всё хранить на норм ссд, изи. Юзать МуСКУФ в 2к24 - это кринге, чел.
68 3300625
>>300601

> Можно жсонами всё хранить на норм ссд, изи.


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

> Юзать МуСКУФ в 2к24 - это кринге, чел.


Согласен.
69 3301783
>>300200
Вот сосач как раз легче лёгкого.

>>300625
Ну, если так определить БД, то тогда да, очевидно никак без БД. Я имел в виду, что в 95% случаев хватит базы данных работающей как бекап оперативной памяти, т.е. очень очень простой.
70 3304397
>>299301

Так размер этого дерева может быть разным, динамически формировать запрос предлагаете?
Или покажите пожалуйста пример, если не сложно
У себя я реализовал через возврат путей и поиск нужного
71 3305027
>>304397

>динамически формировать запрос предлагаете?


А можно как-то по другому запрос формировать? Дерево твое как в этот запрос попадает? Статитески что-ли?

Последний раз объясняю.
У тебя есть последовательность:
1 <- 22 <- 45 <- 75.
Эту последовательность можно представить в виде пар (id, parent_id):
(1, 0), (22, 1), (45, 22), (75, 45).
Нужно просто проверить что в таблице есть все эти записи. Есть записи - есть последовательность, если какой-то не хватает, то и последовательности нет.
72 3308134
>>301783

>95% случаев хватит базы данных работающей как бекап оперативной памяти, т.е. очень очень простой


Согласен, у нас редис на 200 ГБ и пара петабайт S3. Мы тексты обрабатываем
73 3309162
Ну и как вкатиться в эти ваши Big Data? Заебался админить, хочу развиваться в чем-то более перспективном.
74 3309170
>>309162
Google.com ---> "big data courses" & "big data books"
75 3309319
>>309170

Я рассчитывал получить рекомендации по конкретным книгам и курсам... Так я умею.
76 3319215
>>309162
Big data уже давно стало скверным баззвордом... Указывай конкретные технологии.
К слову, в данных ты также можешь админить, только это называется DevOps. Будешь хорошо устроен если разберёшься с K8S и изучишь какой-нибудь Go.
Ну или разрабом - учи SQL, Java/Python/Scala, Spark, Kafka, Flink, Airflow, ...
В принципе это всё - старый-добрый SQL, только одетый в модные шмотки.
77 3320533
Книжку по монгодб посоветуйте
78 3321130
>>268780 (OP)
Объясните мне пожалуйста почему у mysql такая конченая реализация репликации по дефолту?
Как будто я блять в какие-то 90-е вернулся.
Реплика мастер-мастер, было пару случаев когда ебанули внезапно електрику и когда внезапно ебанул у сервера второе питание.
Суть следующая - у этой хуиты слетает каретка sql потока, причем по логам бывает уебывает куда-то за пределы файла. В реальности оно наебнулось на какой-то одной операции, но ты хуй найдешь на какой потому что файл полубинарный.
Почему не сделать функцию рекавери слейва с мастера и его локом?
Почему не сделать операции построчно в файле и писать вместо позиции каретки в файле как ебланы - номер строки случилась хуйня чтобы эту хуиту можно было дебажить, т.е. сделать операцию и скипнуть ошибку?
Я уже молчу что можно было сделать в теории полное автовосстановление по парным/непарным индексам.
В мире есть какие-то способы/аддоны как совладать с этой хуйней?
image.png84 Кб, 400x400
79 3321319
PostgreSQL
Есть таблица datetime-цена.
Хочу в результате запроса получить в одной строке цену за определённое время пятницы и за определённое время следующего понедельника.
Делаю
with (Номер недели, цена за требуемое время пятницы),
(Номер недели минус один, цена за требуемое время понедельника)
select join on номер_недели=номер_недели

Это нормальный способ, или уебанский и есть что-то проще?
80 3321342
>>321319
Пиздец ты долбоеб, кто тебя нахуй к компьютеру пустил?
image.png343 Кб, 681x607
81 3321364
>>321342
Ну а как надо-то?
82 3321459
Вкатился на джуна аналитиком dwh
Возник вопрос. Есть ли какая-то позиция в сфере работы с БД где необходимо просчитывать что-то математически? Используя дискретную математику, реляционную алгебру и прочие разделы математики.
Подскажите плиз, если слышали о таком или знаете как двигаться в этом направлении.
83 3321488
>>321459

>Вкатился на джуна аналитиком dwh


Как именно, расскажи поподробнее.
84 3321518
>>321319
Надо план смотреть.
Сходу кажется, что ты 2 раза будешь читать таблицу, сначала выбирая пятницу, а потом - понедельник. И потом делаешь join.
Возможно, можно сначала сделать фильтр на пятницу и понедельник, чтобы база в один проход выбрала эти данные, а потом с ними работать.
Тут можно сделать join, а можно и оконку попробовать прикрутить.
85 3321519
>>321459

>работы с БД где необходимо просчитывать что-то математически


Data science? Там, правда, работы с самой СУБД практически нет, часто данные могут быть в виде файлов, например. Ну и анализ ты будешь делать при помощи библиотек на Python в Jupyter notebook.
Возможно, продвинутые аналитики тоже считают что-то математически, не знаю.
86 3321521
>>321488
Знакомый работает синьором в банке тоже аналитиком. Говорит нужны джуны, работа пизда скучная, но перспективная
Написал список тем типа sql, dwh, greenplum, python, что нужно знать
За месяц прочитал в инете про все это
Взяли туда джуном после скрининга и тех. собеса
87 3321524
>>321519
Не, я имею ввиду всё-таки использование в БД
Я хотел в ds попасть, но я великовозрастный вкатун, которого даже не рассматривают
Имел в виду про математическое моделирование БД, оптимизации этих моделей (про подобное краем уха слышал)
88 3321535
>>321524
Не знаю, о чём ты. Речь про построение модели данных? Звезда, 3NF, Data vault.
Этим занимаются архитекторы, по крайней мере выделением общих принципов. Аналитик обычно может разве что разложить бизнес сущности по этим принципам - например, абонент это сущность, а регион это SCD и так далее.
Ну и в целом там какой-то сложной математики нет.
89 3321580
>>321535
Понял, благодарю
90 3321632
>>321459

>где необходимо просчитывать что-то математически?


...в пайплайнах? Ну очевидно же! У тебя есть некоторый набор данных - логи, xml, pdf, что угодно. Они же блять не сами по себе загрузятся в базу данных? Вначале их надо обработать и что тебе мешает во время обработки добавить своих магических супер-пупер алгоритмов? А потом они уже уйдут в бд, delta lake, отчёты или куда-то ещё дальше.
91 3322213
Какие подводные хранить изображения в бинарном поле в mssql?
Или их по правильному нужно хранить в нереляционных базах вроде MongoDb
92 3322222
>>322213

>хранить изображения в бинарном поле в mssql?


А нахера хранить их в базе данных? Какой в этом смысл? Ты конечно можешь хоть всё собрание сочинений Дюма залить туда. Но я исхожу из практических соображений. База данных она же блять ресурсы потребляет. И не абы какие. Все эти индексы, хранение, и прочее это всё стоит денег. Ты же не будешь под бд брать хостинг с hdd? Хороший топовый диск стоит невъебенных денег, около 3 тысяч баксов в месяц за 80K IOPS диск 512 гигабайт. Ну и плюс, это всё надо масштабировать, реплицировать, и так далее. А как быть если из-за твоих картинок запросы медленнее работают? Ну короче, что там такого супер важного, что эти картинки нельзя поместить в какое-нибудь объектное хранилище или обычный hdd-диск?
93 3322233
>>322213
Вроде предпочтительно хранить ссылку на изображение, а сами изображения на диске.
Хотя, думаю, если объёмы небольшие, то всё равно где.
94 3322242
>>322213
Никаких подводных. Выносишь картинки в отдельную таблицу Pictures(id,data), делаешь для нее партиционирование на отдельный диск, получаешь консистентность из коробки. С файловой системой ты рано или поздно проебешь бекапы и получишь ситуацию с ссылками на файлы, которых нет.
95 3322244
>>322222

>А как быть если из-за твоих картинок запросы медленнее работают?


Перестать быть дебилом с орм головного мозга. Почитать, как работает бд и почему select * from table - это плохая идея.
96 3322268
На каких платформах можно потренироваться в написании запросов? Кроме sql-ex
97 3322271
>>322244
Я не он, но не понял.
Если для картинок отдельная таблица, то оно не должно напрямую влиять на запросы бизнес-логики и прочего.
Если там оно всё в одной таблице, то будет влиять, если только БД не колоночная, которая умеет читать только нужные поля.
98 3322275
>>322244
Это ответ на другой вопрос. А я спрашиваю ЗАЧЕМ В ПРИНЦИПЕ хранить картинки в бд. Не технический вопрос "сработает ли", а зачем? Хуй с ним, ладно. Пускай ты прав, всё масштабируется, работает, запрашивается. Ииииииии? Что мне мешает не ебать мозги, а хранить только ссылки. За тот вес, который занимает одна картинка я могу... даже не знаю... записать 500 текстовых записей?
99 3322278
>>322275
Ну, будет ACID, не сможешь записать ссылку без картинки или картинку без ссылки.
И прочая консистентность, которую даёт СУБД.
100 3322288
>>322278
Окей. И ради какого-то маааааааленького плюсика, ради отсутствия потенциально битых ссылок можно пожертвовать всем остальным: большую бд сложнее обслуживать, головняк при переезде на другую бд, плюс как ты собираешься раздавать эти файлы из базы данных? Открывать поток на стрим что ли? Если бы это была такая охуенная идея, пол-интернета давно бы хранило в бд. Но почему-то вместо этого выбирают cdn.
101 3322299
>>322288
А, я мимо проходил, ОП идеи не я.
На тему best practice - аргумент так себе, люди в индустрии просто копируют чужие подходы в основном и всё.
Тема провокационная. С одной стороны - зачем использовать СУБД? С другой стороны - почему бы не использовать.
Реальный ответ тут только в стоимости ресурсов. Железо под шуструю OLTP будет дороже, чем под хранилку картинок, которая может быть медленнее.
Но, опять же, думаю, есть варианты настроить хранение изображений на отдельном железе, нужен только толковый админ.
102 3322307
>>322288
Ты задачу уточни. Тебе нужен цдн с раздачей охулионы терабайтов в секунду? Или нужна консистентность, чтобы важный пдфник с договором не проебали? АСИД - это не маленький плюсих, это охуительный плюсище.
103 3322316
>>322299
Погугли, что такое партиционирование в субд.
104 3322318
>>322316
При чём тут оно?
Минутная гуглёжка выдаёт tablespaces для Постегрса.
Ну и нюансы, как всегда, возникают в процессе.
105 3322322
>>322318
Суть в том, что можно разные таблицы хранить на разных дисках, блобы - на медленном хдд, индексы - на быстром дорогом ссд. Все происходит внутри субд, для тебя это обычный инсерт/апдейт, только с блекджеком и транзакциями. Для хранения пдфников в базе отличная штука.
106 3322385
>>322299

>зачем использовать СУБД?


Действительно. Зачем использовать СУБД, если есть дата лейки для этого. Ну хочешь ты хранить картинки, пдфки - нахуй тебе СУБД? Возьми delta lake, там будет такой же acid. Прогоняешь по пайплайну и делаешь чё хочешь - хочешь нейронки обучаешь, хочешь анализ делаешь. СУБД изначально рассчитана на структурированные данные, там не предполагается, что ты начнёшь пихать емейлы или ещё какое неструктурированное говно в базу.

>>322307

>важный пдфник с договором не проебали?


Смотри выше. Hudi/Iceberg/Delta Lake у них у всех есть acid. К тому же, для договоров имеет смысл использовать блокчейн на базе hyperledger fabric вместо стандартной бд. Я могу привести с десяток примеров таких стартапов: DriveChain, Euroclear, страховая компания Allianz, банк Норвегии и так далее.
107 3322413
>>322385
Да, сейчас бы вместо одной СУБД развернуть lakehouse на кластере кубера с каким-нибудь S3 или Хадупом, сверху Айсберг, обмазать блокчейном и нейронками.
Мы поняли, что ты следишь за баззвордами.
108 3322431
>>322413

>Мы поняли, что ты следишь за баззвордами.


Окей, иди нахуй тогда. Тебе предложили самый простой вариант - постить ссылку, ты недоволен.

ХОЧУ ХРАНИТЬ ФАЙЛЫ В СУБД
@
НУ ПОСТЬ ССЫЛКУ
@
А ВДРУГ ССЫЛКА БИТАЯ, МНЕ ACID НУЖЕН
@
НУ ДАТА ЛЕЙК ТОГДА
@
НЕТ ФАЙЛЫ ВАЖНЫЕ
@
НУ БЛОКЧЕЙН ТОГДА
@
МНЕ НЕ НРАВЯТСЯ ТВОИ БАЗЗВОРДЫ, МНОГО МОДНЫХ СЛОВ ГОВОРИШЬ
images.jpeg9 Кб, 299x168
109 3322435
>>322431

>иди нахуй тогда


Нет ты, /bратан.
110 3322448
я обязательно вкачусь в аналитику данных
1000056936.jpg210 Кб, 701x960
111 3322544
1 год работал в отчётности в коллекторском агентстве - MS SQL.
1.5 года работал в DWH в банке риски - Oracle DB/MySQL.
1 год работал в разработчиком в кредитном конвейере в банке - Oracle DB.
2 года работал разработчиком в международном DWH - Oracle DB.
2.5 года уже работаю старшим инженером в банке - Greenplum/Postgresql.

Выгорел просто пиздец, ничего не хочется. Последнее время с петухоном работаю, это радует. Но хочется уйти в какой нибудь Golang. Что посоветуете?
112 3322545
>>322544

>инженером


Дата-инженером (DE)

быстрофикс
113 3322873
Нихуя вы тут срач развели из-за меня неофита.
У меня пара вопросов:
1) Как файл должен проебаться в файловой системе и не проебаться в бд. Если на диске наебнется сектор, то файл наебнеться внезависимости от того как он храниться? Или в бд (например mssql) есть какой-то механизм рекавери?
2) Что по производительности в двух случаях? Насколько я понимаю что файловая система будет быстрее.
У меня условная задача может на (всего-то) пару тысяч картинок которые желательно таки не проебывать как и в принципе любой файл.
114 3322891
>>322544
А чому выгорел? Заебывают? Я бы наоборот в дата-жирок хотел из копро-аналитики перекатиться, начал вот эирфлоу по вечерам дергать хаха
1000055585.png1,4 Мб, 1024x1024
115 3322895
>>322891
Меня как раз заебывают аналитики. Мы пилим один из слоев данных и мне приходится из sql-говнокода аналитиков делать пайплайны. Очень рутинные и слабоавтоматизированные приседания.

Часть с airflow 2 как раз самая интересная в работе. И много где катируется, полезный опыт. Даги руками не пишем, кстате, автоматически сделали раскатку из dbt-проекта.
116 3322927
>>322873
Когда ты хранишь данные в нескольких местах, перед тобой встает проблема консистентности. Пока ты в одной бд, этим занимается сама бд, ты себе мозги не ебешь. Иначе тебе придется заморочиться с распределенными транзакциями, это много лишней работы из ничего. Ты сохраняешь файл на файловый сервер и ссылку в бд, файловый сервер возвращает ошибку таймаут, твои действия? Запись есть в бд, а на фс файла нет, как ты будешь синхронизировать информацию?
117 3322934
>>322927
в обработку ошибки добавим генерацию случайного изображения
118 3322941
>>322934
Загрузили важный договор.
Скачали фото котика.
Архитектура уровня яндекс маркет.
119 3322943
>>322941
мне пох че там грузили
120 3322945
>>322927
Над БД у тебя есть приложение, верно? Приложение пусть проверяет наличие файла. Если отсутствует отсыпает пользователю ошибку и удаляет саму строчку в БД. Либо повесь на переодический процесс. Чтобы синхронизировать файлы и строки в базе. Обычно это не является проблемой.
121 3322971
>>322945
Вооот. Уже появился демон, который надо написать и отладить. А потом к нему написать ямл и тоже отладить. А потом написать метрики, ты понел. На ровном месте система усложняется просто потому что.
122 3323050
>>322927
У меня прямо сейчас уже такая хуита - таблица с пикчами это уже по сути сорт оф справочник, то есть в другой таблице хранятся какие-то данные и перечисление айдишек картинок.
И при добавлении основной записи (с картинками) сначала добавляются картинки (и опционально чистятся старые), берутся новые айди и добавляются в основную таблицу. Если айди пикч не получены - исключение.
>>322945
>>322971
Практически все тоже самое будет при работе с фс, никаких демонов здесь не нужно, пускай приложение другим потоком дергает дохлые не рабочие сектора хдд до таймаута фс.
123 3323121
>>323050
У тебя уже есть рабочее решение. Ты хочешь его сломать. Зачем? Работает - не трогай.
124 3323157
>>278398

>есть Pandas для питонистов


Пандас и перфоманс это смешно, алсо это психическая нагрузка соединять несколько источников через эту библиотеку, когда как в duckdb можно одним sql-запросом поженить csv, паркет, таблицу из постгреса и выплюнуть ее и в пандас, и в поларс, и обратно в базу, и вообще куда угодно.
125 3323187
>>323121
Да мне перепилить нехуй делать.
Вообще мне интересна именно мат часть - насколько я сосу по производительности? Есть какие-то тесты минимальной реализации?
126 3323728
>>323157

>когда как в duckdb можно


А кому он нужен? В серьезных проектах его нет либо его не затащить, т.к. нет экспертизы эксплуатации и разрабов не найдешь. Даже тупо развернуть где-нибудь на вируталке уже проблема т.к. нет нужных знаний и опыта использования
127 3324135
да что это такое ваша консистентность???
128 3324316
>>324135
Это когда в базе данных всё чотка. Одна таблица не противоречит другой. Все ID сопоставимы между таблами.
129 3324464
>>324316
благодарю
130 3324846
>>324464
Как правило достигается через накручивание pk, fk, uq и check констреинтами.
131 3324973
>>324846
Вообще типы данных должны быть хотя бы корректными, а не даты в строках и идентификаторы с дробной частью.
132 3325041
>>324973
неужели так кто-то делает?
133 3325091
>>324973
Иногда это целесообразно, но черезвычайно редко. Например, мы у себя в залупе хадупе храним cob_date как стрингу. Ибо это дата партицирования. Так нам удобнее хранить в YYYY-MM-DD. Все в банке знают что это партиция.
1731964166088.jpg88 Кб, 604x604
134 3325262
135 3325266
>>325262
Ты чо такой дерзкий?
136 3325412
Нужно ли знать порядок выполнений операторов в скл-запросах?
137 3325744
>>325412
И какой порядок? Это как оптимизатор решит
138 3325771
>>325412
Надо уметь читать план запроса.
image.png40 Кб, 1144x295
139 3326446
Почему нет свежих пиратских версий Aqua Data Studio? Нормальный же инструмент был. Пикрил - рутрекер, а на пиратбэй вообще 0 результатов. Подумал, что софтина загнулась, но нет, на офф сайте версия от 24го года есть.

Может я от жизни отстал и это уже нинужно? Какой сейчас инструмент используют для доступа к различным бд в одной программе, какой-нибудь DBeaver? Нужно PostreSQL, MSSQL, MySQL, Oracle, Sybase - работаю с разными вендорами да
140 3326447
>>326446
Обычно DBeaver. Драйвера ставишь под нужную базу в настройках подключения и всё.
141 3326623
>>326446
Dbeaver наше всё.
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее