2012-07-07 3 views
0

나는 Hive 테이블을 가지고 있는데, 여기서 사용자 아이디에는 timeseries이며 배열로 저장된 ts 컬럼이 있습니다. 나는 최근 창문으로 시계추를 유지하고 싶다.하이브 배열에 어떻게 추가합니까?

(a) ID로 연결된 다른 테이블에서 각 열의 끝에 새 번호를 추가하려면 어떻게합니까? (b) 어떻게 앞 번호를 삭제합니까?

답변

0

하이브의 데이터는 일반적으로 HDFS에 저장됩니다. HDFS에는 추가 기능이 제한되어 있습니다. 데이터의 지속적인 수정이 분석 시스템의 핵심에 있다면 HBase 나 Cassandra와 같은 대안의 사용을 고려해야합니다.

그러나 데이터 업데이트가 워크 플로의 일부분이라면 하이브 (계속 SQL과 같은 기능을 사용하기 위해)를 계속 사용하면서이 업데이트를 저장하기위한 디자인을 재고하는 것이 좋습니다.

위의 문제를 빠르게 해결하려면 테이블에 사용자 ID 당 둘 이상의 레코드가 있어야합니다. 각 레코드에는 User ID에 해당하는 시간대가 있습니다. timeseries에 대한 마지막 N 분석을 수행하려면 사용자 ID 열에서 Distribute By을 사용하여 표에서 select를 수행해야합니다. 사용자 정의 감속기는 마지막 N 개 (또는 시계열의 크기가 N보다 작은 경우) 시간 소인을 선택하여 리턴합니다.

Harish Butani는 하이브의 Windowing 기능에 대한 작업도 수행했습니다. 더 많은 통찰력을 얻으려면 his workassociated documentation을 살펴볼 수도 있습니다. 행운을 비네, 알렉시!

관련 문제