일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- RStudio
- 그래프
- 연합학습
- TensorFlow
- Python
- Cypher
- Federated Learning
- 분산 병렬 처리
- 딥러닝
- TigerGraph
- Graph Ecosystem
- GraphX
- spark
- SparkML
- DeepLearning
- GSQL
- 빅데이터
- Neo4j
- SQL
- 인공지능
- BigData
- r
- 그래프 데이터베이스
- 그래프 에코시스템
- graph database
- GDB
- Graph Tech
- RDD
- graph
- 그래프 질의언어
- Today
- Total
Hee'World
[1004jonghee]Pig란? 본문
-- 출처 http://blrunner.com/18 --
-- 출처 http://blog.acronym.co.kr/372 --
Pig
야후에서 개발되었으나 현재는 아파치 프로젝트에 속해있습니다. 복잡한 MapReduce 프로그래밍을 대체할 Pig Latin이라는 자체 언어를 제공합니다. MapReduce API를 매우 단순화시키고, SQL과 유사한 형태로 설계됐습니다. SQL과 유사하기만 할 뿐, 기존 SQL 지식을 활용하는 것이 어려운 편입니다. (공식 사이트: http://pig.apache.org)
피그는 대용량 데이터셋을 좀 더 고차원적으로 처리할 수 있도록 합니다. 맵리듀스에서 처리할 수 없는 부분들을 지원하는데, 조인과 같은 연산이 대표적인 예 입니다. 즉, 피그는 다중 값과 중첩된 형태를 보이는 좀 더 다양한 데이터 구조를 지원하고, 데이터에 적용할 수 있는 변환 종료도 훨씬 더 강력하다고 합니다.
피그는 피그라틴과 실행환경의 두가지로 이루어져 있습니다.
- 데이터 흐름을 표현하기 위해 사용하는 피그 라틴이라고 하는 언어
- 피그 라틴 프로그램을 수행하는 실행 환경, 현재 단일 JVM에서의 로컬 실행 환경과 하둡 클러스터 상의 분산 실행 환경 두 종류가 있습니다.
다시 말해서 피그는 대용량 데이터 셋을 다루기 위한 스크립트 언어입니다. 내부적으로 피그는 연속된 맵리듀스 작업으로 변경하지만, 대부분 개발자는 이것을 눈치채지 못하게 되므로 데이터 자체에 집중할 수 있게 된다. 즉, 개발이 복잡하고, 시간이 오래 걸리는 맵리듀스의 단점을 보완하기 위한 것이다. 또한 피그는 확장 할 수 있도록 설계되어 있습니다. 로딩, 저장, 필터링, 그룹핑, 정렬, 조인등의 모든 부분이 사용자 정의 함수에 의해 사용자가 원하는 대로 변경할 수 있습니다. 하지만 피그도 맵리듀스와 마찬가지로 데이터의 배치 처리를 위해 설계되어 있으므로 모든 데이터 처리 업무에 적합한 것은 아닙니다. 그리고 내부적으로 맵리듀스로 변환해서 실행해야 하므로 맵리듀스로 작성된 프로그램만큼 좋은 성능을 내지는 못합니다. 기존 맵리듀스보다는 과부하가 불가피하게 발생하게 됩니다.
피그 프로그램을 실행하는 방법에서 다음과 같은 세가지가 있습니다.
- 스크립트 : 피그는 피그 명령어가 포함된 스크립트 파일을 실행할 수 있습니다.
- 그런트 : 그런트는 피그 명령어를 실행하는 대화형 쉘입니다.
- 내장형 : JDBC를 사용해서 Java에서 SQL 프로그램을 실행하는 것처럼 Java에서 피그 프로그램을 실행할 수 있습니다.
피그 라틴 언어를 위한 편집기가 "PigPen" 이라는 이름의 이클립스 플러그인으로 있다고 합니다.
'BigData > Pig' 카테고리의 다른 글
[1004jonghee]Pig 설치하기 (0) | 2013.07.23 |
---|