Jump to content

ECL (язык программирования, ориентированный на данные)

ОКУ
Парадигма декларативный , структурированный , ориентированный на данные
Разработчик HPCC Systems® , решения LexisNexis для управления рисками
Впервые появился 2000
Дисциплина набора текста статический , сильный , безопасный
ТЫ Линукс
Веб-сайт http://hpccsystems.com/
Под влиянием
Пролог , Паскаль , SQL , Снобол4 , C++ , Clarion

ECL (язык управления предприятием) — это декларативный, ориентированный на данные язык программирования, разработанный в 2000 году, чтобы позволить команде программистов обрабатывать большие данные в высокопроизводительном вычислительном кластере без участия программиста во многих императивных решениях более низкого уровня. [1] [2]

ECL был первоначально спроектирован и разработан в 2000 году Дэвидом Бэйлиссом как внутренний инструмент повышения производительности внутри Seisint Inc и считался «секретным оружием», которое позволило Seisint завоевать долю рынка в своем бизнесе по работе с данными. У Equifax был основанный на SQL процесс прогнозирования того, кто обанкротится в ближайшие 30 дней, но на обработку данных ушло 26 дней. Первая реализация ECL решила ту же проблему за 6 минут. Эта технология была названа движущей силой приобретения Seisint компанией LexisNexis , а затем снова как основной источник синергии, когда LexisNexis приобрела ChoicePoint Inc. [3]

Языковые конструкции

[ редактировать ]

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

Привет, мир

[ редактировать ]

ECL должен иметь краткие решения проблем и разумные дефолты. Программа «Hello World» характерно короткая:

'Hello World'

Возможно, более интересный пример мог бы взять список строк, отсортировать их по порядку, а затем вернуть его в качестве результата.

// First declare a dataset with one column containing a list of strings
// Datasets can also be binary, CSV, XML or externally defined structures

D := DATASET([{'ECL'},{'Declarative'},{'Data'},{'Centric'},{'Programming'},{'Language'}],{STRING Value;});
SD := SORT(D,Value);
output(SD)

Заявления, содержащие := определяются в ECL как определения атрибутов. Они не обозначают действие; скорее определение термина. Таким образом, логически программу ECL можно прочитать: «снизу вверх».

OUTPUT(SD)

Что такое СД?

 SD := SORT(D,Value);

SD — это буква D, отсортированная по значению.

Что такое Д?

 D := DATASET([{'ECL'},{'Declarative'},{'Data'},{'Centric'},{'Programming'},{'Language'}],{STRING Value;});

D — это набор данных с одним столбцом с надписью «Значение» и содержащим следующий список данных.

Примитивы ECL

[ редактировать ]

Примитивы ECL, которые действуют на наборы данных, включают SORT, ROLLUP, DEDUP, ITERATE, PROJECT, JOIN, NORMALIZE, DENORMALIZE, PARSE, CHOSEN, ENTH, TOPN, DISTRIBUTE.

ECL-инкапсуляция

[ редактировать ]

Хотя ECL краток и LexisNexis утверждает, что 1 строка ECL примерно эквивалентна 120 строкам C++, он все же имеет значительную поддержку крупномасштабного программирования, включая инкапсуляцию данных и повторное использование кода. Доступные конструкции включают MODULE, FUNCTION, FUNCTIONMACRO, INTERFACE, MACRO, EXPORT, SHARED.

Поддержка параллелизма в ECL

[ редактировать ]

В реализации HPCC по умолчанию большинство конструкций ECL будут выполняться параллельно на используемом оборудовании. Многие примитивы также имеют опцию LOCAL, указывающую, что операция должна выполняться локально на каждом узле.

Сравнение с Map-Reduce

[ редактировать ]

Парадигма Hadoop Map-Reduce состоит из трех этапов, которые соотносятся с примитивами ECL следующим образом.

Название/термин Hadoop эквивалент ожидаемых кредитных убытков Комментарии
КАРТИРОВАНИЕ в MAPper ПРОЕКТ/ТРАНСФОРМАЦИЯ Берет запись и конвертирует в другой формат; в случае Hadoop преобразование происходит в пару ключ-значение.
ПЕРЕТАСОВАНИЕ (Фаза 1) РАСПРЕДЕЛИТЬ(,ХЭШ(Значение ключа)) Записи из картографа распределяются в зависимости от значения KEY.
ПЕРЕТАСОВАНИЕ (Фаза 2) СОРТИРОВАТЬ(,ЛОКАЛЬНЫЙ) Записи, поступающие в конкретный редуктор, сортируются в порядке KEY.
УМЕНЬШАТЬ СВЕРТКА(,Ключ,МЕСТНЫЙ) Записи для определенного значения KEY теперь объединены.
  1. ^ Руководство по ECL , Lexis-Nexis .
  2. ^ «Оценка использования систем потоков данных для анализа больших графов», А. Ю и И. Каплан. Материалы 2-го семинара по многозадачным вычислениям на гридах и суперкомпьютерах, MTAGS, 2009 г.
  3. ^ «Приобретение Сейсинта» . Архивировано из оригинала 21 июня 2011 г. Проверено 24 марта 2011 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4e87839d2202b48da67603e22f48987b__1651098840
URL1:https://arc.ask3.ru/arc/aa/4e/7b/4e87839d2202b48da67603e22f48987b.html
Заголовок, (Title) документа по адресу, URL1:
ECL (data-centric programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)