Библиотека для обработки данных Bistro Engine и библиотека для анализа потоковых данных Bistro Streams:
https://github.com/asavinov/bistro Bistro делает для обработки данных то, что колончатый подход сделал для баз данных
Этот проект может быть интересен тем, кто интересуется большими данными, потоковыми данными и обработкой данных вообще. Проект состоит из двух частей:
Bistro Engine это библиотека для обработки данных общего назначения – примерно как MapReduce, но работает на других (колончатых) принципах
Bistro Streams предназначена для обработки потоковых данных — примерно для того же, что и Kafka Streams, и основан на Bistro Engine, и работает на новых (колончатых) принципах
Основное отличие Bistro от других систем (включая SQL и map-reduce) в том, что он использует колончатый подход к обработке данных, а не операции с множествами. Если обычно, чтобы получить новые данные мы применяем операции к множествам (таблицы, коллекции и т.е.), то в Bistro мы определяем колонки на основе уже существующих колонок. Вычисление значений колонок соответствует вычислению запросов в обычных системах. Определение того, что делать с данными в Bistro выглядит примерно так:
column1.calc( <lambda> ); // Аналог вычисляемого атрибута
column2.link(<lambda> ); // Аналог join
column3.accu(<lambda> ); // Аналог group-by
column4.rol(<lambda> ); // Скользящая агрегирование
schema.eval(); // Аналог выполнения запроса