Как базы данных NoSQL, такие как MongoDB, можно использовать для анализа данных? Какие функции в них могут сделать анализ данных быстрее и эффективнее?
Как базы данных NoSQL, такие как MongoDB, можно использовать для анализа данных? Какие функции в них могут сделать анализ данных быстрее и эффективнее?
Ответы:
Честно говоря, большинство баз данных NoSQL не очень хорошо подходят для приложений с большими данными. Для подавляющего большинства всех приложений для работы с большими данными производительность MongoDB по сравнению с реляционной базой данных, такой как MySQL , значительно ниже , чтобы можно было полностью отказаться от чего-то вроде MongoDB.
С учетом вышесказанного есть несколько действительно полезных свойств баз данных NoSQL, которые, безусловно, работают в вашу пользу, когда вы работаете с большими наборами данных, хотя вероятность этих преимуществ перевешивает в целом низкую производительность NoSQL по сравнению с SQL для чтения. Интенсивные операции (наиболее похожие на типичные случаи использования больших данных) низкие.
Лично я мог бы предложить вам также проверить графические базы данных, такие как Neo4j, которые показывают действительно хорошую производительность для определенных типов запросов, если вы хотите выбрать бэкэнд для своих приложений для обработки данных.
json
полностью структурированы данные. Технически вы можете выполнить любой анализ данных, используя базу данных NOSQL, на самом деле не связанную. Есть инструменты, построенные на вершине монго, как, например, аналитика.
Одно из преимуществ подхода NoSQL без схемы состоит в том, что вы не фиксируете преждевременно и можете применять правильную схему во время запроса, используя соответствующий инструмент, такой как Apache Drill . Смотрите эту презентацию для деталей. MySQL не будет моим первым выбором в условиях больших данных.
Рассмотрим, попробуйте и, возможно, даже использовать несколько баз данных. Здесь дело не только в производительности. Это действительно будет сводиться к вашим требованиям. Сколько данных вы говорите? какие данные? как быстро тебе это нужно? Ты больше читаешь тяжелым или пишешь тяжелым?
Вот одна вещь, которую вы не можете сделать в базе данных SQL: Рассчитать настроения. http://www.slideshare.net/shift8/mongodb-machine-learning
Конечно, скорость в этом случае может быть недостаточно быстрой для ваших нужд, но это возможно. При некотором кешировании определенных агрегатных значений это было вполне приемлемо. Зачем ты это делаешь? Удобство.
На самом деле удобство - это то, что вы собираетесь убедить. Именно поэтому (на мой взгляд) были созданы базы данных NoSQL. Производительность тоже, конечно, но я стараюсь сбрасывать со счетов тесты и больше фокусироваться на других проблемах.
Базы данных MongoDB (и некоторые другие NoSQL) имеют некоторые очень мощные функции, такие как встроенная карта / уменьшение. Это может привести к экономии как затрат, так и времени по сравнению с использованием чего-то вроде Hadoop. Или он может предоставить прототип или MVP для запуска более крупного бизнеса.
Как насчет графовых баз данных? Они тоже "NoSQL". Посмотрите на базы данных, как OrientDB. Если вы хотите поспорить о производительности ... Я не думаю, что вы покажете мне базу данных SQL, которая быстрее там =) ... и графические базы данных имеют несколько действительно удивительных приложений, основанных на том, что вам нужно сделать.
Правило технологии (и интернета) не слишком удобно с одной вещью. Ты будешь ограничен и настроишься на провал.