Мой проект - анализ журнала (разработка нового инструмента для анализа журналов, существующего инструмента, такого как средство просмотра журнала приложений) с использованием программирования C++ Qt. Существуют разные файлы журналов, каждый файл имеет разный формат . В моем проекте сначала извлекают разные поля из файла журнала и второго анализа. Я выбираю NoSQL databse MongoDB для этого приложения. У меня есть сомнения, что он подходит или нет для этого приложения? Я понятия не имею о MOngoDB.In Qt программирует любую проблему с MongoDB?MongoDB подходит для проекта анализа журналов
ответ
В вашем случае одним из преимуществ MongoDB и других хранилищ документов (например, простого хранилища ключей) является то, что он позволяет вам иметь структурированные данные в каждом документе журнала, обеспечивая мягкую схему сортировки, то есть схему, которую вы можете эффективно изменить после того, как у вас уже есть данные в вашем магазине, если некоторые новые поля станут доступными с помощью новых форматов входных журналов. Хранилища документов также позволяют эффективно запрашивать данные на основе отдельных полей, например, с помощью СУБД.
Однако ваши данные являются только добавлением (поскольку данные журнала, новые данные не деактивируют старые данные), что имеет последствия для производительности: теоретически, при записи новых данных не следует блокировать чтение существующих данных. Механизмы параллелизма MongoDB не поддерживают это поведение, поскольку блокировка выполняется для каждой базы данных: http://docs.mongodb.org/manual/faq/concurrency/ Теоретически, таким образом, другая система БД с более узким подходом к блокировке может быть более эффективной при обработке одновременных операций чтения и записи.
Полный анализ производительности зависит от намного большего, включая ваш набор данных и запросы, поэтому на практике это может быть неактуальным. В принципе, вам нужно будет проверить
Вопрос (к сожалению без ответов) подойти к этой теме можно найти здесь: Which NoSQL database best for append only audit logging use case?
Я думаю, это зависит от того, как вы собираетесь использовать эти журналы, и сколько журналы вы собираетесь хранить. Вы упомянули 2 цели вашей заявки:
- выписка и хранение данных журнала.
- анализировать журналы.
Для 1-го, все в порядке. По сравнению с традиционной СУБД преимущества MongoDB в хранении данных:
- Это быстро. MongoDB по умолчанию использует память для кэша записи (вы можете отключить ее).
- Это гибкий. Большинство СУБД обычно становятся медленными, когда достигает 10 миллионов записей. Однако MongoDB имеет возможность распространять данные без особых усилий. Это позволяет хранить и анализировать большое количество журналов.
Говоря об анализе, однако, не является сильной стороной MongoDB. Прочтите обсуждение here. MongoDB имеет возможность распространять данные и использует группу серверов для их анализа, что позволяет анализировать большой объем данных, который невозможно решить СУРБД. Но это не означает, что это будет быстрее. В настоящее время карта MongoDB Map/Reduce имеет свои собственные ограничения. И, конечно же, вы можете добавить дополнительные серверы, чтобы сделать их быстрее. Может быть дорого.
Другая проблема в настоящее время MongoDB не поддерживает полнотекстовый поиск (это new feature в следующей версии 2.6, но не сейчас). Затем, если вы хотите искать по ключевым словам, это будет медленным.
2 вопроса, о которых я говорил выше, основаны на том факте, что вы собираетесь использовать распространенные функции, предоставленные MongoDB. Если вы этого не сделаете, вы можете использовать C++ для перечисления журнала и анализа записей один за другим. В этом случае MongoDB предоставляет некоторые очень хорошие функции: capped collection и TTL index, что может сэкономить вам время на удаление истекших данных. Прочтите документы для получения дополнительной информации.
В заключение, ну, на самом деле нет вывода. То, что вы выбираете, зависит от того, что вы собираетесь делать и как вы собираетесь это делать. Разум предоставляет больше информации, чтобы мы могли идти дальше?
- 1. Mongodb vs Cassandra для агрегирования, поиска и анализа многих журналов
- 2. Powershell для анализа журналов
- 3. Библиотека C++ для анализа журналов
- 4. инструмент для анализа журналов log4net
- 5. Использование BigQuery для анализа журналов
- 6. Инструмент анализа/анализа журналов Python
- 7. Насколько DocumentDB подходит для сохранения журналов приложений?
- 8. инструмент анализа журналов для анализа данных для временного окна
- 9. MongoDb для анализа трафика
- 10. база данных для приложения анализа журналов в java - 2014
- 11. Используйте Logstash для анализа миллионов журналов
- 12. Использование sqlite для анализа журналов apache
- 13. Лучший выбор для анализа пользовательских файлов журналов
- 14. Какова наилучшая стратегия для приложений анализа журналов
- 15. Как использовать инструмент percona для анализа и анализа двоичных журналов?
- 16. Is Spark подходит для анализа (без перераспределения) журналов с многих машин?
- 17. Является Bigtable (или BigQuery) правильной платформой для корреляционного анализа журналов?
- 18. ANTLR подходит для синтаксического анализа текстовых отчетов?
- 19. MongoDB - PHP справочная информация подходит подходит
- 20. mongoDB для проекта iOS
- 21. Шаблон для хранения журналов Rsyslog с MongoDB
- 22. Как создать коллекцию mongodb для хранения журналов?
- 23. Когда подходит UUID для веб-проекта?
- 24. Эта структура не подходит для крупномасштабного проекта?
- 25. Действительно ли MongoDB подходит для этого?
- 26. MongoDB или CouchDB - подходит для производства?
- 27. Эта схема подходит для использования MongoDB?
- 28. Метеор: mongodb подходит для целого применения?
- 29. Is MongoDB не подходит для реляционных данных?
- 30. Инструмент для анализа веб-журналов IIS для устранения неполадок