ECL(데이터 중심 프로그래밍 언어)

ECL (data-centric programming language)
ECL
패러다임선언적이고 구조적이며 데이터 중심적인
개발자HPCC Systems®, LexisNexis 위험 솔루션
첫 등장2000
타이핑 규율정적, 강력, 안전
OS리눅스
웹사이트http://hpccsystems.com/
영향을 받은
프롤로그, 파스칼, SQL, 로제톨4, C++, 클라리온

ECL(Enterprise Control Language)은 프로그래머 팀이 높은 성능의 컴퓨팅 클러스터 전반에서 빅 데이터를 처리할 수 있도록 하기 위해 2000년에 고안된 선언적이고 데이터 중심 프로그래밍 언어다.[1][2]

역사

ECL은 당초 데이비드 베일리스가 세이신트 주식회사 내 사내 생산성 도구로 2000년 설계·개발한 것으로, 세이신트가 데이터 사업에서 시장 점유율을 확보할 수 있는 '비밀병기'로 평가받았다.에퀴팩스는 앞으로 30일 안에 누가 파산할지 예측하는 SQL 기반 공정이 있었지만 데이터를 실행하는 데 26일이 걸렸다.첫 ECL 시행으로 같은 문제를 6분 만에 해결했다.이 기술은 렉시스넥시스가 세이신트를 인수한 원동력으로 꼽혔고, 렉시스넥시스가 초이스포인트를 인수하면서 다시 주요 시너지원으로 꼽혔다.[3]

언어 구성 요소

ECL은 적어도 가장 순수한 형태로는 선언적이고 데이터 중심적인 언어다.가장 엄밀한 의미에서 프로그램은 존재하지 않는다.오히려 ECL 애플리케이션은 다수의 핵심 데이터셋(또는 데이터 값)을 지정하고 그 값에 대해 수행할 작업을 지정한다.

안녕 세계

ECL은 문제와 합리적인 채무 불이행에 대한 간결한 해결책을 가지고 있어야 한다."Hello World" 프로그램은 성격적으로 짧다.

'헬로 월드'

아마도 좀 더 풍미가 있는 예시라면 문자열 목록을 순서대로 정렬하고 그 결과로 그것을 반환할 것이다.

// 문자열 목록을 포함하는 하나의 열로 데이터 집합을 먼저 선언 // 데이터셋은 이진, CSV, XML 또는 외부에서 정의된 구조일 수도 있음  D := 데이터 집합([{'ECL'},{'선언'},{'데이터'},{'중심'},{'프로그래밍'},{'언어'}],{ 가치;}); SD := SURT(D,가치); 생산량(SD) 

다음 문구를 참조하십시오.:=ECL에서 속성 정의로 정의된다.그들은 행동을 의미하는 것이 아니라 용어의 정의를 의미한다.따라서 논리적으로 ECL 프로그램을 읽을 수 있다: "아래에서 위로"

출력(SD)

SD란 무엇인가?

 SD := SURT(D,가치); 

SD는 '값'에 의해 정렬된 D이다.

D란 무엇인가?

 D := 데이터 집합([{'ECL'},{'선언'},{'데이터'},{'중심'},{'프로그래밍'},{'언어'}],{ 가치;}); 

D는 '값'이라는 레이블이 붙은 하나의 열이 있고 다음과 같은 데이터 목록을 포함하는 데이터 집합이다.

ECL 원시 요소

데이터 집합에 작용하는 ECL 원시 요소에는 SORT, ROLLUP, DEDUP, ITREP, 프로젝트, 조인, 정규화, DNORMALISZE, PARSE, 선택, ENTH, TOPN, 배포가 포함된다.

ECL 캡슐화

ECL은 terse이고 LexisNexis는 ECL의 1라인이 대략 120라인의 C++에 해당한다고 주장하지만, 데이터 캡슐화, 코드 재사용을 포함한 대규모 프로그래밍에 대해서는 여전히 상당한 지지를 받고 있다.이용 가능한 구조로는 모듈, 기능, 기능맥로, 인터페이스, 매크로, 내보내기, 공유 등이 있다.

ECL의 병렬화 지원

HPCC 구현에서 기본적으로 대부분의 ECL 구성은 사용 중인 하드웨어에 걸쳐 병렬로 실행된다.또한 많은 원시 요소에는 작업이 각 노드에서 로컬로 수행되도록 지정하는 LOCAL 옵션이 있다.

맵-리듀스 비교

Hadoop Map-Reduce 패러다임은 다음과 같은 ECL 원시 요소와 상관관계가 있는 3단계로 구성된다.

하둡 이름/기간 ECL 등가 평.
MAPPER 내의 MAPING 프로젝트/트랜스포메이션 레코드를 가져와 다른 형식으로 변환, Hadoop의 경우 키 값 쌍으로 변환
셔플(1단계) DEPLOY(,HASH(KeyValue)) 매퍼의 레코드는 KEY 값에 따라 분배된다.
SHUFFLE(2단계) SORT(,LOCAL) 특정 환원기에 도착하는 기록은 KEY 순서에 따라 분류된다.
줄이다 롤업(,키,로컬) 이제 특정 KEY 값에 대한 레코드가 결합됨

참조

  1. ^ ECL 가이드, 렉시스-넥시스
  2. ^ A의 「대규모 그래프 분석을 위한 데이터 흐름 시스템의 이용 평가」.유, 그리고 I. 카플란.MTAGS, 2009년 제2차 그리드 및 슈퍼컴퓨터의 다목적 컴퓨팅 워크숍 개최
  3. ^ "Acquisition of Seisint". Archived from the original on 2011-06-21. Retrieved 2011-03-24.

외부 링크