In Memory решения

Разработка системы in-memory аналитики подобна решению любой другой инженерной проблемы. В этом процессе вы сталкиваетесь с большим количеством конструктивных решений, каждое из которых имеет свои плюсы и минусы и определенные последствия. Разработка TIBCO Spotfire имеет свои уникальные преимущества и подходы для решения задач обработки в памяти больших массивов данных.

Оглавление

Как работает обработка в оперативной памяти

Как работает обработка в оперативной памяти?

Понять основы in-memory обработки также просто, как выучить алфавит:

А. Что это такое?

| Аналитика бизнеса

Обработка в оперативной памяти – это довольно простое, но при этом очень мощное нововведение. Вот как она работает:

 

Получение данных с дискового накопителя – это самая медленная часть процесса обработки данных. И чем больше данных вам надо обработать, тем медленнее идет процесс анализа. 

In-memory аналитика делает анализ данных более похожим на настоящее мышление. Люди, обычно, получают информацию постепенно, затем выборочно вызывают эту информацию для решения проблем и принятия решений. Например, если вы знакомы с семью ближайшими ресторанами и наступило время обеда, вы можете выбрать, в какой ресторан у вас есть настроение пойти. Вы можете сравнивать различные кухни (Китайская? Индийская? Морепродукты? Бургеры?), относительное расположение(расстояние? проблемы с парковкой?) и уровень цен (карманная мелочь? Большие расходы?).

 

Возможно, вы просто прогоните эти факторы в своем уме и примете решение на лету. Или пойдете обедать вместе с кем-нибудь («Куда ты в настроении пойти?»). Но вы навряд ли станете составлять таблицу со всеми релевантными данными, определять возможные отношения между различными элементами данных, помещать таблицу в память, извлекать таблицу из памяти, выводить ее на дисплей и затем приступать к принятию решения используя только факты из этой конкретной таблицы.

 

И вот вопрос на засыпку: Если бы вам приходилось проходить через все эти шаги, чтобы выбрать ресторан… как бы часто вы ходили есть?

 

Серьезно.

 

Этот процесс не только сам по себе отнимет нелепое количество времени, но и ваше решение будет основано на ограниченных данных. И запомните – если вы захотите добавить больше данных (новые рестораны, отзывы посетителей и т.д.), вы должны начать все заново.

 

То же самое и в бизнесе. Быстрый, гибкий доступ к большим объемам данных открывает потенциал для тонн отличной аналитики. Медленный доступ к маленьким объемам жестко организованных данных не только препятствует пользователям при анализе, но идает «далеко не идеальные» результаты. И это замыкает порочный круг.

В. Что дальше?

Обработка в оперативной памяти быстро шагнула от «отличной идеи» к надежной и готовой технологии, которая меняет ландшафт бизнес-аналитики. Узнайте больше в доступном обзоре от топ-аналитика Синди Хаусон, затем посмотрите ее статью «Инсайт со скоростью мысли: преимущество in-memoryаналитики» для дополнительных деталей. (Регистрация безболезненна и бесплатна!)

 

Для многих организаций ключевой причиной использования in-memoryинструментов является прогнозирующая аналитика. В АБВ-посте на следующей неделе рассмотрим, как бизнес-аналитика помогает бизнесу смотреть в будущее. Также подписывайтесь на наш блог, чтобы оставаться информированными об In-Memoryобработке и других темах по анализу данных.

Преимущества обработка в оперативной памяти

Предварительное моделирование данных против безразмерного анализа

Дисковые аналитические системы позволяют пользователю предварительно моделировать данные  для того, чтобы принять множество решений перед проведением анализа. Необходимость классифицировать данные как объемы и их размеры – один из примеров предварительного моделирования, другой пример – определение иерархии внутри размеров. Дисковые системы требуют такого пре-моделирования, поскольку им необходимо предварительно объединить данные до начала анализа. Проблема в том, что предварительное моделирование неизбежно ограничивает анализ, который поле него осуществляется. Из-за этого также возникает задержка между загрузкой данных и их доступностью для анализа и, следовательно, если иерархия меняется, необходимо производить новые вычисления. Системы, производящие анализ в оперативной памяти, могут намного быстрее агрегировать информацию на лету. Это позволяет моментально создавать иерархии, что полностью освобождает такие системы от необходимости предварительного моделирования данных для увеличения производительности.

