Apache Pig는 데이터 분석 프로그램을 표현하기 위한 high-level 언어로 구성된  대용량 데이터 셋 분석을 위한 플랫폼이다. 또 이들 프로그램을 평가하기 위한 infrastructure 와 짝을 이룬다. Pig 프로그램의 두드러지는 특성은  튼튼한 병렬화를 위한 구조가  의무적이다. 이것은 매우 큰 데이터 셋을 다룰 수 있도록 한다.

현재에는 Pig의 infrastruture 레이어는 이미 존재하는 대용량 병령 구현물들의 Map-Reduce 프로그램의 순서를 실행하는 컴파일러로 구성된다. Pig의 언어 레이어는 Pig Latin으로 불리는 본문 언어로 구성된다. 이 언어는 다음 핵심 특성을 가진다.

  • 프로그래밍 하기 쉽다. 간단한 “놀랍게도 병렬” 데이터 분석 테스크의 병렬 실행을 달성하는 것은 평범한 일이다. 여러 개의 밀접한 관계의 데이터 변환으로 구성된 복잡한 태스크도 명쾌하게 데이터 플로우 시퀀스로 인코드 된다. 이 데이터 플로우는 복잡한 테스크를  쓰고, 이해하고, 유지하기 쉽게 만든다.
  • 최적화 기회. 테스크를 인코드하는 방법은 시스템이 자동적으로 실행을 최적화하도록 허가한다. 이는 용자는 효율성 보다는 시멘틱에 집중하도록 한다.
  • 확장성. 사용자는 특별한 목적의 처리를 하기 위한 자신 만의 함수를 작성할 수 있다.

Reference

Posted by 김민우 julingks