현재 Hive를 사용하여 보고서를 생성하는 HDFS 클러스터에 대한 데이터가 있습니다. 인프라가 폐업되는 과정에서 우리는 데이터에 대한 보고서를 생성하는 대신에 탭으로 구분 된 파일을 새 환경으로 가져 오는 대안을 생각해 내야합니다.SQL 쿼리를 unix sort, uniq 및 awk로 바꾸기
테이블에는 다음 필드가 있습니다. 우리가 하이브에서 실행하는 데 사용
- 쿼리
- 하여 IPAddress
- LocationCode
우리의 원래 SQL 쿼리이었다 (물론 정확히 ..하지만 비슷한)
select
COUNT(DISTINCT Query, IPAddress) as c1,
LocationCode as c2,
Query as c3
from table
group by Query, LocationCode
I sort, uniq 및 awk와 같은 표준 유닉스/리눅스 도구를 사용하여 가장 효율적인 스크립트를 제공 할 수 있는지 궁금합니다. 위의 쿼리를 대신 할 수 있습니다.
스크립트 입력이 텍스트 파일의 디렉토리라고 가정합니다. dir은 약 2000 개의 파일을 포함합니다. 각 파일 형식의 탭으로 구분 된 기록의 임의의 숫자를 포함합니다 :
Query <TAB> LocationCode <TAB> IPAddress <NEWLINE>
파일 당 대략 몇 줄입니까? –
@ 수천 명의 부부 .. 다를 수 있습니다. 가장 큰 파일 크기는 약 2MB로 450KB 정도입니다. –
집계하는 필드 중 하나를 기준으로 그룹화 할 때 원본 쿼리가 이상하게 보입니다. 즉, 고유 한 개수는 'count (distinct IPAddress)'일 수 있습니다. 이 쿼리가 있어야합니까? –