Скорость и дизайн пользовательского интерфейса

Как говорилось выше, анализ в оперативной памяти быстрее, чем анализ в дисковом пространстве. Эта скорость может быть использована разными путями, и один из наиболее важных – сделать пользовательский интерфейс более отзывчивым. Этот шаг звучит как простое удобство, но оказывается куда более значительным. В оригинальном исследовании, проведенном в 1984г, IBMпоказали, что увеличение скорости отклика системы может значительно повысить продуктивность. На самом деле, об этом догадывались еще и до 1984, но тогда появились два отчета, отражающие важность достижения времени отклика менее 1с. В отчете Ламберта, например, показано, что сокращение времени отклика системы с 2.22 секунд до 0.84 секунд в результате дает увеличение производительности пользователей на 62%. Так что в понятиях пользовательского интерфейса, «быстро» означает не меньше 5 секунд, а миллисекундные отклики.

 

Сокращение времени отклика системы с 2.22 секунд до 0.84 секунд в результате дает увеличение производительности пользователей на 62%

Преимущества подхода Spotfire

Мы хотели освободить пользователей от старой парадигмы про Меры и Объемы.

Как ни странно, общий подход ПО Spotfireк анализу не начинается с предположения, что оно должно использовать in-memoryмодель данных. Цель была помочь пользователям находить ответы на их вопросы, позволив им работать с информацией без необходимости строчить сложные запросы, которые занимают много времени на обработку. Команда разработки также хотела освободить пользователей от старых парадигм про Меры и Объемоы и предоставить им более интуитивные пути работы с данными. Поэтому подход Spotfireначинается с набора критериев, которые помогут все это реализовать; выполнение этих требований в итоге приводит к принятию in-memoryмодели.

 

Это дает нам три важных возможности:

1. Быстрое окружение для работы конечных пользователей с данными

Очень важно, что Spotfireпредоставляет пользовательский интерфейс (UI) , который отвечает критериям человеко-машинного взаимодействия – отзывчивость, интуитивность, хороший дизайн с немедленным откликом на действия пользователя (0,2 секунды). Давно доказано, что продуктивность сильно возрастает с увеличением скорости отклика на действия пользователя. Сравните запрос, ожидание, отображение результатов, которые занимают больше 30 секунд во многих БА системах и то же самое, но за 0,2 секунды или меньше. Этот пользовательский интерфейс автоматически предоставляется Spotfire Analytics. Как только система делает заключение о том, какие типы данных и характеристики используются (без необходимости моделирования), то пользовательский интерфейс может быть автоматически сгенерирован, и пользователь сможет сразу начать исследование данных. Это позволяет пользователям фокусироваться на анализе и исследовании вместо того, чтобы придумывать, как можно задать поменьше вопросов медленной и неотзывчивой системе.

 

Вещь, которую не следует упускать – отдает ли система преимущество RAM, или просто перекладывает старую архитектуру работы с данными в память, чтобы увеличить производительность? Мы можем увеличить скорость с технологией обработки в оперативной памяти, но это далеко не все, что мы можем сделать для пользователей.

2. Гибкость работы с данными для ответов как на ожидаемые, так и на еще неизвестные вопросы

Технология обработки в оперативной памяти Spotfire отбрасывает идею о Мерах и Объемах, поскольку система не требует от пользователей проводить предварительные вычисления или волноваться о том, что пользователь поставил две меры друг напротив друга в диаграмме или таблице, или категорию напротив меры в точечной диаграмме. Это позволяет пользователям фильтровать и перегруппировывать данные на лету. То же самое применяется к агрегациям. Spotfire Analytics не накладывает никаких ограничений на данные при моделировании, поскольку они легко доступны и проиндексированы при загрузке в память. Теперь пользователи могут свободнее работать с данными, чтобы находить ответы на свои вопросы – эта легкость и скорость приносит больше инсайтов и хороших решений.

 

