자크루

Jaql
자크루
패러다임기능하다
설계자Vuk Ercegovac (구글)
처음 등장한2008년 10월 9일, 13년 전(2008년 10월 9일)
안정된 릴리스
2010년 7월 12일 / 0.5.1, 11년 전(2010-07-12)
구현 언어자바
OS크로스 플랫폼
면허증.Apache 라이센스 2.0
웹 사이트code.google.com/p/jaql/m
주요 구현
IBM BigInsights

Jaql('jackal'로 발음)은 빅데이터에 대한 JSON 쿼리 처리에 가장 일반적으로 사용되는 기능 데이터 처리 및 쿼리 언어입니다.

구글의 오픈[1] 소스 프로젝트로 시작했지만, 가장 최근의 릴리스는 2010년 7월 12일이었다.IBM[2] Hadoop 소프트웨어 패키지 BigInsights의 기본 데이터 처리 언어로 이 언어를 넘겨받았습니다.

JSON용으로 개발되었지만 CSV, TSV, XML다양한 데이터 소스를 지원합니다.

PIG Latin 및 Hive QL과 같은 다른 BigData 쿼리 언어와의 비교는[3] 이러한 기술의 성능과 사용 편의성을 보여줍니다.

Jaql은[4] 느린 평가를 지원하므로 표현식은 필요한 경우에만 구체화됩니다.

구문

Jaql의 기본 개념은

원천 -> 교환입니다.(파라미터) -> 가라앉다 ; 

여기서 싱크대는 다운스트림 오퍼레이터의 소스가 될 수 있습니다.따라서 일반적으로 Jaql 프로그램에는 데이터 처리 그래프를 나타내는 다음과 같은 구조가 필요합니다.

원천 -> 오퍼레이터 1(파라미터) -> 오퍼레이터 2(파라미터) -> 오퍼레이터 2(파라미터) -> 오퍼레이터 3(파라미터) -> 오퍼레이터 4(파라미터) -> 가라앉다 ; 

대부분의 경우 읽기 쉬운 이유로 Jaql 프로그램은 Twitter Scalding에서 흔히 사용되는 관용어처럼 화살표 뒤에 줄 바꿈이 표시됩니다.

원천 -> 오퍼레이터 1(파라미터) -> 오퍼레이터 2(파라미터) -> 오퍼레이터 2(파라미터) -> 오퍼레이터 3(파라미터) -> 오퍼레이터 4(파라미터) -> 가라앉다 ; 

코어[5] 오퍼레이터

확대한다.

중첩된 어레이를 평평하게 만들려면 EXPAND 식을 사용합니다.이 식은 네스트된 배열[ [ T ]의 배열을 입력으로 하여 각 네스트된 배열의 요소를 최상위 출력 배열로 승격함으로써 출력 배열[ T ]을 생성합니다.

필터

FILTER 연산자를 사용하여 지정된 입력 배열에서 요소를 필터링합니다.이 연산자는 T형 요소의 배열을 입력으로 받아 같은 유형의 배열을 출력하며 술어가 참으로 평가된 요소를 유지합니다.SQL WHERE 절과 동등한 Jaql입니다.예:

데이터. = [   {이름.: 신원미상, 소득.: 20000, 부장님: 거짓의},   {이름.: 빈스 웨인, 소득.: 32500, 부장님: 거짓의},   {이름.: 제인 딘, 소득.: 72000, 부장님: 진실의},   {이름.: 앨릭스 스미스, 소득.: 25000, 부장님: 거짓의} ];  데이터. -> 필터 $.부장님;  [   {     "수입': 72000,     '매니저": 진실의,     "이름: 제인 딘   } ]  데이터. -> 필터 $.소득. < > 30000;  [   {     "수입': 20000,     '매니저": 거짓의,     "이름: 신원미상   },   {     "수입': 25000,     '매니저": 거짓의,     "이름: 앨릭스 스미스   } ] 

그룹.

GROUP 식을 사용하여 그룹 키에서 하나 이상의 입력 배열을 그룹화하고 그룹별로 집계 함수를 적용합니다.

합류하다

JOIN 연산자를 사용하여 두 개 이상의 입력 배열 간의 조인을 표현합니다.이 연산자는 내추럴, 좌측-외측, 우측-외측 및 외부 조인을 포함한 여러 유형의 조인을 지원합니다.

종류

하나 이상의 필드를 기준으로 입력을 정렬하려면 SORT 연산자를 사용합니다.

정상

TOP 식은 입력의 첫 번째 k개 요소를 선택합니다.비교기가 제공되는 경우 출력은 의미론적으로 입력을 정렬한 다음 첫 번째 항목을 선택하는 것과 동일합니다.k요소들.

변혁

TRANSFORM 연산자를 사용하여 투영을 실현하거나 출력의 모든 항목에 함수를 적용할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

외부 링크