BigData - это когда вместо схемы мусор, а разработчики боятся джоинов?
http://habrahabr.ru/company/beeline/blog/218669/
В статье вроде все не сильно страшно, но вот вопрос - откуда такая боязнь join-ов?
Если там таблица c размерностями мизерного размера и помещается вместе с индексами в кэш, то join на нее достаточно дешевый, чтобы на него было пофиг совершенно, по сравнению с вычитыванием каких-нибудь сотен миллионов записей из таблицы фактов.
Впрочем, если в реляционную БД попытаться засунуть неструктурированные данные и попытаться их нормализовать, а еще не дай бог попытаться поверх этого сделать иммутабельность, то запросы действительно вырождаются в десятиэтажные джоины (и все равно я особой проблемы в этом не вижу).
В статье вроде все не сильно страшно, но вот вопрос - откуда такая боязнь join-ов?
Если там таблица c размерностями мизерного размера и помещается вместе с индексами в кэш, то join на нее достаточно дешевый, чтобы на него было пофиг совершенно, по сравнению с вычитыванием каких-нибудь сотен миллионов записей из таблицы фактов.
Впрочем, если в реляционную БД попытаться засунуть неструктурированные данные и попытаться их нормализовать, а еще не дай бог попытаться поверх этого сделать иммутабельность, то запросы действительно вырождаются в десятиэтажные джоины (и все равно я особой проблемы в этом не вижу).
no subject
no subject
no subject
К статье - дык может просто не осилили? Поди для каких-нибудь редких запросов можно сделать materialized view или что-то в этом духе...
no subject
Впрочем, если в реляционную БД попытаться засунуть неструктурированные данные и попытаться их нормализовать
В Data Warehouse уже давно придумали, как данные нормализовать и как потом их в кубы собирать, чтобы джоины без проблем писались бухгалтерами менеджерами.
no subject
(no subject)
no subject
(no subject)
(no subject)
no subject
Переводим: NoSql, запись всего в кучу и последовательная обработка всего в лоб.
Так получается? :)
no subject
>Так получается? :)
там ничего не сказано, никаких монго хадуп риак, поэтому думаю там либо пачка mysql-й либо тесктовые файлы
no subject
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
один могильничексервер с CouchDB. Документы там были простые, но на каждый документ приезжал еще апдейт, а эта тварь хранила и предыдущую версию. И считался там один отчетик, имено так - жабаскриптом в лоб перебором. Не я делал, в наследство досталось.Посмотрел я на это дело да и перенес все в Postgres. Итог: отчет считается 2 минуты вместо 30, обьем на диске 1 гиг вместо 14 гиг в коуче за один и тот же период времени.
И я так понимаю, что никакими оптимизаторами запросов в модной бигдате даже и не пахло?
no subject
Бигдаты на столько биг, что их оптимизировать бессмысленно. :)
no subject
если дать дураку стеклянный хуй, он обязательно его разобъет.
Носикль это такой молоток который умеет бить только по одному гвоздю. Все остальное - кровавое месиво из пальцев.
В вашем примере CouchDB и Postgres ни при чем :)
no subject
Буквосчетание BigData в сабже какбэ намекает нам...
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
сейчас всё проекттирование схем вкурило тему разделение таблиц на мелкие и крупные -- см напр. memsql подход к шардированию
неструктурированные данные это конечно глупость и колхоз, я могу понять организационные этому причины, а технические -- нет
no subject
Например. Какая-то софтина генерирует гигабайт слабоструктурированного говна (текстовых логов) в сутки. Периодически с говна снимаются сливки - отбираются ключевые события и перекладываются в БД. Далее говно упаковывается в герметичные контейнеры (gzip) и хранится где-то в облаках. Периодически возникает необходимость это говно перетряхивать в разных целях - собрать статистику, поискать подробности по конкретным сессиям, итд..
Можно это говно сразу сортировать и пихать в СУБД. Но это долго, дорого и рискованно. Лучше использовать СУБД как индекс, кэш и стейт для кучи неструктурированного говна.
no subject
Зачем тут надо no-sql, если в обычных БД, если нужно, делается тоже самое?
no subject
А еще в SQL запись в таблицу килобайта данных строки отжирает чуть ли не мегагерц тактов. Даже в prepared statement всякие params mapping, marshalling, блокировки, транзакции, проверки.. Если нужно просто строку байтов сохранить для потомства, то тут SQL сосет.
no subject
no subject
no subject
no subject
Так вот стоит там Oracle и MS SQL. С 1С впридачу. Причем 1С играет ключевую роль.
Объем базы 1С около 2 терабайт. Объем базы Oracle боюсь представить. И ничего. Все это крутится, работает. Каждый день перечисляются деньги, строятся отчеты (да, да из 1С!).
Кстати везде Windows, а вовсе не Linux.
Так что вот, дорогие товарищи, как оно все на самом деле...
no subject
no subject
Вообще в корпоративе БигДата это пока ещё в основном анекдот, бизнес просто не знает что с ним делать.
Основной заказчик БигДаты на сегодня это аналитические отделы спецслужб. Падают к ним данные от сотен больших коммуникационных и околобанковских контор. Естественно для единобразности они денормализуются в плоские "логи" с космическим количеством записей. Ну вот и из этого нужно все записи где встречается конкретный номер/имей телефона/карточки/имя. Получается? Ок, а теперь попробуйте по "похожим" именам... а теперь ещё вот так или вот так...
если реляционка, то это "лайки" + джоины и они работать будут ДНЯМИ а времени - минуты. Общая задача это не найти иголку в стоге сена, а найти соломину ровно 10 сантиметров длиной и конкретно жёлто-зелёного оттенка. Реляционкой не решается эффективно, разложить стог на отдельные соломины в рядочек не помогает ну нифига.
Что скажет в этом месте программист? Ну так не делаете лайки а пишите специальный алгоритм - ну и вот MapReduce для этого и написали. Сначала применяли узко, в гуглах да АНБ всяких, а потом поняли что можно продавать ширше, назвали это для маркетинга "БигДата", чтобы конкретные пацаны заказывали - "ну у меня то БОЛШОЙ ДАТА - Мегабайтов 100!"
no subject
дайвате господа ораклисты, продемонстрируйте скорость работы like '%Ivanov%' поверх 100 петабайт :)
no subject
(no subject)
(no subject)
(no subject)
no subject
Для увеличения точности обзора, более эффективного принятия решений?
Дык накладные расходы когда-то начинают превышать пользу.
no subject
Пример. Как-то возникла необходимость посчитать среднее время обслуживания клиента на кассе. Не время между операциями, не время от создания до закрытия чека (чек создают заранее), а время от добавления первой строки до закрытия чека. В БД такой информации нет, а в логах есть. Сделали разбивку по кассирам, добавили счетчик ошибок и отмен - сразу открылась картина, кто на кассе работает, а кто херней страдает.
(no subject)
(no subject)
(no subject)