Одна из других областей в которые верит Sporfire– это извлечение данных из внешних источников и добавление их в существующий набор данных в памяти. Это нетривиальная задача для многих систем. ПО Spotfireразработано, чтобы позволить пользователям легко присоединять новые строки и новые столбцы, оно оптимизировано и для того и для другого. Если пользователь добавляет дополнительные атрибуты, система просто генерирует новые фильтры и индексы, если добавлены новые строки, система обновляет индексы.

 

Пользователи Spotfire Analytics очень довольны этой возможностью. Многие аналитические системы относительно статичны. Вы создаете набор данных, ждете, пока они агрегируются, и затем проводите анализ. Если вам нужно добавить больше данных, вам придется перекомпилировать весь набор для анализа. Программное обеспечение Spotfire позволяет вам добавлять данные на лету.

3. Возможность записи на диск

Если у вас больше данных, чем может быть эффективно удержано в памяти, Spotfireможет загрузить необходимые данные в память петабайтного хранилища. Десятилетний опыт компании научил ее практически решать такие проблемы, и эта функция позволяет пользователям визуально запрашивать и загружать разделы очень большого хранилища данных в память, как им необходимо. Так что Spotfire Analytics интеллектуально перемещает информацию из памяти на диск, чтобы обеспечить активным пользователям хорошую производительность. Но есть и неизбежные ограничения для in-memory систем, утверждать обратное было бы смешно, в инженерном отношении. Вопрос стоит не «как мы сделаем вид, что это не ограничение?», а «как мы будем обращаться с ограничениями?». Spotfire Analytics старается обращаться с ними элегантно.

Подходы к анализу обработка в оперативной памяти

Обзор различных подходов к анализу в оперативной памяти

Разработка системы in-memoryаналитики подобна решению любой другой инженерной проблемы. В этом процессе вы сталкиваетесь с большим количеством конструктивных решений, каждое из которых имеет свои плюсы и минусы и определенные последствия. Разработка TIBCO Spotfire – не исключение.

| Аналитика бизнеса

1. Предварительная агрегация

Один из важнейших выборов при разработке in-memoryсистемы – использовать или нет предварительную агрегацию данных (например, продажи за месяц, по группе продуктов). Это очень важно в системах дисковой обработки, где такой подход дает большую разницу в скорости, поэтому кажется правильным использовать его и в системах обработки в оперативной памяти.

 

К плюсам предварительной агрегации в памяти можно отнести улучшенное высокоуровневое представление данных. Но это занимает время и также занимает память для хранения агрегаций. Мы читаем данные, чтобы создать единую таблицу без пре-агрегации. Это делает данные доступными в простом формате, понятном пользователю системы… Во-первых это занимает время, во вторых это увеличивает уровень предвзятости анализа. Программное обеспечение Spotfireможет получить необходимую скорость (время отклика 0.2 секунды) другими средствами. Так что, когда команда разработчиков Spotfireвнимательно взглянула на предварительную агрегацию, было решено, что у нее больше недостатков, чем преимуществ.

2. Применение эвристики

Философия Spotfire – не навязывать предвзятые установки для анализа, который будет проводить пользователь.

 

Некоторые данные для анализа поступают с метаданными, которые описывают их (данные из таблиц в системах реляционных БД, к примеру), некоторые без (CSVфайлы). Однако, когда данные загружены, есть возможность применить эвристику для того чтобы узнать о них больше. Если, к примеру, столбец содержит текстовые значения, которые выглядят, пахнут и на вкус как даты, тогда есть смысл предположить, что это даты.

 

Огромное преимущество применения эвристики состоит в том, что когда пользователь приступает к анализу данных, если программа знает, что данный столбец – это дата, пользователю будет предоставлен список возможных иерархий даты, которые могут быть присвоены. Таким же образом, если столбец содержит числа, и программа принимает такое решение во время загрузки, то пользователю будет предоставлен интерфейс, который позволяет, к примеру, элегантно фильтровать числовые данные. Недостаток такой обработки данных во время загрузки – это занимаемое время. Преимущество – Spotfire Analytics может создавать интерфейс, который предоставляет интеллектуальный доступ к специфическим данным и готовое к использованию приложение с логическими выборами для возможной аналитики.

