Можно ли выполнить произвольный анализ данных в Erlang?
Вопрос
Я хочу ответить на вопросы о данных в Erlang:подсчитывайте вещи, сопоставляйте сообщения, предоставляйте произвольную статистику.Я думал о том, чтобы прибегнуть к Hadoop для этого, но возможно ли создать решение в raw Erlang для выполнения довольно произвольного анализа данных, не обязательно с помощью map / reduce, но каким-то образом?Я видел несколько намеков на то, что люди делают это, но никаких явных сообщений в блогах или примеров того, как это делается.Я знаю, что возможности естественного языка Powerset написаны на Erlang.Я также знаю о CouchDB, но искал какие-то другие решения.
Решение
ДА.
Для вычислений общего назначения и статистики Erlang работает просто отлично.Он не сильно оптимизирован для такой работы, поэтому ему будет трудно работать с аналогичным числовым кодом, скажем, в MatLab, ForTran или любом из основных пакетов C для этой работы, но для большинства применений он подойдет просто отлично.И, конечно, если ваш код аккуратно распараллеливается и у вас доступно несколько процессоров, Erlang догонит вас легче.
(Вы также упомянули шаблон отображения / уменьшения;это относительно тривиально, учитывая среду выполнения Erlang / OTP и библиотеки.)
Я и мои коллеги написали много "сырого" Erlang для подсчета голосов, статистики и так далее.Мы пришли к выводу, что этого более чем достаточно для большинства задач.
Другие советы
Почему бы и нет?
Эрланг, в конце концов, завершен по Тьюрингу.
Объясните свой вариант использования лучше, и вы получите лучший ответ.