Використання бази даних NoSQL в науці даних


16

Як можна використовувати бази даних NoSQL на зразок MongoDB для аналізу даних? Які функції в них можуть зробити аналіз даних швидшим та потужнішим?


2
Основне використання - це зберігання даних та отримання даних. Насправді, це стосується єдиного використання для бази даних NOSQL або будь-якої бази даних. Хочете зробити своє питання краще?
Спайдермен

Так, база даних використовується в основному для зберігання та отримання даних. Як їх можна використовувати для аналізу даних? Які інструменти, вбудовані в бази даних NOSQL, такі як mongodb, що робить аналіз даних легким і потужним?
jithinjustin

1
Вдосконаліть своє запитання, відредагувавши його, не додаючи до коментарів.
Spacedman

Відповіді:


23

Якщо чесно сказати, більшість баз даних NoSQL не дуже добре підходять для додатків у великих даних. Для переважної більшості всіх великих додатків даних, продуктивність MongoDB по порівнянні з реляційною базою даних , як MySQL є значно бідно досить ордером триматися подалі від чого - то , як MongoDB повністю.

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

  • Ніякої схеми - якщо ви працюєте з великою кількістю неструктурованих даних, може бути важко насправді визначитися і жорстко застосувати схему. Загалом, бази даних NoSQL дуже підтримують це і дозволять вам вставляти документи без схем під час руху, що, безумовно, не є підтримкою бази даних SQL.
  • JSON - Якщо вам трапляється працювати з документами у стилі JSON замістьфайлів CSV , ви побачите масу переваг у використанні чогось такого типу MongoDB для рівня баз даних. Зазвичай заощадження робочого процесу не перевищують збільшення кількості запитів.
  • Простота використання - Я не кажу, що бази даних SQL завжди важкі у використанні або що Cassandra - це найпростіша річ у світі, яка налаштована, але загалом, бази даних NoSQL простіше налаштувати та використовувати, ніж бази даних SQL. MongoDB - особливо яскравий приклад цього, відомий тим, що є одним із найпростіших шарів бази даних (за межами SQLite ). SQL також займається великою кількістю нормалізації, і є велика спадщина кращих практик SQL, яка, як правило, зменшує процес розробки.

Особисто я можу запропонувати вам також ознайомитись із базами даних графіків, такими як Neo4j, які демонструють дійсно хороші показники для певних типів запитів, якщо ви хочете вибрати підхід для своїх додатків для наукових даних.


Ти правий. Бази даних NOSQL в основному використовуються для зберігання неструктурованих або напівструктурованих даних, таких як json. Чи можете ви пояснити деякі типи аналізу даних, які ми можемо зробити з ними. Які інструменти вбудовані в mongodb, які можна використовувати для аналізу даних?
jithinjustin

1
@jithinjustin не існує інструментів аналізу даних, вбудованих у монго, чи насправді будь-якої бази даних. Також jsonє повністю структуровані дані. Ви можете технічно робити будь-який аналіз даних на ньому, використовуючи базу даних NOSQL насправді не пов’язано. Існують інструменти, побудовані на вершині монго, як і аналітика.
indico

1
Я не знаю про все це. MongoDB може працювати краще, ніж MySQL. У вас буде кращий аргумент, якби ви сказали PostgreSQL (який, до речі, може прийняти JSON). Так чи інакше, я б не вважав якусь довільну "продуктивність" (ми не знаємо, що таке випадок використання) причиною не використовувати NoSQL. Також не знижуйте, використовуючи кілька баз даних. Пам'ятайте, у MongoDB є дивовижні функції агрегації, яких у SQL немає.
Том

1
@Том, що стосується продуктивності, ви побачите, що єдине завдання, над яким фактично перевершує монго, - це вставки ( moredevs.ro/mysql-vs-mongodb-performance-benchmark ), що є порівняно невеликою частиною аналізу даних. Особливості агрегації SQL є ЗДАРІ більш зрілими, ніж монго. Що стосується MYSQL та Postgres, то цифри дуже перекошені, і обидві мають тенденцію до подібної продуктивності. MYSQL є більш поширеним, саме тому я згадав, що натомість, але ці два досить схожі.
indico

Я завжди бачив кращі показники роботи на MongoDB, коли речі вписувалися в пам'ять. Я беру орієнтири з надбавкою солі, тому що, якщо ви трохи потрошите Google, ви знайдете купу орієнтирів, які показують MongoDB як швидше. Це справді залежить від ваших потреб. Це означає, що допоможе відповісти на початкове запитання - я думаю, що NoSQL використовує багато в науці про великі дані та аналітиці.
Том

4

Однією з переваг підходу NoSQL без схем є те, що ви не здійснюєте передчасні дії і можете застосувати правильну схему під час запиту, використовуючи відповідний інструмент, наприклад Apache Drill . Детальніше дивіться у цій презентації . MySQL не був би моїм першим вибором у налаштуваннях великих даних.


Ось пов'язане питання щодо NoSQL, JSON та Drill: datascience.stackexchange.com/questions/9568/…
sheldonkreger

4

Розгляньте, спробуйте і, можливо, навіть використовуйте кілька баз даних. Тут не просто питання "вистави". Це дійсно підійде до ваших вимог. Скільки даних ви говорите? які дані? як швидко це вам потрібно? Ти більше читаєш важко або пишеш важко?

Ось одне, що ви не можете зробити в базі даних SQL: Обчислити настрої. http://www.slideshare.net/shift8/mongodb-machine-learning

Звичайно, швидкість у цьому випадку може бути недостатньо швидкою для ваших потреб, але це щось можливе. З деяким кешуванням певних сукупних значень це було цілком прийнятно навіть. Навіщо ти це робив? Зручність.

Зручність насправді - це те, в чому ти переконуєшся. Саме тому (на мою думку) були створені бази даних NoSQL. Ефективність теж звичайно, але я намагаюся знижувати показники та зосереджуватися більше на інших питаннях.

У базах даних MongoDB (та деяких інших NoSQL) є дуже потужні функції, такі як вбудована карта / зменшення. Це може призвести до економії витрат і часу, використовуючи щось на зразок Hadoop. Або це може надати прототип або MVP для започаткування більшого бізнесу.

Як щодо баз даних графіків? Вони теж "NoSQL". Подивіться на такі бази даних, як OrientDB. Якщо ви хочете сперечатися з продуктивністю ... Я не думаю, що ви мені покажете базу даних SQL, яка там швидше =) ... а в базах даних графіків є дійсно дивовижна програма, заснована на тому, що вам потрібно зробити.

Правило технології (та Інтернет) не надто зручно одним ділом. Ти обмежишся і налаштуєш себе на невдачу.


1
Я не бачу нічого в цьому посиланні чи тут, що підтверджує, що ви не можете робити аналіз настроїв у базі даних SQL. приклади mongoDB користуються перевагами Javascript у БД, тому ви можете використовувати будь-яку вбудовану мову в базі даних SQL. Наприклад Postgres + R.
Spacedman

Ми хотіли б побачити, де ви можете виконати код і зіставити / зменшити в цих базах даних. З усією серйозністю (особливо Постгрес). ... і навіть якщо ви могли, це все одно не робить відповідь менш достовірною. Можна просто захотіти використовувати NoSQL. Це дійсно працює.
Том

1
Postgres + C, Python, Perl, R, подавайте ваш DB Postgres в новітні алгоритми машинного навчання. Легко: postgresql.org/docs/9.0/static/xplang.html
Spacedman

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