728x90
반응형
하이브 QL
하이브는 하둡에 있는 파일(데이터)들을 SQL을 사용해 조회하고 분석할 수 있게 해줍니다.
지난 포스팅에서 설치한 하이브로 기본적인 데이터 조회를 해보도록 하겠습니다.
데이터베이스 만들기
먼저 데이터베이스를 만들어보겠습니다.
hive명령어로 실행한 뒤 다음 MySQL을 입력해 항공 데이터베이스를 생성합니다.
(테이블에 대한 Comment는 제외했습니다.)
hive> CREATE TABLE airline_delay(Year INT, Month INT, DayOfMonth INT, DayOfWeek INT,
DepTime INT, CRSDepTime INT, ArrTime INT, CRSArrTime INT,
UniqueCarrier STRING, FlightNum INT, TailNum STRING, ActualElapsedTime INT,
CRSElapsedTime INT, AirTime INT, ArrDelay INT, DepDelay INT,
Origin STRING, Dest STRING, Distance INT, TaxiIn INT,
TaxiOut INT, Cancelled INT,
CancellationCode STRING COMMENT 'A=carrier, B=weather, C=NAS, D=security',
Diverted INT COMMENT '1=yes, 0=no',
CarrierDelay STRING, WeatherDelay STRING, NASDelay STRING,
SecurityDelay STRING, LateAircraftDelay STRING)
PARTITIONED BY (delayYear INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
데이터베이스를 만들었으면 확인을 해보겠습니다.
hive> describe airline_delay;
다음과 같은 결과가 나오면 성공한것입니다.
OK
year int
month int
dayofmonth int
dayofweek int
deptime int
crsdeptime int
arrtime int
crsarrtime int
uniquecarrier string
flightnum int
tailnum string
actualelapsedtime int
crselapsedtime int
airtime int
arrdelay int
depdelay int
origin string
dest string
distance int
taxiin int
taxiout int
cancelled int
cancellationcode string A=carrier, B=weather, C=NAS, D=security
diverted int 1=yes, 0=no
carrierdelay string
weatherdelay string
nasdelay string
securitydelay string
lateaircraftdelay string
delayyear int
# Partition Information
# col_name data_type comment
delayyear int
Time taken: 0.167 seconds, Fetched: 35 row(s)
데이터 주입
이제 하둡 1.0에서 사용했던 항공데이터를 주입하도록 하겠습니다.
항공 데이터 관련 자료는 다음 링크의 포스팅에 나와있습니다.
https://jyoondev.tistory.com/48
doop01 기기의 로컬에 ~/input 폴더 안에 데이터가 있다고 가정하고 hive에서 다음 스크립트를 실행합니다.
hive> LOAD DATA LOCAL INPATH '/home/doop/input/2008.csv'
OVERWRITE INTO TABLE airline_delay
PARTITION (delayYear='2008');
위의 스크립트를 실행하면 hive가 파일을 주입하기 시작합니다.
데이터 조회
데이터가 모두 들어가면 다음 select문으로 데이터를 조회해봅니다.
hive> select year, month, deptime, arrtime, uniquecarrier, flightnum
from airline_delay
where delayYear ='2008'
limit 10;
성공하면 다음과 같은 집계 결과가 나옵니다.
OK
2008 1 2003 2211 WN 335
2008 1 754 1002 WN 3231
2008 1 628 804 WN 448
2008 1 926 1054 WN 1746
2008 1 1829 1959 WN 3920
2008 1 1940 2121 WN 378
2008 1 1937 2037 WN 509
2008 1 1039 1132 WN 535
2008 1 617 652 WN 11
2008 1 1620 1639 WN 810
Time taken: 1.416 seconds, Fetched: 10 row(s)
하이브QL은 기존 SQL언어들과 조금 차이점이 있고, 그것은 대부분 hdfs가 파일을 수정할 수 없기때문에 생기는 부분입니다.
728x90
반응형
'빅데이터 > 하둡 2' 카테고리의 다른 글
하둡 2.0 튜토리얼 - (11) 스쿱 데이터 임포트 (0) | 2019.07.25 |
---|---|
하둡 2.0 튜토리얼 - (10) 아파치 스쿱 설치 (0) | 2019.07.25 |
하둡 2.0 튜토리얼 - (8) 하이브 MySQL 메타스토어 (0) | 2019.07.23 |
하둡 2.0 튜토리얼 - (7) 아파치 하이브 설치 (0) | 2019.07.23 |
하둡 2.0 튜토리얼 - (6) 얀 명령어 (0) | 2019.07.22 |