MH>>MapReduce это больше про как выполнять. а sql про как описать. MapReduce выражается через sql — упрощенно это select и group by. MH>>и я бы не назвал MapReduce "императивным" подходом.
Gt_>не правда. маппер и редюсер это в случае хадуп это обычный императивный жава код. любой sql можно выразить через MapReduce, но в другую сторону зачастую не выйдет.
что тогда мешает сказать, что и для sql выражения (например name like 'А%', соотвествует "обычный императивный" C# код — x.Name.StartsWith("А") ?
с точки зрения концепции неважно как внутри реализован маппер и редьюсер. для маппера важно что это чистая функция без побочных эффектов, а это значит если мы можем расширять скл своими функциями (а мы можем), то любой маппер мы можем выразить за счет select и композиции базовых функций, то есть возможность выразить мап-редюс через скл, ограничена только возможность расширения скл-сервера нужными функциями.
Gt_>в императивном коде мап-редюс не проблема подключить допустим хитрую либо шифрования и читать писать шифрованные данные, а в sql если функции нет, то все.
да, можно, если на сервере выполняющем мап-редюс она (хитрая функция для шифрования) есть. но тогда что мешает на скл-сервере тоже написать/подключить любую нужную функцию? и чем ситуации будут отличаться?
и если на сервере мап-редюс нужной функции/либы нет — то тоже всё.