일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- TIP
- transaction
- Hadoop
- max중첩
- Scala
- form
- 전화영어
- Migration
- programming
- java
- fileUploader
- minitest
- uploader
- 점심영어스터디
- mysql
- apache spark
- RoR
- Shell
- carrierwave
- Ruby on Rails
- share
- fixture
- activerecord
- rubyonrails
- test
- 삽질기
- Ruby
- programmingTip
- Linux
- Rails
Archives
- Today
- Total
아침바라기의 이야기
Presto에서 쿼리 사용기 본문
느리지만 매우 안정적인 Hive의 대안으로 Presto를 사용 중이다.
통계용 데이터를 쿼리로 만들던 중에 팁 몇가지 정리해본다.
(Presto + Hive + Hadoop 2.0 + MySQL 연동)
1. 하이브로의 INSERT는 불가능하다
* 아직 지원하지 않는다. (UPDATE는 아예 메뉴얼에도 없다!)
* 결과를 저장하려면 CREATE AS 문을 사용하면 테이블로 저장할 수 있다.
* 아래처럼...
CREATE TABLE visit_log AS SELECT log_date, detail FROM raw_log
2. 서브쿼리를 사용할 수 없다
* 역시 아직 지원하지 않는다.
* 대안으로 join과 inner view를 사용할 수 있다.
SELECT t.id, c.val AS code FROM table t INNER JOIN (SELECT id, related_id FROM code LIMIT 1 ) c ON t.id = c.relate_id
위의 예제처럼 inner view를 무수히 많이 만들어서 처리할 수 있다.
(개인적인 선호도로는 inner view 보단 create as 로 테이블을 만들어서 처리하는게 더 낫지 않을까 싶다)
3. JSON 타입이 있어 column['key'] 형태로 데이터를 조회할 수 있다.
SELECT t.option['enable_script'] FROM table t
* 이글은 Presto 0.115 버전 기준으로 작성되었습니다.