|
Оцените новый подход к преобразованию данных (альтернатива map-reduce, SQL и др.)
|
|||
---|---|---|---|
#18+
Большинство подходов и систем обработки данных, включая SQL и map-reduce, основаны на преобразовании множеств элементов (таблиц, коллекций и т.п.), т.е. это обычно граф операций на множествах. Bistro реализует другой поход, где вместо преобразования таблиц используются преобразования колонок с помощью трех основных операций calculate-link-accumulate. Формально, колонки это функции, т.е. вместо операций на множествах используются операции на функциях . Таким образом, преобразования данных представляются как граф операций с функциями (а не множествами), а каждая функция определяется и во время выполнения вычисляется через другие функции. Например, это могло бы выглядеть так: Код: java 1. 2. 3. 4. 5. 6. 7.
Этот подход реализован с помощью вот этой библиотеки: Bistro: https://github.com/asavinov/bistro Она может быть включена в системы где необходима потенциально сложная обработка данных, например, для миграции данных, импорта-экспорта, генерация отчетов, СУБД, анализ потоков и др. Было бы интересно узнать мнение по поводу этого подхода вообще и его реализации в библиотеке Bistro в частности. Будет ли это вообще работать? Кому и где это могло быть наиболее полезно сейчас и в будущем? Что можно улучшить в данной реализации? Ранее этот подход был реализован как веб-приложение для работы с таблицами (обсуждение здесь ) : Data Commandr: http://dc.conceptoriented.com ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 23:22 |
|
Оцените новый подход к преобразованию данных (альтернатива map-reduce, SQL и др.)
|
|||
---|---|---|---|
#18+
Если честно, это похоже на очень простую курсовую работу. Как можно несколько функций, которые вы реализовали, серьезно сравнивать с SQL? Тем более, когда давно есть DAX и MDX. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 04:10 |
|
Оцените новый подход к преобразованию данных (альтернатива map-reduce, SQL и др.)
|
|||
---|---|---|---|
#18+
И M. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2018, 04:11 |
|
Оцените новый подход к преобразованию данных (альтернатива map-reduce, SQL и др.)
|
|||
---|---|---|---|
#18+
bideveloper, секундочку. Допились можно все. Сам подход то живой или фантазии? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2018, 21:54 |
|
Оцените новый подход к преобразованию данных (альтернатива map-reduce, SQL и др.)
|
|||
---|---|---|---|
#18+
мигель1bideveloper, секундочку. Допились можно все. Сам подход то живой или фантазии?угу: Maple, Matlab, Mathcad ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 07:54 |
|
Оцените новый подход к преобразованию данных (альтернатива map-reduce, SQL и др.)
|
|||
---|---|---|---|
#18+
Александр СавиновБольшинство подходов и систем обработки данных, включая SQL и map-reduce, основаны на преобразовании множеств элементов (таблиц, коллекций и т.п.), т.е. это обычно граф операций на множествах. SQL вообще оффтоп тут А map-reduce это о другом. Это частный случай массивно-параллельных вычислений. Т.е. когда один компьютер не справляется- надо параллелить вычисления на кластер. mr это очень частный случай. spark, yarn- это поытка обощить. Вы пишете о другом- о способе выбрать нужное подмножество данных. И аналогом является формат parquet , если я правильно понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 09:58 |
|
Оцените новый подход к преобразованию данных (альтернатива map-reduce, SQL и др.)
|
|||
---|---|---|---|
#18+
Alexey TominSQL вообще оффтоп тут А я в негативном смысле, как ругательство :) На самом деле я противопоставляю Bistro множеству подходов, основанных на операциях с множествами, включая SQL, реляционную алгебру, map-reduce ну и кучу их вариантов в разных системах. Суть этих подходов к преобразованию данных в том, что из имеющихся множеств (таблица, отношение, коллекция и т.п.) получается другое множество с помощью какой-то операции. В Бистро вместо генерации множеств их других множеств предлагается генерировать колонки (функции) с помщью операций на них. Например, SELECT *, c = a + b FROM T. Казалось бы все нормально. Но концептуальная проблема в том, что мы вовсе не хотим создавать новую таблицу - цель состоит в создании новой колонки. Тем не менее просто создать колонку (принципильно) невозможно - надо создавать таблицу. Если использовать map, то тоже на выходе будет создана новая коллекция с копированием всех исходных элементов. Но это можно решить, например, df.apply() в pandas. А далее идут две следующие проблемы: 2) как связывать записи в таблицах и 3) как агрегировать данные. Для 2) если надо связать таблицы A и B, то используется join и создается новая таблица. Опять же, проблема: я не хочу создавать третью таблицу - я хочу создать колонку в одной со ссылкой на другую. В Бистро для этого есть операция link, которая именно это и делать. Для 3) есть group-by который тоже создает новую таблицы. Но зачем? Я не хочу новую таблицу - я хочу новую колонку, которая содержит агрегат. Бистро решает проблему с помощью операции accu - она работает иначе чем group-by. В результате Бистро не использует join и не использует group-by и мы избавляемся от всех этих ужасов. Достаточно ли calc, link, accu - это вопрос. Alexey TominА map-reduce это о другом. Я использую это как паттерн обработки данных без отношения к физической (распределенной) реализации. Для последнего лучше использовать Hadoop, HDFS и т.п. Alexey TominВы пишете о другом- о способе выбрать нужное подмножество данных. И аналогом является формат parquet , если я правильно понял. Бистро это не о физической реализации (хотя это весьма интересно). Это логическая модель. Я не знаю деталей parquet, но я так понимаю это формат для персистентного хранения, как и другие сериализации типа arrow. Сейчас Бистро не занимается сериализацией, но это было бы очень интересно, также как распределенная обработка. Просто этот рынок уже занят и есть куча систем (Spark и т.п.), которые более или менее делают что надо. Я хочу разработать сервер для потоковой аналитики типа Kafka Streams, просто потому что здесь не так много систем (вообще нет хороших) и я хочу позиционировать это для IoT. Запостил вчера для критики: https://news.ycombinator.com/item?id=16161673 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 12:12 |
|
Оцените новый подход к преобразованию данных (альтернатива map-reduce, SQL и др.)
|
|||
---|---|---|---|
#18+
Александр СавиновНапример, SELECT *, c = a + b FROM T. Казалось бы все нормально. Но концептуальная проблема в том, что мы вовсе не хотим создавать новую таблицу - цель состоит в создании новой колонки. Тем не менее просто создать колонку (принципильно) невозможно - надо создавать таблицу. Если использовать map, то тоже на выходе будет создана новая коллекция с копированием всех исходных элементов. Но это можно решить, например, df.apply() в pandas. А далее идут две следующие проблемы: 2) как связывать записи в таблицах и 3) как агрегировать данные. Для 2) если надо связать таблицы A и B, то используется join и создается новая таблица. Опять же, проблема: я не хочу создавать третью таблицу - я хочу создать колонку в одной со ссылкой на другую. В Бистро для этого есть операция link, которая именно это и делать. Для 3) есть group-by который тоже создает новую таблицы. Но зачем? Я не хочу новую таблицу - я хочу новую колонку, которая содержит агрегат. Бистро решает проблему с помощью операции accu - она работает иначе чем group-by. И чем это отличается от M в PowerBI? Там все это можно сделать с помощью очень удобного графического интерфейса. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 16:22 |
|
|
start [/forum/topic.php?fid=48&gotonew=1&tid=1856650]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
180ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 313ms |
0 / 0 |