metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-04-09 10:59 pm

BigData - это когда вместо схемы мусор, а разработчики боятся джоинов?

http://habrahabr.ru/company/beeline/blog/218669/
В статье вроде все не сильно страшно, но вот вопрос - откуда такая боязнь join-ов?
Если там таблица c размерностями мизерного размера и помещается вместе с индексами в кэш, то join на нее достаточно дешевый, чтобы на него было пофиг совершенно, по сравнению с вычитыванием каких-нибудь сотен миллионов записей из таблицы фактов.

Впрочем, если в реляционную БД попытаться засунуть неструктурированные данные и попытаться их нормализовать, а еще не дай бог попытаться поверх этого сделать иммутабельность, то запросы действительно вырождаются в десятиэтажные джоины (и все равно я особой проблемы в этом не вижу).

[identity profile] falcrum.livejournal.com 2014-04-09 08:25 pm (UTC)(link)
Чё джойны - там ещё юнион на юнионе бывает...

[identity profile] vit-r.livejournal.com 2014-04-09 09:11 pm (UTC)(link)
BigData - это когда продавец втирает менеджерам, что специалисты по базам не нужны, а можно просто купить их чудесные тулы. (А рядом стоятя продавцы железа и радостно кивают головами)

Впрочем, если в реляционную БД попытаться засунуть неструктурированные данные и попытаться их нормализовать

В Data Warehouse уже давно придумали, как данные нормализовать и как потом их в кубы собирать, чтобы джоины без проблем писались бухгалтерами менеджерами.

[identity profile] vissarion.livejournal.com 2014-04-09 09:18 pm (UTC)(link)
юнион быстрее ора

[identity profile] insanegigolo.livejournal.com 2014-04-09 09:30 pm (UTC)(link)
а по последнему пункту, что стоит почитать?

[identity profile] vit-r.livejournal.com 2014-04-09 09:39 pm (UTC)(link)
Kambal group. В первую очередь dimensional modeling

Если, конечно, интересно понять логику, а не любоваться полотнами SQL запросов.

[identity profile] avnik.livejournal.com 2014-04-10 03:28 am (UTC)(link)
обычно -- хипстерское bigdata -- это то что вы описали, но втиснутое в бюджет в три раза меньше. И все беды там ровно от этого.

[identity profile] maksenov.livejournal.com 2014-04-10 03:51 am (UTC)(link)
А что с юнионом-то не так? Ну даст он доп. сортировку если надо уникальные записи только, а это решается реструктуризацией запроса (например, один DISTINCT с кучей UNION ALL, хотя это должен утрясать оптимизатор). Тащемта, даже в очень сложных стандартных моделях (типа POSC Epicenter или PPDM) юнионы зверь достаточно редкий, и париться из-за этого вообще не стоит.

К статье - дык может просто не осилили? Поди для каких-нибудь редких запросов можно сделать materialized view или что-то в этом духе...

[identity profile] vp.livejournal.com 2014-04-10 04:16 am (UTC)(link)
"...Нужна другая архитектура базы данных. Если вам нужны гибкие запросы, то проще всего хранить данные неструктурированно — потому что для каждого нового запроса придётся иначе строить новую оптимальную структуру. Обычные базы данных направлены на максимальное быстродействие в рамках ограниченных вычислительных ресурсов...."

Переводим: NoSql, запись всего в кучу и последовательная обработка всего в лоб.
Так получается? :)

[identity profile] kranov.livejournal.com 2014-04-10 04:28 am (UTC)(link)
>Переводим: NoSql, запись всего в кучу и последовательная обработка всего в лоб.
>Так получается? :)
там ничего не сказано, никаких монго хадуп риак, поэтому думаю там либо пачка mysql-й либо тесктовые файлы
vinsent_ru: (вомбат)

[personal profile] vinsent_ru 2014-04-10 04:53 am (UTC)(link)
был у меня один могильничек сервер с CouchDB. Документы там были простые, но на каждый документ приезжал еще апдейт, а эта тварь хранила и предыдущую версию. И считался там один отчетик, имено так - жабаскриптом в лоб перебором. Не я делал, в наследство досталось.
Посмотрел я на это дело да и перенес все в Postgres. Итог: отчет считается 2 минуты вместо 30, обьем на диске 1 гиг вместо 14 гиг в коуче за один и тот же период времени.

И я так понимаю, что никакими оптимизаторами запросов в модной бигдате даже и не пахло?

[identity profile] vit-r.livejournal.com 2014-04-10 05:33 am (UTC)(link)
Хипстерское - это два application сервера, load balancer и два database сервера (потому что инвестор платит) на полтора визита в минуту (ну не пошёл пользователь на наш замечательный сайт, что тут поделать?)

[identity profile] kkirsanov.livejournal.com 2014-04-10 06:13 am (UTC)(link)
--И я так понимаю, что никакими оптимизаторами запросов в модной бигдате даже и не пахло?

