Sawzall(프로그래밍 언어)
Sawzall (programming language)개발자 | 구글 |
---|---|
처음 등장한 | 전( |
면허증. | Apache 라이센스 2.0 |
웹 사이트 | code |
Sawzall은 절차 도메인별 프로그래밍 언어로, Google에서 다수의 개별 로그 레코드를 처리하는 데 사용됩니다.Sawzall은 2003년에 [1]처음 기술되었으며, szl 런타임은 2010년 [2]8월에 오픈 소스되었습니다.그러나 MapReduce 테이블 애그리게이터는 [3]출시되지 않았기 때문에 오픈 소스 런타임은 기성 여러 로그 파일의 대규모 데이터 분석에는 유용하지 않습니다.소잘은 구글 [4]내에서 대부분의 목적을 위해 Lingo(로그인고)로 대체되었다.
동기
Google의 서버 로그는 GFS 내의 여러 디스크에 분할된 대규모 레코드 모음(프로토콜 버퍼)으로 저장됩니다.로그와 관련된 계산을 수행하기 위해 엔지니어는 C++ 또는 Java에서 MapReduce 프로그램을 작성할 수 있습니다.MapReduce 프로그램을 컴파일해야 하며 필요 이상으로 상세할 수 있습니다.따라서 로그를 분석하기 위한 프로그램을 작성하는 것은 시간이 걸릴 수 있습니다.빠른 스크립트 작성을 용이하게 하기 위해 Rob Pike 등은 Sawzall 언어를 개발했습니다.Sawzall 스크립트는 MapReduce의 Map 단계 내에서 실행되며 값을 테이블에 "emit"합니다.다음으로 Reduce 단계(스크립트 작성자가 걱정할 필요가 없음)에서는 여러 실행의 테이블을 단일 테이블세트로 집약합니다.
현재 언어 런타임(Sawzall 스크립트를 한 번 입력으로 실행)[3]만 오픈 소싱되어 있으며 MapReduce에 구축된 지원 프로그램은 출시되지 않았습니다.
특징들
몇 가지 흥미로운 기능은 다음과 같습니다.
- Sawzall 스크립트에는 단일 입력(로그 레코드)이 있어 테이블에 송신하는 것만으로 출력할 수 있습니다.스크립트에는 다른 부작용이 없습니다.
- 스크립트는 임의의 수의 출력 테이블을 정의할 수 있습니다.테이블 유형은 다음과 같습니다.
collection
방출되는 모든 값 저장sum
방출된 모든 값의 합계를 저장합니다.maximum(n)
는 소정의 무게에 대해 상위n개의 값만 저장합니다.
- 또한 부정확한 결과를 제공하는 몇 가지 통계 테이블 유형이 있습니다.모수 n이 클수록 추정치가 더 정확합니다.
sample(n)
방출된 모든 값에서 n개의 값의 랜덤샘플을 제공합니다.quantile(n)
지정된 숫자의 누적 확률 분포를 계산합니다.top(n)
는 아마도 방출된 값 중 가장 빈도가 높은n개의 값을 나타냅니다.unique(n)
는, 방출되는 일의의 값의 수를 추정합니다.
Sawzall의 디자인은 동력보다 효율성과 엔진의 단순성을 선호합니다.
- Sawzall은 정적으로 입력되며 엔진은 스크립트를 실행하기 전에 x86으로 컴파일합니다.
- Sawzall은 복합 데이터 유형 목록, 맵 및 구조를 지원합니다.그러나 참조나 포인터는 없습니다.모든 할당 및 함수 인수에 의해 복사본이 생성됩니다.즉, 재귀적인 데이터 구조 및 주기는 불가능합니다.
- C와 마찬가지로 함수도 전역 변수와 로컬 변수를 수정할 수 있지만 폐쇄는 아닙니다.
소잘 코드
이 완전한 Sawzall 프로그램은 입력을 읽고 세 가지 결과를 생성합니다. 레코드 수, 값의 합계, 값의 제곱합입니다.
카운트: 표합 int; 합계: 표합 플로트; 표합_of_float: 표합 플로트; x: 플로트= 입력; 방출 카운트<- x; 방출 합계<- x;
「 」를 참조해 주세요.
- Pig – Apache Hadoop과 함께 사용할 수 있는 유사한 툴 및 언어
- 제재소(소프트웨어)
레퍼런스
- ^ 롭 파이크, 숀 도워드, 로버트 그리시머, 숀 퀸랜입니다데이터 해석: Sawzall을 사용한 병렬 분석
- ^ 구글 코드에 있는 쏘잘의 오픈 소스 프로젝트.
- ^ a b Sawzall의 어떤 부분이 오픈 소스인지에 대한 논의.
- ^ "Replacing Sawzall". 2015-12-04. Retrieved 2018-06-18.
추가 정보
- S. Ghemawat, H. Gobioff, S.-T. Leung, Google 파일 시스템, 운영체제 원리, 절차, 17 ACM Press, 2003, 페이지 29~43에 수록되어 있습니다.