3. Что вы делаете, когда объем данных, которые пользователь хочет проанализировать, превышает объем доступной памяти?

По существу, здесь есть 3 варианта:

Spotfire Analytics выбирает третий вариант. В то время, как вариант два также абсолютно справедлив, команда разработки в итоге решила, что вариант три имеет достаточно преимуществ, чтобы быть реализованным. Недостаток второго варианта очевиден – если вам придется анализировать немного больше данных, чем обычно – вы не сможете. Недостатком третьего варианта является замедление анализа при увеличении объема данных. К тому же внутренний код для in-memoryсистемы должен быть более сложным. Он так же должен содержать проверку условия («находимся ли мы в ситуации, когда нужно записывать на диск?»), что замедляет работу. Преимущества понятны – система не падает, и это позволяет вам закончить начатую работу. И как только вы приняли решение записывать на диск, появляются некоторые другие преимущества. Например, в web-решениях Spotfireнесколько пользователей могут видеть те же самые (или различные) данные и одновременно использовать память на сервере. Если на сервере начинает заканчиваться память, Spotfire Analytics принимает интеллектуальные решения по дальнейшим действиям – например, система может переместить редко используемые данные в файл подкачки (некоторые пользователи могут бездействовать).

В конечном итоге свопинг добавляет сложности приложению, но Spotfire Analytics верит, что это хороший компромисс. И конечно система может хранить swap-файлы на SSD(твердотельном накопителе) в качестве альтернативы HDD, что значительно повышает скорость.

4. Есть ли у вас поддержка отмены и повторения действий?

Spotfire перемещает данные на диск в случае перегрузки памяти

 

Как пользователи приложений, подобных MicrosoftOffice, мы все привыкли к этим функциям, поэтому они реализованы в Spotfire Analytics. Преимущества огромны – пользователи могут работать тем способом, к которому они привыкли. Недостаток в том, что функция отмены накладывает очень большую нагрузку на аналитическую систему. Вы можете, например, отменить и повторить присоединение гигабайта данных. Где данные будут храниться в это время? Вы будете хранить их в памяти (там, где они отнимают ваше место для данных) или на диске (при условии, что ваша система поддерживает своппинг на диск)? Так что функция повтора/отмены крайне желательна, но за нее приходится платить. Spotfire Analytics верит, что преимущества перевешивают цену.

5. Какой размер файлов вы поддерживаете?

С приходом 64-битных систем старый предел в 4 Гб наконец-то был снят. С релизом Spotfire Analytics 3.2 ограничение на размер файла для 64-битных систем было снято. Теперь поддерживается размер файла, поддерживаемый самой ОС; все просто. На самом деле, все не так просто с инженерной точки зрения, но команда разработки верит, что это важно было сделать.

6. Сжатие

Spotfire Analytics, конечно же, сжимает данные; самая главная задача – сохранять баланс сжатия для каждого типа пользовательских файлов. Например, данные по продажам в целом сжимаются намного лучше научных или финансовых данных. Данные по продажам для 10 000 продуктов по географическим регионам составляют всего пару миллионов значений данных. Сжатие 100 миллионов строк из набора данных во что-то гораздо меньшее возможно, в то время как сжатие 100 миллионного набора данных уникальных научных измерений – нет. Spotfire Analytics имеет обширный опыт работы с данными из разных доменов. Мы знаем, что то, что хорошо выглядит в лаборатории, может не оказаться таким хорошим в реальном мире. Поэтому система имеет различные способы сжатия данных – мы смотрим, как импортированы данные и применяем лучший алгоритм сжатия.

Почитать еще

| Аналитика бизнеса

Виртуализация данных

Виртуализация данных — способ организации доступа к данным, при котором не требуется информация об их

Несколько видео о наших продуктах

| Аналитика бизнеса
Проиграть видео
Презентация аналитической платформы Tibco Spotfire
| Аналитика бизнеса
Проиграть видео
Отличительные особенности Tibco Spotfire 10X
| Аналитика бизнеса
Проиграть видео
Как аналитика данных помогает менеджерам компании
2021-01-30T23:59:38+02:00