Apache Ignite, распределенная база данных для высокопроизводительных вычислений со скоростью в памяти, была обновлена с поддержкой Spark DataFrames и машинного обучения.
Ignite можно использовать как традиционную базу данных SQL через драйверы JDBC, драйверы ODBC или собственные собственные API-интерфейсы SQL. По умолчанию он работает исключительно в памяти, но кластеры можно настроить для работы как на диске, так и в памяти.
Он поддерживает совместные вычисления в Java, Scala, Kotlin, C # и C ++, что означает, что вы можете создавать эквивалент хранимых процедур на современных языках JVM, C # или C ++ для разработки и выполнения пользовательских задач в распределенной базе данных. Ignite может работать в строго согласованном режиме, который обеспечивает полную поддержку распределенных транзакций ACID между несколькими узлами кластера, кешами, таблицами и разделами.
Ignite поддерживает непрерывные запросы, а это означает, что вместо использования триггера для реакции на определенные события в Ignite вы можете писать и выполнять непрерывные запросы, написанные на таких языках, как Java или C #, которые обрабатывают потоки изменений на стороне базы данных и приложения.
Основные особенности последней версии распределенной базы данных — это общедоступность функции машинного обучения и поддержка Spark DataFrames.
Машинное обучение Ignite имеет интеграцию с TensorFlow, а также встроенные алгоритмы и инструменты, поэтому его можно использовать для создания масштабируемых моделей машинного обучения без необходимости передачи данных из Ignite. Вы можете обучать, развертывать, оценивать и обновлять свои модели машинного обучения и обучения непрерывно и в любом масштабе.
Возможно, что еще более поразительно, в последней версии добавлена поддержка Spark DataFrames. В объявлении подчеркивается, что это не шутка или опечатка, и говорится, что многие первые последователи Ignite надеялись на это годами. Spark DataFrame — это распределенная коллекция данных, организованная в именованные столбцы, и означает, что Spark может использовать оптимизатор запросов Catalyst для создания более эффективных планов выполнения запросов.
Разработчики говорят, что Ignite расширяет DataFrame, упрощая разработку и сокращая время доступа к данным, когда Ignite используется в качестве хранилища, ориентированного на память для Spark. Поддержка означает, что пользователи Ignite могут обмениваться данными и состоянием между заданиями Spark, записывая и считывая DataFrames в и из Ignite; и может повысить производительность запросов SparkSQL за счет оптимизации планов выполнения запросов Spark с помощью механизма Ignite SQL, который включает расширенное индексирование.