Country not specified
Unknown website Share

Apps4all

Страна: -
Город: -
Был онлайн: -
О себе:
 
08-07-2016, 11:25
Apps4all

Секреты разработки и создания приложений, использующих Big Data

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

Приложения так же строятся вокруг данных. Данные, которые приложение использует для решения проблем, хранятся платформами для размещения данных. Эти платформы для размещения исходных данных были разработаны для того, чтобы обеспечить оптимальное хранение и извлечение данных. В процессе хранения и извлечения данных, приложение проводит вычисление и отображает результаты.

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

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

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

Возьмем в качестве примера CRM-инструмент. Традиционный CRM-инструмент может хранить информацию о клиентах, их истории покупок и уровни лояльности клиентов. Учитывая ограниченные ресурсы таких предприятий, как телефонный центр обслуживания клиентов, во время его максимальной загрузки, CRM-инструмент должен определить какие клиенты должны получить базовый, а какие – приоритетный уровень обслуживания. Обычно клиенты с более высокой лояльностью получают приоритетное обслуживание, а уровни лояльности определяются заранее. Эти уровни могут зависеть от затрат, их частоты, или других правил, а их определение обычно зависит от трудно структурированных данных.

Однако, если CRM-инструмент имеет возможность определять поведение клиента как похожее на поведение клиента с высокой лояльностью, даже если он находится за пределами предопределенного уровня он сможет принять более верное решение относительно расстановки приоритетов ресурсов и предложит соответствующий уровень приоритета звонка.

Традиционные приложения могут оперировать лишь на основе заранее установленных формул и данных. Но CRM-инструмент должен заранее знать, является ли тот или иной клиент предпочитаемым клиентом и должен ли он получить приоритет ресурсов.

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

Так какой же подход следует избрать для разработки и создания приложений, связанных с крупными массивами данных? Какие соображения, решения или предостережения нужно принять во внимание, когда создаешь подобные приложения? Вот несколько рекомендаций для создания сложных приложений больших данных:

Определи свои цели, используя здравый смысл

Определи важные результаты работы приложения. Сможет ли приложение обеспечить возможность объединения массивов данных различных технологий? Найти ценных клиентов раньше, чем существующие системы? Вне зависимости от установленной цели, имей в виду что присоединение данных может предоставить информацию, выходящую за пределы поставленной задачи. Не выбрасывай данные, потому что ты можешь найти сокровища в совершенно неожиданных местах.

Определи объемы, источники и точки интеграции данных

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

Найди подходящую платформу

Понимание типа и объема данных, с которыми будет работать твое приложение, определит какая платформа тебе требуется. Hadoop традиционно является платформой де-факто, поскольку позволяет проводить любые виды поглощения и анализа: аналитику в реальном времени, пакетную аналитику и аналитику с малой задержкой. Выбери наиболее универсальную и подходящую платформу. Сотрудничай с теми поставщиками, которые смогут поддерживать твое приложение в течение всего срока его жизни.

Начни с пакетной обработки; не торопись

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

Создай процесс сбора данных

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

Создай всеохватывающую петлю обратной связи

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

Используй дата майнинг и предиктивную аналитику

Создав крупную петлю обратной связи, теперь соединяющую все источники данных твоего бизнеса, ты сильно продвинешься на пути создания приложений больших данных. Двигайся дальше, проводя глубокий майнинг данных и поведенческий анализ своих данных, чтобы спрогнозировать лучший способ оптимизации ресурсов. По мере развития технологий больших данных, новые высокоуровневые рабочие среды с открытым исходным кодом (такие как Kiji), могут снизить барьер вхождения для продвинутого машинного обучения и аналитике глубокого майнинга данных.

Создавай предиктивные модели, работающие в реальном времени

Учитывая вышеупомянутый майнинг данных, или другую аналитическую информацию, продолжай улучшать свои существующие приложения, создавая интерфейс, работающий в реальном времени, который будет динамически пересчитывать твои прогнозные модели, основываясь на ежесекундных изменениях в данных. Используй знания, полученные в ходе пакетных/итеративных исследований и анализа для создания усовершенствованных прогнозных моделей, способных работать в реальном времени для каждого пользователя. Рабочие среды с открытым исходным кодом, такие как Kiji resT и Kiji Scoring, позволяют проводить подобные операции буквально со скоростью мысли. Способность быстро итерировать и развертывать новые модели по мере изменения тенденций, позволит тебе извлекать выгоду из трендов по мере их появления и не отставать от них на недели или даже месяцы.

Постоянно совершенствуй процессы

Успешное приложение больших данных требует постоянного совершенствования. Собираются ли правильные данные? Есть ли новые источники данных, которые нужно интегрировать? Есть ли источники данных, которые следует исключить? Существуют ли лучшие прогнозные модели, которые можно использовать для получения более точных данных в реальном времени? Нужно постоянно задавать себе эти вопросы, чтобы качество данных, транслируемых в твое приложение больших данных оставалось актуальным.

Измеряй результаты и пожинай плоды

Это относится ко всем вышеописанным шагам: измеряй, измеряй и еще раз измеряй. Единственным способом узнать воздействие и производительность твоего приложения больших данных является измерение результатов. Это может просто измерение количества собранных данных по сравнению с количеством записей, отправленных обратно к существующим традиционным приложениям, или проведение продвинутого A/B тестирования поведенческих моделей. В любом случае, смысл один: лучшим способом узнать, достигло ли твое приложение больших данных своей цели, является измерение результатов.

Аарон Кимбалл основал WibiData в 2010 году. Он работает с Hadoop с 2007 года и является участником проекта Apache Hadoop.

[Источник: VentureBeat.com]

 
разработка
статья
приложение
0 0 0

Чтобы оставлять комментарии вам необходимо зарегистрироваться