Краткий ответ - да!"

Более длинный ответ: «Да, но это намного больше».

Apache Ignite - это горизонтально масштабируемая отказоустойчивая распределенная вычислительная платформа в памяти для создания приложений реального времени, которые могут обрабатывать терабайты данных со скоростью в памяти. - ignite.apache.org

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

Вот несколько вариантов использования, для которых вы можете использовать Ignite.

Высокопроизводительные приложения с нуля

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

Но в сегодняшнюю эпоху цифровой трансформации существует множество новых приложений, которым с первого дня требуется масштабируемость и производительность. Конечно, вы можете пойти «старым путем», используя одну из проверенных СУБД в качестве системы записи с одной из сеток данных наверху для повышения производительности. Однако этот подход имеет несколько последствий:

  • Такая архитектура все еще ограничена. В основном сетки данных эффективны при рабочих нагрузках с интенсивным чтением, но всякий раз, когда вам нужно что-то написать, вы должны обращаться к базовой базе данных. Таким образом, база данных по-прежнему ограничивает масштабируемость и производительность обновлений.
  • Хранение в памяти является энергозависимым, что означает, что каждый раз, когда вы перезапускаете кластер сетки данных, вы делаете данные недоступными. Затем вам нужно перезагрузить данные из базовой базы данных, что может занять довольно много времени, увеличивая возможные простои до неприемлемых значений.
  • Этот подход, как правило, слишком сложен и даже немного «хакерский». Если вам нужно развернуть два независимых хранилища данных для одной цели, значит, что-то не так. Должен быть способ лучше!

И есть способ получше. Apache Ignite реализует концепцию, которую мы называем долговечная память. Он основан на архитектуре страничной памяти, где любая страница может храниться не только в памяти, но и на диске - вам просто нужно включить опцию Native Persistence. Постоянство Ignite масштабируется, поддерживает транзакции, SQL и все другие API. Его тесная интеграция со слоем в памяти делает доступ к данным полностью прозрачным для приложений (т. Е. Приложение может читать или обновлять данные в любой момент времени, даже если они еще не загружены в ОЗУ).

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

HTAP и аналитика в реальном времени

Мы все привыкли к утверждению, что транзакционная обработка (OLTP) и аналитическая обработка (OLAP) должны выполняться отдельными системами. Я уверен, что вы видели схему, подобную этой:

Идея состоит в том, чтобы выполнить операции в оперативной базе данных, а затем выполнить процесс ETL, который распространяет изменения в аналитическую базу данных. Вы можете использовать последний для аналитики, машинного обучения, глубокого обучения и т. Д.

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

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

Единственный способ добиться такой немедленной реакции - объединить две базы данных в одно хранилище, способное выполнять гибридную транзакционную / аналитическую обработку (HTAP).

HTAP = OLTP + OLAP

Apache Ignite подходит для HTAP по нескольким причинам.

  1. Ignite следует подходу единое хранилище, несколько рабочих нагрузок, что означает, что вы можете хранить все свои данные один раз в одном кластере, а затем работать с этими данными через все доступные API, будь то ключ-значение, транзакции, вычислить , SQL или машинное обучение .
  2. Native Persistence Ignite позволяет хранить расширенный набор данных на диске, не влияя на доступность данных. Допустим, ваш общий набор данных составляет несколько петабайт, но у вас есть только 100 ГБ данных, которые часто обновляются и используются. Записывать все в память неразумно, а с Ignite этого и не нужно. Большая часть данных может храниться только на диске, и при необходимости они по-прежнему будут полностью доступны для приложений.

Спрос на аналитику в реальном времени требует значительных изменений в архитектуре серверных систем. Еще многое предстоит выяснить, но Apache Ignite уже предоставляет невероятную комбинацию функций для поддержки рабочих нагрузок HTAP.

Центры цифровой интеграции

Одна из самых серьезных проблем, с которыми в настоящее время сталкиваются ИТ-архитекторы, заключается в том, что данные часто распределяются по нескольким системам. В рамках одной компании вы легко найдете реляционные базы данных, базы данных NoSQL, мэйнфреймы, озера данных, решения SaaS…

Разные API, разные модели данных, все по-разному.

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

Решением является создание Центра цифровой интеграции.

«Digital Integration Hub - это передовая архитектура приложений, которая объединяет несколько серверных систем источников данных записи в высокопроизводительное хранилище данных с малой задержкой и горизонтальным масштабированием… Высокопроизводительное хранилище данных синхронизируется с внутренними источниками. с помощью некоторой комбинации шаблонов интеграции на основе событий, запросов и пакетов ». - Gartner

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

Apache Ignite кажется отличной основой для такого решения. Я уже упоминал о Native Persistence, которая позволяет Ignite действовать как система записи, а также о его способности работать с рабочими нагрузками HTAP - и то, и другое становится важным при создании центра интеграции данных.

Кроме того, вам понадобится хороший набор компонентов интеграции с базами данных, потоковыми платформами и продуктами SaaS. Вот некоторые из таких интеграций, которые Ignite предоставляет из коробки:

В свое время распределенные кеши были основным способом повышения производительности. В то время как новые варианты использования и требования продолжали появляться, многие из этих систем превратились в то, что мы теперь называем сетками данных в памяти.

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

Спрос на обработку в реальном времени будет только расти, и я с нетерпением жду развития этой тенденции. Я также приветствую всех присоединиться к сообществу Apache Ignite: https://ignite.apache.org/community/contribute.html