
- •Задачи интеллектуального анализа: кластеризация
- •Распределенные вычисления на примере cloud-based по на примере prezi.Com
- •Условия использования сервиса Prezi.Com
- •Технология Redis
- •Программное обеспечение интеллектуального анализа: Система statistica Data Miner
- •Программное обеспечение интеллектуального анализа: Oracle Data Mining
- •Понятие «Data mining», Data mining и базы данных.
- •Архитектура odm
- •Функциональные возможности odm.
- •Технология BigTable (Google)
- •MapReduce: модель и реализации.
- •2. Реализация в распределенной среде.
- •3. Расширенные средства.
- •«Методы Data Mining: ассоциативные правила»
- •1. Определение. Основные понятия
- •2. Типы ассоциативных правил
- •3. Алгоритм apriori
- •4. Применение
- •«Методология Data Mining: crisp-dm»
- •Понимание бизнеса (Business Understanding)
- •Понимание данных (Data Understanding)
- •Подготовка данных (Data Preparation)
- •Моделирование (Modeling)
- •Оценка (Evaluation)
- •Развертывание (Deployment)
- •Большие данные
- •История
- •Методики анализа больших данных
- •Почему данные стали большими
- •Аналитический инструментарий
- •Как справиться с большими данными?
- •Кому выгодны большие данные
- •Проблема больших данных в различных отраслях
- •Информационной экономике нужны миллионы ит-сотрудников
- •10, Спрос на администраторов Big data
- •Стадии интеллектуального анализа: задача консолидации
- •Основные этапы консолидации данных
- •Источники данных
- •Обобщенная схема процесса консолидации
- •Вероятностный вывод
- •Методы интеллектуального анализа : эволюционное программирование и генетические алгоритмы
- •Применение генетических алгоритмов
- •Примеры программного обеспечения
- •Методы интеллектуального анализа: деревья решений
- •Документно-ориентированная система управления базами данных CouchDb
- •Ftp Сервер
- •Методы интеллектуального анализа: иерархические модели кластерного анализа
- •Документно-ориентированная система управления базами данных MongoDb
- •2.Понятие о документно-ориентированной системе управления базами данных MongoDb
- •3. Возможности
- •4.История разработки
- •5. Использование MongoDb
- •6.Оценка производительности
- •7.Безопасность
- •8. Соответствие между sql и MongoDb
- •Простые запросы на выборку
- •Запросы на выборку с регулярными выражениями
- •Запросы на выборку с группировками
- •Запросы на выборку с объединением таблиц
- •Информация о запросе
- •Создание, изменение и удаление документов
- •Бизнес-анализ
- •Часть 1. Понятие «бизнес-анализ»
- •Часть 2. Разделы науки бизнес-анализа
- •Часть 3. Техники бизнес-анализа
- •Часть 4.Система бизнес-анализа и поддержки принятия решений
- •Часть 5. Методы бизнес-анализа
- •6. Роли бизнес-аналитиков
- •7. Цели бизнес-аналитиков
- •8.Выдержки из должностной инструкции бизнес-аналитика
- •9.Будущее бизнес-аналитики
- •Иску́сственные нейро́нные се́ти
- •Систе́ма подде́ржки приня́тия реше́ний
- •1. Сппр- хранилище данных
- •2. Аналитические системы
- •Субд Cassandra
Документно-ориентированная система управления базами данных CouchDb
Введение
Беспрецедентные объемы данных заставляют разработчиков и бизнес приглядываться к альтернативам реляционных баз данных, используемым вот уже более тридцати лет. В совокупности все эти технологии известны как «NoSQL базы данных».
Идея использования внешней базы данных появилась после того как столкнулся с необходимостью размещения большого количества файлов в базе УПП с привязкой к справочникам и документам. И соответственно при их размещении стандартными средствами в хранилище дополнительной информации, начал увеличиваться размер самой базы и размеры архивных копий.
Основной проблемой является то, что реляционные базы данных не могут справляться с нагрузками актуальными в наше время (мы говорим о high-load проектах). Есть три конкретные проблемных области:
горизонтальное масштабирование при больших объемах данных, например как в случае Digg (3 терабайта для зеленых значков, отображаемых, если ваш друг сделал dugg на статье) или Facebook (50 терабайт для поиска по входящим сообщениям) или eBay (2 петабайта в целом)
производительность каждого отдельного сервера
не гибкий дизайн логической структуры.
Понятие о Apache CouchDB
Apache CouchDB— документо-ориентированная система управления базами данных, не требующая описания схемы данных. Аналогично самой всемирной паутине, CouchDB проектировалась с учетом необходимости масштабирования. Она написана на Erlang – языке параллельного программирования, специально предназначенном для создания распределенных, отказоустойчивых, непрерывно работающих приложений. Этот язык, доступный бесплатно всем желающим, был разработан компанией Ericson и широко используется в телекоммуникационных системах.
Некоторые люди относятся неодобрительно к термину NoSQL так как он звучит как основанный на том что мы не хотим делать, а не на том кем мы являемся. Движение NoSQL это не движение против реляционных баз данных. NoSQL — это «Не только SQL» (Not Only SQL), а не «Нет SQL» (No SQL at all).
CouchDB можно рассматривать как сервер веб-приложений; для реализации этой идеи в CouchDB встроен производительный веб-сервер, а программный код, как и данные, сохраняется в той же базе данных. Для автоматизации работы с приложениями CouchDB используется утилита CouchApp.
Все данные в базе данных хранятся в виде записей (документов). Любая запись (документ) в базе данных может содержать произвольное количество полей и вложений (файлов). Доступ к данным осуществляется через REST интерфейс по протоколу HTTP. Все данные передаются в JSON формате.
Архитектура системы
Особый интерес представляет архитектура CouchDB, в которой воплощены в жизнь фундаментальные и чрезвычайно удачные концепции Web. Эта СУБД предоставляет API, следующие принципам REST, для создания, выборки, изменения и удаления документов, представлений и баз данных. Это существенно облегчает работу с СУБД, поскольку вам не потребуются ни драйверы, ни другие библиотеки для начала ее использования (достаточно лишь Web-браузера). Разумеется, существует ряд библиотек, облегчающих работу с CouchDB, однако они всего лишь используют сервисы REST через HTTP.
Каждый документ в базе данных может иметь собственные уникальные имена полей, хотя на практике это встречается довольно редко. Гораздо чаще можно встретить обычный набор полей для нескольких документов, с некоторыми изменениями в особых случаях.
Подобно иным документно-ориентированным СУБД (Mnesia, Lotus Notes, MongoDB), и в отличие от реляционных СУБД, CouchDB предназначена для работы с полу-структурированной информацией и имеет следующие особенности:
данные сохраняются не в строках и колонках, а в виде JSON-подобных документов, моделью которых является не таблицы, а деревья;
типизация элементов данных, то есть сопоставление отдельным полям документов типов INTEGER, DATE и пр., не поддерживается — вместо этого пользователь может написать функцию-валидатор;
целостность базы данных обеспечивается исключительно на уровне отдельных записей (но не на уровне связей между ними);
связи между таблицами или записями принципиально не поддерживаются, соответственно операция объединения (JOIN) между таблицами не определена;
для построения индексов и выполнения запросов используются функции представления (view);
функции-валидаторы, функции-представления, функции-фильтры сохраняются в текстовом виде в самой базе данных;
эти функции, как правило, написаны на языках JavaScript или Erlang, а для их выполнения запускается отдельный сервер запросов, взаимодействие с которым происходит посредством сокетов и текстового JSON-протокола;
каждой базе данных в системе CouchDB соответствует единственное B-дерево (не путать с двоичным деревом);
каждое B-дерево хранится в виде отдельного файла на диске;
одновременно может быть запущено несколько потоков для чтения базы данных и только один — для записи;
целостность базы данных обеспечивается только при записи данных на диск;
представления хранятся в БД и их индексы обновляются непрерывно, однако при каждом обновлении функций представления или отображения обновляется всё B-дерево целиком;
при обработке данных с помощью функций-представлений используется упрощённая модель технологии MapReduce, что позволяет производить параллельные вычисления, в том числе и на многоядерном процессоре;
распределение вычислений на несколько узлов не поддерживается — вместо этого используется механизм репликации;
обработка данных с помощью цепочки последовательных функций MapReduce не поддерживается;
поддерживается вертикальная масштабируемость, что означает поддержку не только огромных кластеров, но и портативных устройств (нетбуки, смартфоны и пр.);
внешний интерфейс (API) к данной СУБД построен на основе архитектуры REST, то есть сама база данных, отдельные записи, отображения и запросы — суть ресурсы, которые имеют уникальный адрес (URL) и поддерживают операции GET, PUT, POST, DELETE;
поэтому для взаимодействия с базой данных было написано много клиентских библиотек, в том числе на таких языках JavaScript[3], PHP, Ruby, Python и Erlang;
взаимодействие между отдельными компонентами СУБД, то есть с серверами представлений осуществляется опять-таки с помощью текстового протокола, а данные передаются в формате JSON; это позволило использовать различные языки программирования для написания этих компонентов — Java, Python, JavaScript и пр.
История развития
Проект CouchDB был принят в инкубатор Apache в феврале 2008 года. Несмотря на то, что CouchDB изначально предназначался для работы в операционной системе Linux, уже разработаны варианты этой системы для операционных систем Microsoft Windows и Mac OS. Более того, дистрибутив Linux Ubuntu с 9.10 (Karmic Koala) поставляется с системой CouchDB.
Использование CouchDB
CouchDB используется во многих программных продуктах и на множестве веб-сайтов , в том числе:
UbuntuOne, Firefox, TomBoy, Akonadi, Evolution — для синхронизации адресов, заметок и закладок.
Mozilla Raindrop — агрегатор сообщений электронной почты, социальных сетей, систем обмена мгновенными сообщениями (Skype, Jabber).
Ajatus — распределенная CRM-система.
Отличительная особенность данных СУБД в том, что данные сохраняются не в строках и колонках, а в виде документов в формате JSON, моделью которых является не таблица, а дерево. Типизация отдельных полей не поддерживается. Целостность БД обеспечивается исключительно на уровне отдельных документов, но не связей между ними. Главным плюсом является отсутствие требований к единству записей.
Map-Reduce
Подход к обработке данных, пришедший из функциональных языков и позволяющий параллельно обрабатывать большие объемы данных. В CouchDB данный подход используется для построения пользовательских представлений поверх распределенных документов.
Ход работы состоит из двух этапов:
Map — операция предварительной обработки данных, применение некоторой функции к каждому документу. Поскольку отсутствует side-effect, данный этап легко разделяется на независимые потоки. Результаты данного этапа сохраняются в B-дереве, что позволяет в дальнейшем быстро находить нужные документы. На вход поступает документ, на выходе получаются набор пар Ключ-Значение, которые передаются на следующий шаг.
Reduce — опциональная операция свертки данных, поступивших из предыдущего этапа. К данным применяются фильтры для отбора данных по некоторым условиям, подсчета групповых функций.
Клиент
Доступ к функциональным возможностям программы осуществляется через тонкого клиента — веб-браузер. Данные между клиентом и сервером передаются практически без изменений в формате JSON посредством AJAX запросов.
Для визуализации пользовательского интерфейса применяется библиотека JQuery и интерфейсная надстройка JQueryUI. Данные библиотеки предоставляют богатые возможности по работе со страницей в браузере, передачи данных посредством AJAX.
Для доступа на запись к основным данным можно использовать любой FTP-клиент. В гостевом режиме можно использовать любой современный браузер.