Индейцы из племени Пираха склонны к упрощению арифметики — поймав трех улиток, они говорят: «несколько». Примерно так же сегодня мы пытаемся решить проблему Больших Данных. (Фото: Kashfia Rahman www.sxc.hu) |
Проблема Больших Данных — в англоязычной литературе ее называют Big Data — возникла по простой причине. Существующие классические методы работы с данными оказались не способны справиться с потоками данных, которые возникают в тех случаях, когда информационные системы снабжаются полноценными сведениями из реальной жизни. Вероятно, впервые о неведомых прежде объемах данных заговорили в процессе освоения технологии радиочастотной идентификации (RFID). Вскоре стало ясно, что подобных по мощности источников данных гораздо больше — это и социальные сети, и современные исследовательские приборы и установки, и разнообразные средства для работы с медийным контентом, и многое другое.
Ответом на этот вызов стали новые технологии, и первой попыткой справиться с большими потоками данных оказались системы обработки сложных событий (Complex Event Processing, CEP). Позже появились технологии категории Data-Intensive Computing (сначала MapReduce, затем Hadoop), и совсем недавно к ним прибавилась технология HPCC (High-Performance Computing Cluster), разработанная в компании LexisNexis. Появились и так называемые аналитические суперкомпьютеры (Data Analytics Supercomputer, DAS). Но достаточно ли этих и других аналогичных технологий для разрешения проблемы Больших Данных? Скорее всего нет, ибо они представляют только нижний уровень работы с данными, а проблема заметно шире и сложнее.
Среди многочисленных определений термина «проблема» наиболее лаконичное обнаруживается в Большой Советской Энциклопедии: «Проблема (от греч. problema — задача) в широком смысле сложный теоретический или практический вопрос, требующий изучения, разрешения; в науке — противоречивая ситуация, выступающая в виде противоположных позиций в объяснении каких-либо явлений, объектов, процессов и требующая адекватной теории для ее разрешения. Важной предпосылкой успешного решения П. служит ее правильная постановка. Неверно поставленная П. или псевдопроблема уводят в сторону от разрешения подлинных П.» Обратим внимание на два пункта — противоречие и корректная постановка.
Сначала о противоречии. Проблему Big Data, с одной стороны, упрощают, представляя ее как феномен удвоения количества данных за год или иной промежуток времени, а с другой — гиперболизируют, представляя чуть ли не как стихийное бедствие, с которым нужно каким-то образом справляться. И тут же упускается из виду то обстоятельство, что проблема отнюдь не внешняя, она вызвана не столько хлынувшим потоком данных, сколько нашей неспособностью старыми методами справиться с новыми объемами, вполне естественными для нынешнего этапа в развитии ИТ. Иначе говоря, дело не во взявшихся невесть откуда данных, а в пороке развития компьютерных систем. На протяжении всей их истории невероятными темпами развивались собственно технологии и почти не развивались кибернетические методы и теория информации, здесь все осталось на уровне 50-х годов, когда компьютеры использовались исключительно для счета. Таким образом была заложена мина, которая взорвалась сейчас, когда счетная нагрузка существенно меньше, чем другие виды работ, выполняемых над данными, цель которых состоит в получении новой информации и новых знаний. Вот почему решение проблемы Больших Данных должно быть увязано с цепочкой «данные — информация — знание». Данные обрабатываются для получения информации, ее должно быть получено столько и в такой форме, чтобы человек мог превратить информацию в знание, что, собственно и определяет методы работы с данными.
Теперь о корректности постановки задачи. Серьезных работ, связывающих сырые данные с полезной информацией, не было. Есть множество отдельных фрагментов, но нет полноценной современной теории информации. Теория информации со времен Клода Шеннона заморожена. Ее заменило убеждение в том, будто все разнообразие данных можно упаковать в реляционные СУБД, а если мир не укладывался «в клеточку», то пусть будет хуже для мира. Как ни странно, но еретиков, высказывающих свое несогласие с этой точкой зрения, очень мало. Среди них — Майкл Стоунбрейкер, создатель первых СУБД Ingres и Informix, один из немногих, кто демонстрирует протестную реакцию. Еще есть приверженцы концепции NoSQL, и это, пожалуй, все.
Наблюдаемая печальная ситуация наводит на аналогию с особенностями счета у индейцев племени Пираха, живущих в тропических лесах Бразилии, в отдалении от цивилизации. В их языке имеются только три числительных, одно переводится примерно как «один-два», другое — «несколько» и третье — «гораздо больше». Последнее удивительным образом напоминает Big Data, кого ни почитаешь, все только констатируют, что данных много или очень много, но зрелого представления, какими путями следует решать проблему, нет ни у кого. Ситуация, по меньшей мере, странная — технические возможности работы с данными явно опередили развитие способностей к их использованию. Только у одного автора, редактора журнала Web 2.0 Journal Дайона Хинчклифа, удалось найти классификацию Больших Данных, позволяющую соотнести технологии с результатом, который ждут от обработки Больших Данных. Он делит подходы на три группы: быстрые данные (Fast Data), их объем измеряется терабайтами, большая аналитика (Big Analytics) — петабайтные данные, и глубокое проникновение (Deep Insight) — экзабайты, зеттабайты. Группы различаются между собой не только оперируемыми объемами данных, но и качеством решения проблемы.
Обработка данных типа Fast Data не предполагает получения новых знаний, ее результаты соотносятся с априорными знаниями и позволяют судить о том, как протекают те или иные процессы. Это дает возможность лучше и детальнее увидеть происходящее, подтвердить или отвергнуть какие-то гипотезы. Только небольшая часть из существующих сейчас технологий подходит для решения задач Fast Data, в этот список попадают некоторые технологии работы с хранилищами данных, известные продукты Teradata, Netezza, Greenplum, СУБД типа Verica и kdb. Скорость работы этих технологий должна возрастать синхронно с ростом объемов данных.
Задачи, решаемые средствами Big Analytics, заметно отличаются от Fast Data, причем не только в количественном отношении, но и в качественном — соответствующие технологии должны помогать в получении новых знаний, служить для преобразования зафиксированной в данных информации в новое знание. Однако на этом среднем уровне не предполагается наличие искусственного интеллекта при выборе решений или каких-либо автономных действий аналитической системы — она строится по принципу «обучения с учителем». Иначе говоря, весь ее аналитический потенциал должен быть заложен в нее в процессе обучения. Самый очевидный пример использования этого принципа — машина Watson, играющая в Jeopardy! (и отечественная программа «Своя игра», ее аналог). Классическими примерами средств Big Analytics являются продукты MATLAB, SAS, Revolution R, более новые Apache Hive, SciPy Apache и Mahout.
Высший уровень Deep Insight предполагает обучение без учителя (unsupervised learning) и использование современных методов аналитики (social media, predictive, segment, network и другие), а также различные способы визуализации. На этом уровне возможно обнаружение знаний и закономерностей, априорно неизвестных.
Проблема Больших Данных еще уникальна тем, что при внимательном взгляде несложно убедиться в ее отсутствии, она возникла как название в тот момент, когда компьютерный мир соприкоснулся с миром реальным, с настоящей информационной насыщенностью окружающей среды. До последнего времени мы, как индейцы Пираха, жили в мире малых данных и считали «один — два», и вдруг открыли для себя «много», после чего, испугавшись, с перепугу назвали реальные потоки данных Big Data.