Бигдаты на столько биг, что их оптимизировать бессмысленно. :)

[personal profile] alll 2014-04-10 06:38 am (UTC)(link)
> Если там таблица c размерностями мизерного размера и помещается вместе с индексами в кэш

Буквосчетание BigData в сабже какбэ намекает нам...

[identity profile] metaclass.livejournal.com 2014-04-10 06:59 am (UTC)(link)
ну 1 млрд записей в каком-нибудь справочнике это тащемта уже биг, видимо. Впрочем, не сильно понимаю, как тут nosql поможет, скорее надо шардить по обычным реляционным серверам это дело.

[identity profile] volodymir-k.livejournal.com 2014-04-10 07:07 am (UTC)(link)
ну и как ваши джойны будут работать по шардам?

[identity profile] volodymir-k.livejournal.com 2014-04-10 07:15 am (UTC)(link)
собственно и традиционные RDBMS про джойны так и говорят -- если маленький справочничек, то повезло и ок, а в общем случае две биг таблицы связывать -- пипец перформансу, нужен денорм

сейчас всё проекттирование схем вкурило тему разделение таблиц на мелкие и крупные -- см напр. memsql подход к шардированию

неструктурированные данные это конечно глупость и колхоз, я могу понять организационные этому причины, а технические -- нет

[identity profile] fas-tm.livejournal.com 2014-04-10 07:20 am (UTC)(link)
>>И считался там один отчетик, имено так - жабаскриптом в лоб перебором
если дать дураку стеклянный хуй, он обязательно его разобъет.
Носикль это такой молоток который умеет бить только по одному гвоздю. Все остальное - кровавое месиво из пальцев.
В вашем примере CouchDB и Postgres ни при чем :)

[identity profile] metaclass.livejournal.com 2014-04-10 07:22 am (UTC)(link)
Скорее всего, мирными средствами никак, придется на сервере приложений собирать. Или копаться в дебрях какого-нибудь оракла, который это просто обязан уметь, за большие деньги :)

[personal profile] alll 2014-04-10 07:25 am (UTC)(link)
Ну, возможно тут игра на тонких различиях между "не понимаем, как вон то нам поможет" и "понимаем, что вот это нам не поможет" в условиях сильного давления эффекта Даннинга-Крюгера и маркетингового хайпа.

Мне отчего-то всегда казалось, что nosql нужен скорее для случаев, когда sql избыточен, ну там хуякхуяквпродакшен. Той же berkeleydb в обед сто лет и кого можно вот этим всем удивить, казалось бы.

[identity profile] jakobz.livejournal.com 2014-04-10 07:37 am (UTC)(link)
Я вот не понимаю такой штуки: есть же подход с OLTP и Data Warehouse-базами в SQL-тусе тыщу лет. У тебя задача хорошо ложится на map/reduce? Ну возьми ты этот DWH, вынь с него все справочники в кэш, потом делай select * from facts - и считай на каком-нибудь дотнете в один проход свой map/reduce. Один хер у тебя в диск это упрется, хоть на какой БД.

Зачем тут надо no-sql, если в обычных БД, если нужно, делается тоже самое?

[identity profile] bagamut.livejournal.com 2014-04-10 07:51 am (UTC)(link)
параллельная обработка, кластеры же

[identity profile] serguei tarassov [arbinada.com] (from livejournal.com) 2014-04-10 08:00 am (UTC)(link)
"Большие данные" как состояние отрасли (http://www.arbinada.com/main/node/1351)

[identity profile] bagamut.livejournal.com 2014-04-10 08:03 am (UTC)(link)
а если все равно собирать надо так можно сразу бигдата собиралку поставить, там весь фокус что это все масштабируется, там же не просто один отчетик генерится, а тыщи их, параллельно

при этом и размер данных все время растет и и количество запросов растет

миллиард записей это мало, представь себе базу по покупкам и транзакциям какого нибудь Wallmart, миллионы покупателей, миллиарды транзакций, вошло, ушло и тп

[identity profile] tzirechnoy.livejournal.com 2014-04-10 08:47 am (UTC)(link)
Пигдата -- это когда фирма покупает два рэйд-массива, с контрактом что если что -- то через сутки производитель притащит ещё, два бэкплэйна к ним, тожэ с контрактом, что если что, то производитель через сутки притащит ещё, два компа для обработки от HP, с контрактом, что если что, то производитель притащит ещё, два свитча для соединения всего этого, с уверениями, что такого за сутки в городе можно купить ещё и двух обезьян от известного HR-агенства, с обещанием, что если что, то через сутки можно нанять ещё.

[identity profile] tzirechnoy.livejournal.com 2014-04-10 08:51 am (UTC)(link)
Мелкие редкоменяющиеся справочники можно разложыть по всем шардам, и менять административно. Крупные редкоменяющиеся отношэния можно разложыть по всем шарпдам, и менять регулярно или иметь спецыальную процэдуру обновления.

Page 1 of 3