Технологии больших данных: анализ и выбор решения для реализации проекта
Выявление положительных и отрицательных аспектов технологий работы с большими данными (Big Data). Изучение предметной области реализации проекта бюджетирования. Определение бизнес-процессов, требующих автоматизации. Обоснование выбора технологии.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.11.2016 |
Размер файла | 604,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Выпускная квалификационная работа - магистерская диссертация
по направлению Бизнес-информатика
образовательная программа "Электронный бизнес"
Технологии больших данных: анализ и выбор решения для реализации проекта
Москва, 2016
Содержание
ВВЕДЕНИЕ
ГЛАВА 1. ОБЗОР ТЕХНОЛОГИЙ ОБРАБОТКИ BIG DATA
1.1 СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ОБРАБОТКИ БОЛЬШИХ ДАННЫХ
1.1.1 МОДЕЛЬ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ MAP REDUCE
1.1.2 ТЕХНОЛОГИИ HADOOP
1.1.3 ПОДХОД NOSQL
1.1.4 ЯЗЫК ПРОГРАММИРОВАНИЯ R
1.2 АППАРАТНЫЕ СРЕДСТВА
1.2.1 КОМПЛЕКС ИНСТРУМЕНТОВ ORACLE EXALYTICS
1.2.2 АППАРАТНО-ПРОГРАММНЫЙ КОМПЛЕКС SAP HANA
1.2.3 РЕШЕНИЯ КОМПАНИИ IBM
1.3 ОБОБЩЕННАЯ ХАРАКТЕРИСТИКА ТЕХНОЛОГИЙ BIG DATA
ГЛАВА 2. АНАЛИЗ СРЕДЫ ВНЕДРЕНИЯ ПРОЕКТА «БЮДЖЕТНОЕ ПЛАНИРОВАНИЕ И ОТЧЕТНОСТЬ»
2.1 ОПИСАНИЕ БИЗНЕС-ПРОЦЕССОВ БЮДЖЕТИРОВАНИЯ В ГРУППЕ КОМПАНИЙ НЕФТЕГАЗОВОГО СЕКТОРА
2.2 КРИТЕРИИ И ТРЕБОВАНИЯ К РЕАЛИЗАЦИИ ПРОЕКТА «БЮДЖЕТНОЕ ПЛАНИРОВАНИЕ И ОТЧЕТНОСТЬ»
ГЛАВА 3. ПРИМЕНЕНИЕ ТЕХНОЛОГИЙ BIG
3.1 ОБОСНОВАНИЕ ВЫБОРА СРЕДСТВ РАЗРАБОТКИ ПРОЕКТА
3.2 СРОКИ РЕАЛИЗАЦИИ ПРОЕКТА АППАРАТНЫМИ СРЕДСТВАМИ SAP HANA
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Введение
В конце 2000х годов были уже сформированы решения класса Business Intelligence, которые являются альтернативой традиционным методам управления базами данных. В связи с существенным многообразием информации и ее непрерывным приростом появился такой термин, как «Big Data» или же «Большие данные», вводимый изначально в академической сфере.
В информационной среде «Big Data» представляется собой комплекс подходов, инструментов и методов обработки структурированных и неструктурированных больших объемов данных, распределение операций по многочисленным узлам вычислительных сетей. В качестве трех основных характеристик выступают: объем обрабатываемых данных (физический), скорость прироста и обработки, а так же вариативность - возможность одновременной обработки различных типов данных.
Феномен Big Data является одним из наиболее обсуждаемых тем в изданиях и публикациях сферы IT в последнее время. Проблема хранения и обработки большого объема данных существует уже много лет, но с каждым годом она становится критичной не только для ряда крупнейших корпораций, информационные системы которых генерируют сотни тысяч строк данных в сутки, но и для гораздо более широкого круга компаний. Высокий уровень роста бизнеса, появление множества стартапов, как следствие - высокая конкуренция в IT-среде, сформировали предпосылки для появления этого феномена и показали значительное отличие от стандартной ситуации недостатка ресурсов. Дополнительно, возросло число источников генерации данных весьма большого объема, а именно социальные сети разных видов, электронные энциклопедии, данные электронной почты. Наряду с этим, большие объемы данных могут генерироваться электронными устройствами различных типов - аппаратура сотовых операторов, телеметрические датчики, информация, полученная с камер видеонаблюдения и т.п. При этом, значительное уменьшение стоимости хранения данных уже привело к тому, что многие компании могут позволить себе хранить накопленные данные, поскольку высока их ценность именно в накопляемом объеме.
Однако проблема количества данных не является единственной, поскольку изменился характер информации. Большую часть объема представляет неструктурированная разнородная информация, что в свою очередь приводит к малоэффективности хранения и обработки в системах на основе реляционных баз данных. Как следствие, реляционные СУБД не являются оптимальным решением для ситуаций подобного рода, что способствовало появлению целого ряда решений.
Если анализировать потребителей технологий больших данных, то в первую очередь это компании, накапливающие большое количество данных о клиентах, на основании анализа которых можно принимать решения, влияющие на эффективность бизнеса. Логично, что инициатором использования технологий больших данных в компании будет бизнес, так как необходимы те знания, которые можно извлечь с помощью новых инструментов и именно тогда проект внедрения инструментария анализа может быть эффективен. Технологии «Big Data» являются всего лишь инструментом для достижения подобных целей.
Если учитывать особенности технологий больших данных, в ближайшей перспективе они будут востребованы и наукой, и бизнесом. Однако анализ предпочтений потенциальных клиентов по данным аналитиков CNews Analytics и Oracle и попытка предугадать их поведение, предлагая наиболее подходящую услугу именно тогда, когда ее готовы купить - одни из задач, которую в современном бизнесе сейчас уже решают, управляя большими данными [1]. Существует множество отраслей, где накапливаются большие данные, и именно в них возникают потребности для анализа, более всего они востребованы среди крупных компаний на рынках B2C с активной конкуренцией, в то время как на рынках B2B их можно встретить очень редко.
Технологии обработки Больших Данных уже получили обширное распространение во многих отраслях бизнеса. Примеры таких областей - здравоохранение, телекоммуникации, торговля и логистика, также в государственном управлении. Касательно розничной торговли, в базах данных розничных магазинов может происходить накопление большого количества информации о клиентах, системе управления складами, поставками товаров. Данная информация может быть полезна во всех сферах деятельности любых магазинов. С помощью накопленной информации облегчается управление поставками товара, всей логистической цепочкой. На основании имеющейся информации можно прогнозировать спрос потребителей на товары. Также система обработки и анализа данных может решить и другие проблемы, например, оптимизировать затраты на логистику или реализовать систему отчетности.
Для обоснования требований и выбора средств реализации проекта с применением технологий Big Data необходим тщательный анализ предметной области и бизнес-процессов предприятия, на базе которого проект будет внедрен. Во многих организациях уже внедрены проекты и применяются методики бюджетирования, однако для максимальной эффективности необходимо использовать их с передовыми инструментами управления и обработки [1]. Каждая компания является уникальной, поэтому процесс разработки и утверждения методологии бюджетирования, выбор инструментов реализации, внедрение и эксплуатация проекта - сложный процесс. Особенное значение имеет масштабность проекта и тип организации. Реализация проекта по бюджетированию в нефтегазовой отрасли на примере группы компаний, которая включает в себя более 80-ти дочерних обществ, требует значительных ресурсов по реализации: и технических (обоснованный выбор средств реализации), и человеческих (команда разработчиков).
Новые технологии работы с большими данными открывают огромные возможности во многих сферах жизни общества: логистика, телеком, ритейл, финансы, энергетика, ЖКХ, нефтегазовый и аэрокосмический секторы. Для крупных организаций (государственных, коммерческих, некоммерческих) все чаще появляется потребность в применении больших данных для быстрого и эффективного решения различных задач. Те организации, которые и первыми начинают применять сервисы, использующие технологии анализа больших данных, получают весомые конкурентные преимущества на своих рынках.
Цель данной выпускной квалификационной работы заключается в обосновании и осуществлении выбора технологии обработки Больших Данных для реализации реального проекта по внедрению системы управления бюджетированием. Объектом исследования являются технологии и инструменты работы с Большими данными: Hadoop, MapReduce, NoSQL, язык программирования R, аппаратные решения SAP HANA, Oracle Exalytics, IBM Watson Foundation. В качестве предметной области выступает российский крупный нефтегазовый холдинг - предметная область - на базе которого планируется внедрение нового проекта (системы бюджетирования на основе обработки Больших Данных).
Актуальность данного исследования заключается в отсутствии единообразного подхода к формированию критериев и выбору средств обработки Больших данных для внедрения корпоративных систем на соответствующих платформах. С управленческой точки зрения, анализ современных технологий, изучение предметной области и формирование критериев выбора должны предоставить полезную и ценную информацию для руководителей компаний и архитекторов проектов, которые смогут получить не только обобщенный анализ, но и прецедентный пример корректного выбора средств реализации проекта бюджетирования на платформе Big Data.
В рамках данной работы будут рассмотрены следующие ключевые задачи:
проведение подробного анализа, выявление положительных и отрицательных аспектов наиболее популярных технологий работы с Большими данными;
детальное изучение предметной области реализации проекта бюджетирования, определение бизнес-процессов, требующих автоматизации;
формирование и определение критериев выбора наиболее подходящей технологии для реализации текущего проекта;
осуществления выбора технологии Больших данных на основе требований к разрабатываемому проекту бюджетирования.
Опираясь на теоретическое исследование основных методов и аппаратных решений анализа больших данных, будут выявлены плюсы и минусы каждой из технологий Big Data, проведена оценка возможного применения для текущего проекта управления бюджетом. Далее будет проведено подробное изучение предметной области - корпоративные системы управления бюджетированием - на примере группы компаний, занимающейся транспортировкой нефти и нефтепродуктов. А также выявлены бизнес-процессы, которые требуется автоматизировать, сформированы и определены критерии и требования к средствам реализации данного проекта.
Глава 1. Обзор технологий обработки Big Data
1.1 Современные технологии обработки Больших данных
большой проект бюджетирование автоматизация
С приходом новых технологий, инструментов и средств коммуникаций, таких, как социальные сети, количество данных, производимых людьми, растет с каждым годом в геометрической прогрессии. Соотношение коэффициента полезности при этом уменьшается. Следовательно, вся генерируемая информация может быть использована для определенных целей только после предварительной и тщательной обработки.
Термин «Big Data» означает большие работы (коллекции, потоки) данных, которые не могут быть обработаны традиционными компьютерными техниками [2]. Этот термин означает не само понятие «большие данные», а предмет исследования, который включает в себя различные инструменты, техники и платформы.
Большие данные включают в себя информацию, генерируемую различными системами и приложениями. Некоторые из сфер, которые попадают под определение «Big Data»:
черный ящик: информационная составляющая часть вертолета, самолета, морского/космического корабля. Данные подобного рода включают в себя запись голосов экипажа (микрофоны и наушники), информацию о характеристиках объекта управления.
социальные медиа: включают данные, распространяемые через социальные сети.
фондовые биржи: хранение информации о сделках купли-продажи между копаниями-партнерами.
энергосистемы: подобного рода данные содержат информацию о узлах и нагрузках энергетической сети.
транспортные системы: модели, характеристики, расстояния - все информация о транспорте и дорожных сетях.
поисковые системы: инженерный поиск информации различны базах данных.
Как следствие, термин «Big Data» включает большое объем, высокую скорость обработки и широкое разнообразие данных и делится на три типа:
структурные данные - реляционные БД
полу-структурированные данные - XML-файлы
неструктурированные данные - файлы формата Word, PDF, Text, медиа-журналы.
Большие данные действительно имеют решающее значение для нашей жизни и становятся одной из самых важных технологий в современном мире. Самыми распространенными и известными являются лишь несколько преимуществ. Например, использование информации, хранящейся в социальных сетях, маркетинговые агентства изучают обратную связь на свои кампании, акции, и другие рекламные носители. В свою очередь, использую информацию в социальных медиа-системах, таких как предпочтения и восприятие продукта потребителями, компании и розничные организации планируют свое производство. Касательно такой сферы, как медицина, применимость данных о предыдущей истории болезни пациентов способствует обеспечению лучшего и более быстрого обслуживания.
Большие технологии передачи данных играют важную роль в обеспечении детального анализа, который способствует принятию более точных решений, что в свою очередь приводит к повышению эффективности эксплуатации, снижению затрат и снижению рисков для бизнеса [3]. Для использования возможностей больших данных требуется инфраструктура, которая может управлять и обрабатывать огромные объемы структурированных и неструктурированных данных в реальном времени и может защитить конфиденциальность и безопасность данных. Существуют различные технологии на рынке от различных поставщиков, включая такие компании, как Google, IBM, Microsoft, SAP и др. Рассмотрим следующие два класса техники, которые обрабатывают большие данные: технологии обработки Big Data и программно-аппаратные средства работы с большими данными.
1.1.1 Модель распределенных вычислений MapReduce
Программная модель данных, получившая название «MapReduce», была создана несколько лет назад в компании Google, и там же была осуществлена первая реализация этой технологии на основе распределенной файловой системы Google File System. Этот проект активно используется в программных продуктах самой компании Google, но является частным и недоступен для использования вне продуктов Google.
Существует так же иная реализация в свободном доступе - Hadoop MapReduce (с открытыми исходными текстами), которая была выполнена в проекте Apache Hadoop. технология основана на использовании распределенной файловой системы HDFS (Hadoop Distributed File System)[4]. Наибольшую популярность MapReduce получила благодаря реализации проекта Hadoop, несомненную значимость имел факт доступности и открытости программного кода. Широкое использование технологии Hadoop MapReduce в различных проектах (большей частью в исследовательских) приносит большую пользу, стимулируя разработчиков к постоянному совершенствованию технологии.
В модели MapReduce все операции вычисления производятся над множествами пар (входных данных), именуемых "ключ-значение". В результате каждого вычисления также производится определенное множество выходных пар "ключ-значение". Для представления вычислений в среде MapReduce используются две ключевые функции: «Map» и «Reduce». Обе функции в явном виде кодируются разработчиками приложений в среде программирования MapReduce.
Реализации проектов на MapReduce ориентированы на использование среде распределённых кластеров со следующими характеристиками:
узлы среды выполнения приложений обычно представляют собой компьютеры общего назначения с операционной системой Linux;
кластер состоит из сотен или тысяч машин (вероятны отказы отдельных узлов);
для хранения данных используются недорогие дисковые устройства, подключенные напрямую к отдельным машинам;
используется распределенная файловая система для управления данными, хранящихся на этих дисках;
пользователи представляют свои задания в систему планирования; каждое задание состоит из некоторого набора задач, которые отображаются планировщиком на некоторый набор узлов кластера.
Технология MapReduce предназначена для обработки больших объемов данных с использованием машин, количество которых может достигать тысяч, поэтому обязательно должна присутствовать устойчивость к отказам отдельных машин. Существует приложение-распорядитель, который периодически посылает каждому узлу (исполнителю) контрольные сообщения. Если определенный узел не отвечает на сообщение в течение установленного времени, система считает его вышедшим из строя. В этом случае все задачи уровня «Map», уже выполненные и еще выполнявшиеся этим узлом-исполнителем, переводятся в свое исходное состояние, после чего можно заново планировать их выполнение другими узлами.
Преимущества клиент-серверных организаций баз данных очевидны: в архитектуре серверы поддерживают большую базу данных, которая сохраняется в одном экземпляре и доступна десяткам и сотням приложений, выполняемых на стороне клиентов или в промежуточных серверах. Однако при использовании SQL-ориентированной организации баз данных осуществляется следующая схема работы: от клиентов на сервер БД отправляются высокоуровневые декларативные запросы, в обратную сторону, от сервера к клиенту, пересылаются результирующие данные произвольно большого объема.
Во всех традиционных серверных организациях реляционных баз данных существует возможность переноса вычислений на сторону, реализация которой не является сложной разработкой. При этом в параллельных БД (например, категория баз sharing-nothing) ситуация иная: SQL-запросы выполняются оптимизатором запросов параллельно и автоматически. Но оптимизатор не имеет возможности выполнить параллельно определенную пользователем процедуру или функцию, реализованную не на языке SQL, а на одном из традиционных языков программирования (как правило, с включением вызовов операторов SQL). Технически выполнение распараллеливания такие процедуры и функции можно не выполнять, а производить вычисления в одном узле кластера. Но тогда необходимо сохранять в текущем узле все данные, требуемые для выполнения процедуры или функции, для чего потребуется массовая пересылка данных по сети, что делает незначительными все преимущества параллельных реляционных баз данных, производительность которых основывается именно на параллельных вычислениях.
Из вышеописанных трудностей следует сделать вывод: требуется поддержка механизма распараллеливания пользовательских процедур и функций в аналитических системам баз данных, поскольку аналитикам необходимо выполнять анализ данных на клиентских рабочих станциях, постоянно получая данные из центрального хранилища большого объема [4]. Как показывает опыт многих производственных разработок, может быть применена модель MapReduce для обеспечения возможностей серверного программирования в массивно-параллельной среде систем баз данных.
Для сравнения эффективности технологий MapReduce и массивно-параллельных реляционных баз данных при решении аналитических задач необходимо отметить, что развитие и зрелость технологии параллельных баз данных категории без совместно используемых ресурсов (sharing-nothing) позволяет им обходиться кластерами (100 узлов) для поддержки самых больших на сегодняшний день аналитических баз. Размерность в петабайтах - 1015 байт - 1024 терабайт. Вместе с тем, особые качества технологии MapReduce - масштабируемость и отказоустойчивость - проявляются при применении кластеров с тысячами узлов. В связи с ростом объема данных, требующих анализа, возрастает число приложений, для поддержки которых необходимы кластеры с числом узлов, превышающим 100. Имеющиеся в настоящее время параллельные СУБД не масштабируются до сотен узлов должным образом. Это следствие следующих причин:
массивно-параллельные СУБД проектировались в расчете на редкость отказы, поэтому при увеличении числа узлов кластера возрастает вероятность отказов отдельных узлов;
при значительном масштабировании полной однородности среды (все узлы кластера обладают одинаковой производительностью), добиться почти невозможно, а современные параллельные СУБД требуют однородной аппаратной среды
существуют системы аналитических баз данных, которым требуются кластеры с более чем несколькими десятками узлов для достижения требуемой производительности;
существующие параллельные базы данных не тестировались в более масштабных средах, и при их дальнейшей миграции могут встретиться непредвиденные технические проблемы.
Технология MapReduce может обеспечить требуемые характеристики масштабируемости и отказоустойчивости, поскольку разрабатывалась с расчетом на масштабирование до тысяч узлов, дополнительно, реализация от Google эффективно используется для поддержки внутренних операций компании. Несмотря на то, что изначально технология MapReduce ориентировалась на обработку неструктурированных данных (текстовых), существуют показательные примеры ее использования для обработки огромных объемов структурированной информации.
1.1.2 Технологии Hadoop
Продукт Apache Hadoop является свободной Java-платформой на обычном оборудовании. Проект был рожден посредством обработки материалов Google File System и поддерживает выполнение распределённых приложений, работающих на больших кластерах. Данная технология предоставляет приложениям надёжность и быстродействие операций с данными. В продукте реализована вычислительная парадигма, известная как MapReduce. Согласно ей приложение разделяется на большое количество небольших заданий, каждое из которых может быть выполнено на любом из узлов. В дополнение, используется распределённая файловая система, использующая для хранения данных вычислительные узлы кластера, это позволяет достичь очень высокой агрегированной пропускной способности кластера. Подобные системы позволяют приложениям легко масштабироваться (использование более 1000 узлов и обработка петабайт данных - 1015).
Проект Hadoop был назван в честь игрушечного слоненка ребёнка основателя проекта, Дуга каттинга. Изначально проект разрабатывался как система для поддержки распределённых вычислений для проекта Nutch. Hadoop содержит платформу для распределённых вычислений, которая изначально была частью проекта. Она включает в себя Hadoop Distributed File System и реализацию принципа «Map/Reduce». Примерно с августа 2011 года система Apache Hadoop уже широко применялась для распределенной обработки данных, однако она не заменяет устоявшиеся технологии, а применяется наряду с ними.
Достоинство систем, построенных на технологии Hadoop, заключается в способности разбивать очень большие наборы данных на малые блоки, распределяемые по кластеру на основе стандартного оборудования для ускоренной обработки. Такие компании, как Facebook, Amazon, eBay и Yahoo, одними их первых начали пользоваться данной технологией, была применена технология для анализа петабайтов неструктурированных данных, с которыми реляционные системы управления базами данных справляются с трудом. В большинстве реализаций система анализирует огромные объемы сгенерированной компьютерами информации: протоколы операций в системе, поисковые результата, контент социальных сетей [5]. При этом в 66% организаций Hadoop выполняет ранее недоступные функции анализа. Гораздо реже Hadoop используется для анализа традиционных структурированных данных -- транзакций, сведений о клиентах, данных о звонках. Для этих случаев обычно по-прежнему применяются реляционные базы данных.
Hadoop -- это свободная платформа для создания системы распределённых вычислений, разрабатываемый сообществом Apache Software Foundation на основе технологий MapReduce и Google File System Storage. Технология Hadoop используется в таких крупных веб-проектах, как Facebook, Twitter, Rackspace и eBay, а также в коммерческих программных продуктах IBM, EMC, Dell и Oracle. Крупнейший вклад в развитие проекта вносит поисковая система Yahoo -- в частности, её дополнительная версия Hortonworks, с которым корпорация Microsoft и заключила соглашение в 2011 году об интеграции платформы в свои продукты.
Корпорация Microsoft не впервые обратила внимание на Hadoop: так, платформа некоторое время использовалась для реализации семантического поиска в Bing, пока не была заменена закрытым аналогом. Более масштабных попыток интеграции компания более не предпринимала, вместо этого концентрируясь на разработке проекта Dryad, закрытого аналога Hadoop на основе собственной технологии Cosmos. В отличие от Hadoop, разрабатываемого на языке программирования Java, этот продукт Microsoft базируется на среды .NET, и его разработка продолжится параллельно с внедрением открытой платформы.
К основным техническим характеристикам платформы Hadoop относят:
масштабируемость: платформа масштабируется линейно и позволяет хранить и обрабатывать петабайты данных;
устойчивость к сбоям: все хранящиеся данные избыточны, все прерванные задания по обработке данных перезапускаются;
кроссплатформенность: библиотеки Hadoop написаны преимущественно на языке Java, и могут выполняться в любой операционной системе, поддерживающей виртуальную машину Java;
автоматическое распараллеливание выполнения задачи: технология Hadoop создает «прозрачные» абстракции для разработчиков, освобождая от работы по планированию, контролю и агрегации результатов параллельной обработки данных [6].
Бизнес-преимущества от использования Hadoop определяются:
гибкость: хранение и анализ структурированных и неструктурированных типов данных;
эффективность: в большинстве случаев более низкая стоимость хранения и обработки терабайта данных по сравнению существующими решениями;
низкая стоимость создания кластера: для создания Hadoop-кластера не требуется дорогое серверное аппаратное обеспечение.
сравнительная легкость адаптации: Hadoop имеет широкую и активно развивающуюся экосистему;
минимальные риски, связанные с некорректной работой ядра платформы: на сегодняшний день платформа Hadoop успешно используется для обработки петабайт информации;
«Open Source» лицензирование: низкая стоимость внедрения и владения платформой Hadoop;
значительное по количеству сообщество разработчиков.
1 декабря 2014 года аналитики компании Forrester Research озвучили прогноз, согласно которому платформа Hadoop от Apache станет стандартом де-факто для ИТ-инфраструктуры всех крупных компаний в 2015 году. Предполагается, что вырастет число специалистов, а также скорость внедрения систем на платформе Hadoop.
На рынке технологий наблюдается явная тенденция к обязательной интеграции Hadoop, которая должна обеспечивать способность линейного масштабирования как хранения, так и обработки данных. Эта закономерность тесно связана с возможностью дальнейшего активного применения облачных решений на крупных предприятиях.
Одними из ключевых факторов для снижения расхода средств станут: «облачная эластичность», возможность синхронизации вычислительных и сетевых мощностей с хранимыми данными. Эксперты считают, ожидается, что платформа Hadoop будет все более активно применяться в облачных решениях на фоне растущего спроса на специализированную аналитику.
Весьма вероятным видится появление новых проектов Hadoop из аналогов от HP, Oracle, SAP, Software AG и Tibco. Microsoft, и другие поставщики операционных систем. Важный фактор влияния - наличие квалифицированных кадров, способных работать с платформой Hadoop. Благодаря их участию станет возможной быстрая и более эффективная реализация проектов Hadoop.
1.1.3 Подход NoSQL
Понятие NoSQL означает «Не только SQL» или «Не SQL». Термин получил известность, начиная с 2009 год, когда развитие интернет-технологий и социальных сервисов дало старт множеству новых подходов к обработке и хранению данных. Разработчики подобного рода приложений столкнулись с задачами и проблемами, для которых традиционные реляционные базы данных оказались либо слишком дорогими, либо недостаточно производительными. Кроме того, популяризаторами отказа от универсальных реляционных баз данных (РСУБД) в пользу специализированных решений стали стартаперы, а также те, кому приходится работать в сценариях, называемых «Большие данные». Стоит отметить, NoSQL-решения не обязательно подразумевают замену или полный отказ от реляционных баз данных. Важное значение имеет факт того, что инструмент должен выбираться под задачу, а не наоборот.
Касательно достоинств, необходимо выделить следующие факторы:
масштабируемость; для существующих традиционных СУБД задача горизонтального масштабирования обычно является трудоемкой, дорогостоящей, а эффективность имеет место только до определенного уровня. Многие NoSQL-решения проектировались по причине необходимости масштабироваться горизонтально и выполнять вычисления это «на лету» [7]. Следовательно, эта процедура осуществляется проще и прозрачнее в NoSQL, чем в традиционных базах данных.
производительность; эффективность вычислений - немаловажный параметр, причем учитывается выполнение операций на одном узле, а не в кластере. Для многих задач свойства традиционных СУБД (наличие реляционной модели и транзакций, надежность в пределах одного узла, изолированность изменений) не всегда нужны в полном объеме, потому отказ от этих свойств, даже частичный, позволяет NoSQL добиваться большей производительности на одном узле.
возможность репликации. При вероятности отказа сервером или отсутствие доступа к сети требует такого фактора, как надежность. Основной способ обеспечения стабильной работы - репликация. Факт выполнения репликации не является уникальной особенностью систем NoSQL, но при масштабировании важную роль играют легкость внесения изменений в существующую инсталляцию, а так же их эффективность. Переход базы данных к работе в режиме репликации - доступная возможность большинства NoSQL-решений.
простота разработки и администрирования. В связи с масштабированием и репликацией, возникает ряд задач, представляющих значительную сложность, а так же требующих обширной экспертизы на традиционных базах данных, у систем NoSQL занимает несколько минут. Задачи установки и настройки, плюс использование NoSQL-решений осуществляется проще и наименее трудоемко, чем в случае с реляционными БД. Поэтому NoSQL-системы стали естественным выбором для многих стартапов, где скорость разработки и внедрения является важным параметром.
Реляционная модель не всегда является наилучшим способом представления данных для различного типа задач. При разработке приложений уже на протяжении последних нескольких лет стало нормой использование особенных промежуточных объектов, отображающих реляционную модель на модель, представляющую данные приложения. Это факт увеличивает расходы на проект и усложняет систему в целом. Технология NoSQL предлагает широкий выбор моделей данных и их реализаций, необходимо только выбрать оптимальную для конкретной задачи модель: данные, представленные в виде «документов», данные, состояние из наборов полей, записей «ключ-значение», графов и т.д.
Перейдем к основным признакам современных NoSQL-решений. Резюмируя описанную в пунктах выше технологию Map/Reduce, можно сделать вывод, чтоэто подход к обработке больших объемов данных, состоящий из двух фаз: «Map» - предварительная обработка входных данных и «Reduce» - обработка выборки, полученной на стадии «Map». Технология Map/Reduce не является характерной чертой NoSQL-решений. В ином случае, можно работать с большими объемами данных и в реляционных БД. Однако, большинство NoSQL-систем (за исключением простых key-value хранилищ) реализуют принцип Map/Reduce в том или ином виде. Преимущества такого подхода несомненны при соблюдении двух условий: фаза «Map» реализована таким образом, что её можно запускать параллельно на нескольких узлах вычислительной сети, второе - фаза «Reduce» позволяет принимать на вход не только результат выполнения первой фазы, но и применения предыдущего выполнений «Reduce».
Горизонтальное партиционирование или же шардинг (Sharding), как и применение основ Map/Reduce, не является особенным свойством NoSQL, но большинство решений включает простую функцию партиционирования, и автоматического в том числе. Еще одна характерная черта систем NoSQL - репликация, которая является одним из основных способов обеспечения фактора надежности в NoSQL-решениях. Алгоритмы репликации могут быть простыми, например копирование всех данных на отдельном узле; и сложными - выполнение частичных копий на некоторых узлах системы с перекрытием, задаваемым в процентах. Так же, как и партиционирование, настройка репликации в большинстве NoSQL-решений - наиболее легкая задача, чем в традиционных реляционных БД.
Принятие решения о выборе NoSQL-решения начинается с подбора модели данных. Некоторые решения поддерживают несколько различных моделей, но обычно выделяют их семейства.
Документо-ориентированные СУБД хранят данные в виде коллекций (комплектов) документов, состоящих из набора полей. Этот набор может различаться в документах одной коллекции благодаря отсутствия упорядоченности таких баз данных. В некоторых случаях допускаются вложенные документы и сложные типы значений для полей (массивы, ссылки и т.п.). Идеальный вариант такого применения - это хранение относительно независимых документов, которые не нуждаются в поддержке ссылочной целостности между ними или их коллекциями (каталоги товаров или изделий, а также форумы, социальные сервисы). Дополнительно, для работы с данными нестрогой структуры они хорошо подходят. Подобного рода данные часто встречаются при решении задач протоколирования и сбора статистики: существует множество типов событий, относящихся к одной и той же категории, но с различными атрибутивными значениями. В традиционных БД хранение такого рода данных осуществляют двумя способами: происходит запись основных параметров событий в одну таблицу, а дополнительные поля записываются в множество связанных таблиц, либо организуется «серийность» дополнительных полей в строки, появляются бинарные данные и т.п. Такой подход достаточно усложняет логику приложения и затрудняет дальнейшую работу с хранимыми данными. Документо-ориентированные базы данных мало подходят для задач, где требуются сложные запросы: зачастую они не могут реализовать вложенные выборки или выборки по нескольким индексам. В базах данных подобного типа обычно отсутствуют связи между документами, если они имеются, то могут перестать быть валидными, при этом необходимо постоянное отслеживание целостности связей. Nosql-системы являются достаточно противоречивыми решениями, поскольку существуют инструменты, подходящие или не подходящие под решение определенной задачи.
Самыми известными представителями этого семейства являются продукты MongoDB и CouchDB. Обе технологии поддерживают репликацию и шардинг, однако, системы MongoDB используют шардинг с автоматической миграцией данных из кластера. Дополнительно, оба решения реализуют принцип MapReduce. Системы CouchDB использует эту технологию в качестве замены сложным запросам по требованию (ad-hoc): база данных создает «отображения» данные, которых вычисляются операциями MapReduce и автоматически обновляются при изменении. Системы MongoDB также поддерживают сложные запросы. Для этого в решении реализован собственный язык запросов, отличный от SQL. Основное отличие между MongoDB и CouchDB - это разный подход к конкурентным изменениям данных. MongoDB не реализует логику транзакций и осуществляет лишь простые атомарные операции над объектами. По принципу CouchDB реализуется управление конкурентным доступом с помощью мультиверсионности (Multi-Version Concurrency Control). Таким образом, в системах CouchDB изменение документов одним пользователем недоступно другим до момента операции commit - записи в базу данных.
Еще один пример - хранилища данных по принципу «ключ-значение» (key-value). Такие базы данных хранят данные в виде пар ключ-значение. В частных случаях значениями могут быть массивы, списки, множества (наборы уникальных значений). Обычно они реализуют минимальный набор операций: установка, прочитать/записать/удалить значение. Классическое применение этих решений - кэширование данных для повышения общей производительности приложения (как пример сохранение к кеш результатов запросов к другим системам), а так же счетчики. Иногда их можно применить в качестве промежуточного звена для систем протоколирования или сбора различной статистики. Также некоторые хранилища не позволяют держать на одном узле кластера больший объем данных, чем размер оперативной памяти.
Колоночные базы данных. Колоночные СУБД хранят данные в виде последовательности столбцов, а не строк, в отличие от традиционных баз данных. Благодаря этому достигаются преимущества в хранении и обработке больших объемов информации. В типичный ряд задач, которые решают с помощью колоночных баз данных, попадают те, для которых скорость многопоточной записи важнее скорости чтения (хранение/архивирование данных, сбор статистики) [9]. Подобные базы данных лучше подходят для агрегации больших объемов, чем для обработки сложных запросов онлайн. Самый известный представитель такой системы - Apache Cassandra. База данных Apache Cassandra представляет собой гибрид хранилища «ключ-значение» и колоночных БД, а также обладает линейной масштабируемостью. Добавление новых узлов в систему происходит без простоев или прерываний работы программ. Для обеспечения надежности в базы данных Apache Cassandra используется автоматическая репликация, при этом вышедшие из строя узлы восстанавливаются без простоя.
Граф-ориентированные базы данных. Такие БД эффективно хранят данные, представленные в виде графов. Подобного рода базы данных идеально подходят для хранения отношений между множеством сущностей и анализа их взаимосвязей. В качестве примера могут служить социальные графы, зависимости между объектами систем. По причине узкого круга решаемых задач, граф-ориентированные базы данных не получили широкого распространения. Однако самым известным решением является СУБД Neo4j, реализованное на языке Java, что позволяет работать как отдельное приложение или во встроенном режиме. База данных Neo4j реализует полный спектр операций графовых данных: создание, изменение, поиск по графу и т.п. Решение также поддерживает шардинг и репликацию данных.
Популярность NoSQL-решений растет, что связано в первую очередь с новыми задачами по обработке Big Data с новыми требованиями по доступности и масштабируемости. Несмотря на то, что многие NoSQL-системы могут преставать перед заказчиками систем как панацея, на самом деле это такие же противоречивые решения, как и традиционные реляционные базы данных.
1.1.4 Язык программирования R
Язык программирования R является универсальным и разработан для применения в следующих областях: разведочный анализ данных, классические статистические тесты, а также высокоуровневая графика. Благодаря библиотеке пакетов, достаточно обширной и непрерывно расширяющейся, язык R занимает ведущие позиции в области статистики, анализе и добыче данных. Язык R является полезным инструментом в развивающейся области больших данных, и уже был интегрирован в ряд коммерческих (IBM SPSS, InfoSphere, Mathematica).
Данный язык программирования в большей степени ориентирован на статистику. Возможности языка R можно рассматривать в качестве конкурента для ряда известных аналитических систем, например, SAS Analytics, а так же с более простыми пакетами - StatSoft STATISTICA или Minitab. Многие специалисты по статистике и методисты в правительственных организациях, а также в коммерческих компаниях и в фармацевтической отрасли решают прикладные задачи с помощью таких продуктов, как IBM SPSS или SAS. В большинстве случаев использовании языка программирования R -- это вопрос корпоративной политики и профессиональных предпочтений команды разработки применительно к инструментам реализации.
Язык R является мощным скриптовым языком и поддерживает регулярные выражения для обработки текста [10]. Для обработки разнородных и неупорядоченных данных требуются возможности языка программирования; продукты SAS и SPSS имеют свои скриптовые языки для задач, в качестве решения для которых недостаточно ниспадающего меню, однако R был создан именно как язык программирования и поэтому является более подходящим инструментом для этой цели.
Многие новые разработки в области статистики сначала появляются как пакеты для платформы программирования R ("R-пакеты") и только потом переходят на коммерческие платформы. Касательно интеграции со средствами публикации документов, продукты языка R органично интегрируется с системами публикации отчетов и документов, что позволяет встраивать статистические результаты и графику из среды R в документы, предназначенные для публикаций. Необходимо отметить, эта возможность не применяется во всех проектах.
Одна из важных особенностей - бесплатность и свободное распространение. Даже для крупных предприятий это фактор имеет значение, например, в случае привлечения необходимого специалиста в качестве фрилансера, предоставление рабочей станции с последней версией программного обеспечения происходит гораздо быстрее.
Язык R поддерживает разведочный подход к анализу данных, который уже стал нормой в учебном процессе и применяется в статистике, как следствие - язык сохраняет свою популярность. Еще один аспект актуальности - объектная ориентация, так как для анализа новых источников данных требуется новая структуризация. В настоящее время платформа InfoSphere Streams поддерживает анализ на языке R для данных.
InfoSphere Streams представляет собой вычислительную платформу и интегрированную среду разработки для анализа данных, которые с высокой скоростью поступают из нескольких тысяч источников. Содержимое этих потоков данных, как правило, является неструктурированным или структурированным частично. Цель анализа состоит в выявлении изменяющихся закономерностей в данных и в принятии решений непосредственно на основе быстро меняющихся событий. Язык программирования для платформы InfoSphere Streams (сокращенно SPL) организует данные посредством парадигмы, которая отражает динамичную природу данных, а также необходимость быстрого анализа и реагирования.
Специалисты по статистики практически отказались от электронных таблиц и обычных плоских файлов классического статистического анализа, однако язык R способен адаптироваться к таким изменениям. Версия SPL 3.1 способна передавать данные в R и таким образом задействовать обширную библиотеку R-пакетов. InfoSphere Streams поддерживает аналитику на языке программирования R посредством создания соответствующих объектов для получения информации, содержащейся в кортежах данных SPL. Это позволяет передавать данные InfoSphere Streams в среду языка R для последующего анализа, а полученные результаты возвращать обратно в систему.
Следует отметить, что некоторые задачи невозможно решить с помощью функциональности языка R или решение будет не самым оптимальным из доступных. Кроме того, данный язык программирования не в одинаковой степени подходит к каждому отдельному случаю.
Платформа R не является хранилищем данных. Самый легкий способ ввода данных состоит в том, чтобы ввести требуемую информацию в каком-либо другом приложении, а затем импортировать их в среду R. В свое время разработчики среды совершали попытки добавить к среде R интерфейсную часть в виде электронной таблицы, однако эта функциональность не завоевала популярности. Отсутствие возможности использования электронной таблицы не только затрудняет ввод данных, но и осложняет визуальное рассмотрение данных в R (в отличие от статистического пакета обработки данных SPSS или Excel).
Реализация осложняет решение обычных задач. К примеру, при проведении медицинских исследований первый этап обработки данных состоит в вычислении сводной статистики по всем переменным и в составлении перечня отсутствующих ответов и пропущенных данных [11]. В пакете SPSS этот процесс реализуется достаточно просто, однако R не имеет встроенной функции для вычисления подобного рода очевидной информации и ее последующего отображения в табличной форме.
Процесс обучения не является простым. Доступность использования статистических платформ позволяет получать результат за несколько минут, поэтому большинство аналитиков предпочтут их изучению возможностям программной реализации языка R.
Язык имеет открытый исходный код. Сообщество разработчиков на данный момент является многочисленным, зрелым и развивающимся. Язык R входит в число наиболее успешных проектов с открытым исходным кодом, реализация имеет возраст более 20 лет. Концепция является проверенной и испытанной на статистических проектах. Однако, как и для любого другого продукта с открытым исходным кодом, надежность зависит от прозрачности листинга программ. Один из значительных плюсов - иные люди могут проверять код и сообщать о найденных ошибках. В случае корпоративного проекта, где необходимо полноценное тестирование и проверка программного продукта, если пакет R используется редко, то получаемые в результате значения могут быть некорректными.
1.2 Аппаратные средства
1.2.1 Комплекс инструментов Oracle Exalytics
Комплексное решение Oracle Exalytics создано для обеспечения высокой производительности аналитических систем и приложений для управления эффективностью предприятия. В то же время компания Oracle объявила о выходе новой версии Oracle Business Intelligence Foundation Suite, предлагающей более восьмидесяти расширений и усовершенствований [12]. Появились новые возможности визуализации, контекстная интерактивность, повышение масштабируемости и производительности, оптимизация для Oracle Exalytics, а также упрощение в использовании и управлении для конечных пользователей, разработчиков и администраторов. По мнению экспертов-разработчиков, заказчики могут использовать Oracle Exalytics как для уже настроенных аналитических приложений и готовых систем, так и для собственных разработок в области управления эффективностью предприятия. Оптимизированный программно-аппаратный комплекс позволяет дополнить функциональность инструментальных панелей и систем отчетности сценариями моделирования, планирования и прогнозирования, которые выполняются в единой системе.
Инструмент Oracle Exalytics спроектирован в качестве оптимизированного программно-аппаратного комплекса, который включает платформу для бизнес-анализа Oracle BI Foundation Suite и реляционную базу данных с обработкой информации в оперативной памяти Oracle TimesTen In-Memory Database for Exalytics (оптимизирована для решения аналитических задач). Такая архитектура позволяет реализованным решениям на Oracle Exalytics иметь высокую производительность и масштабируемость при упрощенных функциях и низкой совокупной стоимости.
Компонентом выступает Oracle BI Foundation, который включает в себя обширный набор новых возможностей Oracle Business Intelligence Enterprise Edition и Oracle Essbase для аналитики и параллельной обработки в оперативной памяти. Эти возможности позволяют выполнять визуальный анализ в режиме реального времени (время отклика менее секунды). Пакет Oracle TimesTen In-Memory Database for Exalytics является новой версией реляционной базы данных с обработкой в оперативной памяти, специально предназначенной для решения аналитических задач. Новая поддержка агрегирующих OLAP-запросов, встроенные аналитические функции и сжатие данных по колонкам позволяют надстройке Oracle TimesTen In-Memory Database for Exalytics обеспечивать мгновенный отклик на запросы к большим наборам данных.
Аппаратное решение Oracle Exalytics также предлагает инновационную технологию «эвристического адаптивного кэширования данных в оперативной памяти» (heuristic adaptive in-memory caching), которая на основе статистики запросов в автоматическом режиме определяет, какие данные необходимо хранить в оперативной памяти для повышения общей производительности системы. В отличие от других программно-аппаратных решений или инструментов, работающих с оперативной памятью, решение Oracle Exalytics не ограничивает доступ только к данным, которые размещаются в оперативной памяти, но также позволяет одновременно взаимодействовать с любыми другими базами данных, хранилищам и OLAP-источникам.
Как показывают внутренние испытания и тестирование Oracle Exalytics на клиентских системах, при подготовке реляционных OLAP-/ROLAP-отчетов и использовании информационных панелей производительность повышается от десяти до ста раз, а при многомерном OLAP-/MOLAP-моделировании -- более чем в семьдесят раз.
Компания Oracle поставляет более 80 аналитических приложений и приложений для управления эффективностью предприятия, которые могут работать на Oracle Exalytics без существенных дополнительных настроек или изменений. Аналитическое приложение Oracle Hyperion Planning было создано для систем интегрированного бизнес-планирования, бюджетирования и прогнозирования. Платформа бизнес-аналитики Oracle BI Foundation Suite предлагает дополнительную поддержку для мобильных устройств iPad и iPhone. Оперативный мобильный анализ является частью комплексного решения Oracle Exalytics и позволяет поддерживать тысячи одновременно работающих пользователей, которые могут пользоваться расширенными средства интерактивной визуализации аналитических результатов своих запросов.
Кроме того, Oracle Exalytics -- это открытое решение, предназначенное для использования в гетерогенных информационных средах. Посредством инструмента Oracle Exalytics можно осуществлять доступ и анализировать данные, размещенные в любых реляционных базах данных, в том числе и от других поставщиков, многомерных OLAP-серверов или других источников данных [13].
Корпорация Oracle объявила в октябре 2012 года о выпуске новой версии аналитического программного обеспечения, оптимизированного для Oracle Exalytics In-Memory Machine --программно-аппаратного комплекса для анализа данных в оперативной памяти, обеспечивающего высокую производительность приложений для бизнес-анализа и управления эффективностью бизнес-процессов предприятий. Новые возможности Oracle Exalytics позволяют конечным пользователям быстрее получать доступ к бизнес-информации и более эффективно использовать ее в процессе своей аналитической деятельности [14], от исследований, поиска данных до визуального и мобильного анализа, корпоративного планирования и подготовки отчетов. Это, в свою очередь, позволяет получать знания, необходимые для ускоренного принятия обоснованных решений.
В 2014 году компания Oracle представила новый оптимизированный программно-аппаратный комплекс для анализа данных в оперативной памяти Exalytics In-Memory Machine X4-4. Новая версия включает модернизированную аппаратную платформу на базе четырех процессоров (Intel Xeon E7-8895 v2), которые способны динамически перераспределять ресурсы - частоту и число ядер - при использовании программного обеспечения Oracle для максимального увеличения скорости выполнения аналитической обработки данных (высокая скорость однопотоковой обработки и высоких степеней параллельности). Exalytics In-Memory Machine X4-4 включает обновленное аппаратное обеспечение, платформу для бизнес-анализа и программного обеспечения для анализа в оперативной памяти, которые заранее интегрированы для уменьшения полной стоимости приобретения и эксплуатации при высокой производительности.
Подобные документы
Технико-экономическая характеристика предметной области. Обоснование необходимости и цели использования информационных технологий для решения задачи. Выбор технологии проектирования, разработка АРМ. Расчет показателей экономической эффективности проекта.
дипломная работа [2,8 M], добавлен 11.03.2010Data Mining как процесс поддержки принятия решений, основанный на поиске в данных скрытых закономерностей (шаблонов информации). Его закономерности и этапы реализации, история разработки данной технологии, оценка преимуществ и недостатков, возможности.
эссе [36,8 K], добавлен 17.12.2014Характеристика деятельности ООО "ЖилРемСтрой", его организационная структура. Разработка проекта автоматизации бизнес-процессов предприятия с помощью программы "1С". Контрольный пример реализации проекта. Расчет экономической эффективности автоматизации.
дипломная работа [3,7 M], добавлен 29.01.2013Анализ задачи модернизации и размещения технологического оборудования. Существующая модель предметной области. Выбор методологии разработки сетевой технологии и архитектуры. Выбор языка и среды программирования. Информационное моделирование интерфейса.
курсовая работа [4,3 M], добавлен 22.12.2011Описание деятельности фирмы Rep’S, анализ существующих процессов. Разработка новой технологии продаж продукции. Выбор архитектуры для реализации информационной системы. Выбор программного обеспечения. Оценка эффективности разработанного проекта.
курсовая работа [1,8 M], добавлен 18.12.2011Определение программы управления корпоративными данными, ее цели и предпосылки внедрения. Обеспечение качества данных. Использование аналитических инструментов на базе технологий Big Data и Smart Data. Фреймворк управления корпоративными данными.
курсовая работа [913,0 K], добавлен 24.08.2017Особенности составления бизнес-плана нового производства по указанным исходным данным с использованием компьютерных технологий. Методы формирования графика окупаемости проекта. Характеристика полученной отчетности. Анализ эффективности инвестиций проекта.
контрольная работа [2,9 M], добавлен 21.09.2010Разработка проекта по созданию базы данных для автоматизации коммерческой деятельности ТЦ Гипермаркет. Исследование заданной предметной области и выбор наиболее существенных атрибутов. Построение концептуальной инфологической модели предметной области.
курсовая работа [889,4 K], добавлен 04.04.2011Анализ предметной области создания программы организации, предоставляющей услуги проката DVD и CD дисков. Описание информационных процессов, обоснование необходимости автоматизации. Разработка приложения, среда реализации и пользовательский интерфейс.
курсовая работа [43,6 K], добавлен 23.03.2010Основы работ с базами данных. Некоторые сведения о типах данных. Интерфейс БД. Текстовые, сетевые, реляционные базы данных. Проектирование баз данных. Анализ предметной области и запросов к БД. Выбор языка манипулирования данными.
курсовая работа [43,4 K], добавлен 06.10.2006