나의 사용 사례 중 하나에서 전통적인 SQL 기반웨어 하우징 응용 프로그램을 하이브로 마이그레이션하려고합니다. 나는 HiveQL이 아닌 SQL의 전문가도 아닙니다. 그러나 테이블을 만들고 csv를 하이브 테이블로 가져 오는 데 성공했습니다. 그러나 하이브 QL에서 SQL 기반 분석 쿼리를 복제하는 동안 도로 블록을 공격했습니다. 웹 로그 분석 알고리즘 중 하나에서, 우리는 내가이 HiveQL에서 수행 얻기 위해 고군분투 HiveQL에서 변수 값 생성 및 합계
var x = query1
var y = query2
var z = query3
var count = x + y + z
아래처럼, 그 변수의 합을 여러 변수를 작성하고 계산해야합니다.
실제로 이러한 변수는 모두 하나의 열을 형성하고 하나 이상의 열은 var1, var2 및 var3의 합계를 전달하는 합계입니다. 특정 행의 열, 즉 var1, var2 및 var3에 값을 추가하고 그 열의 총 열에 값을 저장하는 데 사용할 수있는 합계와 같은 집계 함수가 있습니까?
다음과 같이 할 수 있습니까? 테이블 TEMP 자체를 생성하는 동안 하이브에게 말할 수 있습니까? 위에서 할 수없는 경우
INSERT INTO TABLE TEMP VALUES (1, 2, 1+2);
, 나는 내가 하이브 편집기에서 모든 쿼리와 문을 작성하는 색조 proviedes 및 화재 아파치 색조를 사용하고 선호하고 아래의 해결 방법
DROP TABLE T_TEMP;
DROP TABLE VARI;
CREATE TABLE VARI(value INT);
INSERT INTO TABLE VARI VALUES(1);
INSERT INTO TABLE VARI VALUES(2);
CREATE TABLE T_TEMP(var1 INT, var2 INT, total INT);
INSERT INTO TABLE T_TEMP
SELECT
1,
2,
sum(t.value)
from VARI as t;
시도 결국 쿼리.
a) 임시 열에 쓰는 것, b) INSERT에 값을 직접 추가하는 것 이외에 다른 유용한 방법이 있습니까? 나는 변수 x, y, z를 가지며 count = x + y + z를 더할 수있는 것을 선호한다.
x, y, z는 무엇입니까 ?? –
그것은 나쁜 편집이었습니다. 자, 내가 시도한 몇 가지 해결 방법에 대한 내 질문을 편집했습니다. 그러나 여전히 성공하지 못했습니다. – Bala
죄송합니다. 내 검색어가 잘못되었습니다. 나는 쿼리를 고쳤고 이제 sum()과 2 + 3 inline을 모두 수행 할 수있다. 감사합니다 – Bala