- Today
- Total
목록hive (2)
내 머릿속 데이터베이스
다수의 테이블을 합쳐서 통계를 산출 시에 UNION을 많이 사용하게 된다. UNION과 UNION ALL의 차이는 다들 알고 있으리라 언급하자면 중복 데이터를 제거하는 과정이 UNION에 포함되어있다. 테이블을 합칠 때 UNION으로 합치게 되면 각 테이블마다 정렬이 들어가는 것을 실행계획을 통계 알 수 있다.(그래서 느리다.) UNION ALL 을 사용하게 되면 중복 상관없이 그냥 합쳐주기만 해서 빠르다.다수의 테이블인 경우엔 각 테이블마다 중복데이터를 제거해가면서 합치는 것보다 일단 다 합쳐놓고 중복데이터를 제거하는게 빠르다. 실제로 UNION을 이용한 쿼리에선 HIVE의 CBO(Cost-based Optimizer)가 동작하지 않는다. UNION ALL을 이용하여 테이블을 합치려다가 HIVE는 CT..
파이썬에서 Mysql을 접속하는 방법은 PyMysql 라이브러리를 이용하는 편이다. 그래서 Hive를 접속하려고 pyHive를 받아보았으나 에러가 펑펑 난다. 알아보니 개발이 늦다. hive를 접속할 수 있는 라이브러리들을 뒤지기 시작했고, pyhs2 요놈을 또 많이들 쓴다고는 하는데 깃헙을 보면 알겠지만 개발자도 포기했다. 따라서 마지막 방법은 ODBC를 활용하는 것이었고, 나는 hortonworks 하둡을 사용하니, 호튼웍스에서 odbc를 다운받아 설치하였다. 도큐멘트 항목을 읽어보니 driver항목의 명시를 조금 특이하게 하는 것 같아서 접속이 안되고, 직접 ODBC 설정으로 dsn을 생성해서 DNS명으로 접속해야 했다. import pyodbc cnxn = pyodbc.connect('DSN=HI..