Новый подход к преобразованию данных - альтернатива map-reduce, SQL и др.
От: Александр Савинов Германия https://github.com/asavinov
Дата: 15.01.18 14:49
Оценка:
Большинство подходов и систем обработки данных, включая SQL и map-reduce, основаны на преобразовании множеств элементов (таблиц, коллекций и т.п.) Работа с данными представляется как граф операций на множествах, где одно множество определяется и вычисляется из других.

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


Например, описание могло бы выглядеть так:

// Определить колонки 
col1.calc(...); 
col2.link(...); 
col3.accu(...); 
colN.calc(...); 
// Вычислить все колонки 
schema.eval();


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

Этот подход реализован с помощью вот этой библиотеки:

Bistro: https://github.com/asavinov/bistro

Она может быть включена в системы где необходима потенциально сложная обработка данных, например, для миграции данных, импорта-экспорта, генерация отчетов, СУБД, анализ потоков и др.

Было бы интересно узнать мнение по поводу этого подхода вообще и его реализации в библиотеке Bistro в частности. Будет ли это вообще работать? Кому и где это могло быть наиболее полезно сейчас и в будущем? Что можно улучшить в данной реализации?

Ранее этот подход был реализован как веб-приложение для работы с таблицами (обсуждение (Angular 2) Оцените приложение Data Commandr для работы с та):
Data Commandr: http://dc.conceptoriented.com
map-reduce sql data
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.