Чому реляційні бази даних не можуть відповідати масштабам великих даних?


17

Часто повторюється, що проблема Big Data полягає в тому, що реляційні бази даних не можуть масштабувати обробку масових обсягів даних, які зараз створюються.

Але які обмеження щодо масштабованості, до яких не пов'язані рішення Big Data, такі як Hadoop? Чому не можуть досягти цих подвигів Oracle RAC або MySQL заточення або MPP RDBMS на зразок Терадати (тощо)?

Мене цікавлять технічні обмеження - я усвідомлюю, що фінансові витрати на кластеризацію RDBMS можуть бути непомірними.

Відповіді:


15

МС щойно провели технічну бесіду в Нідерландах, де вони обговорили деякі з цих матеріалів. Він починається повільно, але потрапляє в м'ясо Хадоопа близько 20 хвилин.

Суть її в тому, що "це залежить". Якщо у вас чітко впорядкований (принаймні дещо) простий набір даних, який (принаймні дещо) є однорідним, його слід досить легко масштабувати до великого обсягу даних за допомогою RDBMS, залежно від того, що ви робите. .

Hadoop та MR здаються більш орієнтованими на ситуації, коли ви змушені проводити велике розподілене сканування даних, особливо коли ці дані не обов'язково є настільки однорідними або такими ж структурованими, як те, що ми знаходимо у світі RDBMS.

До яких обмежень не поширюються рішення Big Data? Для мене найбільше обмеження, до якого вони не зобов'язані, - це створити жорстку схему достроково. Завдяки рішенням Big Data, ви переносите величезну кількість даних у "вікно" зараз, а пізніше додаєте логіку до своїх запитів, щоб вирішити питання про відсутність однорідності даних. З точки зору розробника, компроміс - це простота впровадження та гнучкість на передньому кінці проекту, порівняно зі складністю запитів та меншою негайною узгодженістю даних.


Дякую, Дейв, ти наближаєш мене до того, що я намагаюся з’ясувати. Ви кажете, що Hadoop орієнтований на ситуації з великим розподіленим скануванням - якщо деякі / багато RDBMS 'мають кластерні рішення (RAC, черепки, MPP тощо), то чому б вони також не могли це зробити? Що робить неможливим для RDBMS сортувати 10 трильйонів записів за 16 годин, як дуже великий кластер Hadoop? дивіться тут
Джеремі Борода

2
Ніщо не заважає кластеру RDBMS виконувати подібні роботи, і ви можете налаштувати RDBMS для масштабування для виконання подібних дій. Проблема з RDBMS полягає в тому, що для цього вам потрібно бути дуже уважним щодо того, як ви структуруєте схему та розділи, щоб вона працювала. Архітектури великих даних виграють, коли ваші дані недостатньо структуровані, щоб їх легко та ефективно оптимізувати в RDBMS.
Дейв Маркл

1
Некомпетентні дизайнери ДБ ускладнюють масштабність реляційних баз даних. Забагато компаній думає, що розробники програм можуть розробляти бази даних (або ще гірше використовувати ORMS для розробки дизайну), коли їм потрібно найняти компетентних розробників баз даних з самого початку. Другою особою, яку ви наймаєте на проект, що включає дані, повинен бути розробник бази даних.
HLGEM

3
@HLGEM: Моя відповідь на це: "мех". Найефективнішими розробниками будуть ті, хто розуміє обидві сторони стека - думка про те, що існує таке поняття, як хороший «розробник додатків», який весь час працює з RDBMS, не знаючи, як це працює, є помилкою. . Крім того, думка про те, що існує таке поняття, як хороший "розробник баз даних", який не розуміє ORM або сторону програми, також є, помилкою, IMO.
Дейв Маркл

6

Піонер бази даних та дослідник Майкл Стоунбрейкер спільно написав документ, в якому обговорюються обмеження традиційної архітектури баз даних. Як правило, вони масштабуються з більш дорогим обладнанням, але мають труднощі з масштабуванням паралельно з більшою кількістю товарного обладнання паралельно, і обмежені застарілою архітектурою програмного забезпечення, розробленою для старих епох. Він стверджує, що епоха BigData вимагає безлічі нових архітектур баз даних, які використовують переваги сучасної інфраструктури та оптимізують для певного навантаження. Прикладами цього є проект C-store, який спричинив комерційну базу даних Vertica Systems, і проект H-store, який призвів до VoltDB, баз даних OLTP SQL в пам'яті, розроблених для великих швидкостей роботи BigData. (Повне розкриття, я працюю на VoltDB).

Вам може здатися цікавим цей вебінар на цю тему. Він відповідає на деякі міфи, які виникли з успіхом баз даних NoSQL. В основному він стверджує, що SQL не був проблемою, і для отримання продуктивності не слід відмовлятися від традиційних функцій бази даних, таких як послідовність.


6
Щоб кваліфікуватись як повне розкриття інформації, ви, мабуть, також слід зазначити, що ваш співзасновник і директор CTO Майкл Стоунбрейкер також був співавтором всіх ваших прикладів. І що підтримка SQL VoltDB - це бентежно малий підмножина .
Даніель Ліонс

5

Не зовсім вірно, що RDBMS не може масштабувати. Однак часткова істина в твердженні залежить від архітектури. У списку, який ви подали, OAC RAC відрізняється від решти (шаровані MySQL і Teradata). Основна відмінність - це спільний диск від архітектури, що не ділиться.

Спільні архітектури дисків, такі як Oracle RAC, страждають від масштабування, оскільки в якийсь момент або в іншому всі машини, що працюють, повинні синхронізуватися з деякою частиною даних. Наприклад, керування глобальним замком є ​​вбивцею. Ви можете певною мірою налаштувати його, але в кінцевому підсумку ви потрапите в стіну. Якщо ви не можете легко додати машини, у вас повинно бути менше, але надпотужних машин, які можуть спалити ваш кишеню. У разі архітектури, що не використовується спільним (або розподілених даних), кожна машина бере право на деякі дані. Він не повинен синхронізуватися з іншими центрами, якщо він хоче оновити деякі дані.

Потім з'являється порода баз даних NoSQL. Я б розглядав їх як підмножину традиційних баз даних RDBMS. Не всі програми в цьому світі потребуватимуть усіх функціональних можливостей, пропонованих RDBMS. Якщо я хочу використовувати базу даних як кеш, я б не піклувався про довговічність. Можливо, в деяких випадках я також не дбав би про послідовність. Якщо всі мої пошуку даних базуються на ключі, мені не потрібна підтримка запитів діапазону. Мені можуть не знадобитися вторинні індекси. Мені не потрібен весь рівень запиту / рівень оптимізації запитів, який мають усі традиційні бази даних.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.