본문 바로가기

Study/class note

(247)
하둡 / 몽고디비 NoSQL 사용하기, csv파일 로드(리눅스os, 하둡) 50 몽고디비에서 NoSQL 사용하기 예제1. 부서번호가 10번인 사원들의 사원번호, 이름, 월급을 조회하시오. sql > select ename, sal from emp where deptno = 10; mongo > db.emp.find({deptno:{$eq:10} }, {_id:0,empno:1,ename:1,sal:1} ) { "empno" : 7782, "ename" : "CLARK", "sal" : 2450 } { "empno" : 7839, "ename" : "KING", "sal" : 5000 } db.테이블명.find( { 검색조건 } , {출력 하고싶은 컬럼} ) 검색조건 => 컬럼명 : {연산자:값} 출력 하고싶은 컬럼명 => 컬럼명:1 (_id는 항상 출력되기 때문에 안나오게 0을..
하둡 / 하이브 파티션 테이블 2 hive> select count(*) > from airline_delay > where delayYear='1994' and month =3; 435516 대용량 테이블을 구성할 때는 파티션 테이블 생성을 고려해야합니다. 만약 파티션 테이블을 구성했다면 위와 같은 SQL을 수행할 때 해당 파티션만 스캔을 하기 때문에 검색속도가 빨라집니다. 여기에 인덱스까지 걸어주게 되면 더 좋은 검색속도를 경험할 수 있습니다. 파티션된 테이블에 생성하는 인덱스를 local index라고 하고 파티션 되지 않은 테이블에 생성하는 인덱스를 global index 라고 합니다. global index는 테이블이 큰 만큼 인덱스의 크기도 커지기 때문에 성능이 느릴 수밖에 없습니다. 그래서 local index를 권장합니다...
하둡 / 하둡 파일 시스템에 하이브에서 파티션 테이블 생성하기 ㅇ미국 항공 데이터 다운로드 https://community.amstat.org/jointscsg-section/dataexpo/dataexpo2009 데이터 설명 : 1987 ~ 2008년까지의 미국 내 모든 상업 항공편에 대한 항공편 도착,출발,세부사항에 대한 정보를 제공하는 데이터입니다. 이 모든 데이터를 다 내려받고 압축을 풀 경우 11GB입니다. 이 통계 데이터는 총 29개의 컬럼으로 구성되어 있습니다. 48 하둡 파일 시스템에 하이브에서 파티션 테이블 생성하기 일반 테이블 파티션 테이블 하나의 서랍장에 모든 데이터를 다 넣어놓은 테이블 그룹별로 구분 지어서 데이터를 넣어놓은 테이블 (엑셀 sheet 생각하면 될 듯?) 파티션 테이블은 테이블을 전체 스캔하지 않고 특정 파티션만 스캔합니다. 일반..
하둡 / 스파크에서 스파크 SQL 사용하기 47 스파크에서 스파크 SQL 사용하기 스파크에서 emp테이블 생성하고 쿼리하기 예제1. emp테이블을 drop하는 명령어 scala> sql("drop table emp") -> emp테이블이 없어서 drop할 게 없기때문에 쿼리 실행하면 자바 에러가 잔뜩 발생함. 예제2. hive SQL을 스파크에서 사용하겠다고 지정합니다. scala> val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc) 예제3. emp테이블을 생성합니다. scala> sqlContext.sql("create table IF NOT EXISTS emp( empno int, ename string,job string, mgr int, hiredate string, sal in..
하둡 / 스파크 설명, 스파크 설치 ㅇ복습 1. 리눅스 설치 2. 리눅스 기본 명령어 3. vi편집기 명령어 4. 마리아 디비 설치(SQL) 5. 아나콘다 설치 6. 하둡 설치 7. 하이브 설치 oracle, mysql, mariadb -> 정형화된 데이터 하둡, 하이브, 스파크 -> 비정형화된 데이터 데이터전처리 -> 테이블 생성 -> 시각화 -> 분석결과 해석 문제해결 경험들이 중요함. 45 스파크란 무엇인가? ㅇ스파크(spark)란? 하둡의 단점을 개선하기 위해 나온 소프트웨어인데 하둡의 단점이 디스크(disk)에서 데이터를 처리하기 때문에 속도가 느림. 그래서 스파크는 메모리(memory)에서 데이터를 처리합니다.(속도가 아주 빠름) ㅇ하둡의 핵심 엔진 2가지 1. 하둡 파일 시스템(hdfs) 2. 맵리듀싱 ㅇ하둡의 맵리듀싱? 매핑..
하둡 / 영화평점에 대한 큰 데이터를 내려받아 hive 에서 분석하기 44 영화평점에 대한 큰 데이터를 내려받아 hive 에서 분석하기 1. 먼저 대용량 텍스트 파일의 압축파일을 다운로드 받습니다.(putty에서 oracle유저로 수행하시오) (모바텀으로 올리면 됩니다.) 2. 압축파일이 잘 올라갔는지 확인합니다. (base) [oracle@centos ~]$ ls -l *.zip -rw-rw-r--. 1 oracle oracle 5917549 3월 24 11:45 ml-1m.zip 3. 위의 압축파일의 압축을 해제합니다. (base) [oracle@centos ~]$ unzip ml-1m.zip Archive: ml-1m.zip creating: ml-1m/ inflating: ml-1m/movies.dat inflating: ml-1m/ratings.dat inflat..
하둡 / NoSQL 하이브 SQL 사용하기2 ㅇHive에서 사용하는 데이터 분석함수 1. rank 2. dense_rank 3. ntile 4. listagg(oracle) -------> concat_ws(hive) 5. 누적 데이터 출력 6. lag, lead 문제265. 입사년도(4자리), 입사한 연도별로 속한 사원들의 이름을 가로로 출력하시오. oracle > select to_char(hiredate,'RRRR'), listagg(ename,',') within group (order by ename) from emp group by to_char(hiredate,'RRRR'); hive> select year(to_date(hiredate)), concat_ws(',',collect_set(ename)) > from emp > group..
하둡 / NoSQL 하이브 SQL 사용하기 43 NoSQL 하이브 SQL 사용하기 문제249. 직업이 SALESMAN인 사원들의 이름과 직업과 월급을 출력하시오. hive> select ename, job, sal > from emp > where job='SALESMAN'; MARTIN SALESMAN 1250 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 WARD SALESMAN 1250 Time taken: 4.25 seconds, Fetched: 4 row(s) 문제250. 직업, 직업별 토탈월급을 출력하시오. hive> select job, sum(sal) > from emp > group by job; ANALYST 6000 CLERK 4150 MANAGER 8275 PRESIDENT 5000 SALESMAN..
하둡 / 하이브 설치 42 하이브 설치 하이브는 페이스북(현 메타)에서 만든 NoSQL입니다. NoSQL은 자바를 몰라도 SQL과 같은 언어로 하둡의 데이터를 검색하게 해주는 프로그램입니다. "자바를 몰라도 rdbms 에 익숙한 데이터 분석가들을 위해서 SQL을 이용해서 하둡의 멥리듀싱을 지원하는 프로그래밍 " 1. 하이브 설치파일을 리눅스 시스템에 올립니다. (모바텀 root로 접속해 시스템을 올렸습니다.) [root@centos ~]# ls -l hive-0.12.0.tar.gz -rw-r--r--. 1 root root 81288181 3월 23 14:14 hive-0.12.0.tar.gz 2. 하이브 설치파일의 권한을 777로 올리고 소유자로 oracle 유져로 변경합니다. [root@centos ~]# chmod 7..
하둡 / 하둡 분산 파일 시스템 명령어 41 하둡 분산 파일 시스템 명령어 ㅇ하둡이 정상적으로 운영중인지 확인하는 명령어 (base) [oracle@centos ~]$ jps 2362 Jps ㅇ하둡을 시작시키는 명령어 (base) [oracle@centos ~]$ start-all.sh (base) [oracle@centos ~]$ jps 2751 SecondaryNameNode 2597 DataNode 3053 Jps 2985 TaskTracker 2834 JobTracker 2446 NameNode 하둡을 시작시키고 다시 확인해보면 6개가 모두 올라온 것을 확인할 수 있음. ㅇ하둡을 내리는 명령어 (base) [oracle@centos ~]$ stop-all.sh stopping jobtracker localhost: stopping ta..

반응형