22. range between .. and .. 오늘은 ORACLE SQL의 window function 중 하나인 range between .. and .. 를 알아보자. 본인은 최근 자격증 공부를 하며 알게된 기능인데, 그룹별 누적 수치를 보여주는데 있어 상당히 유용하다. range between과 and 사이에는 1. UNBOUNDED PRECEDING: 최종 출력될 값의 맨 처음 row의 값(Partition by 고려) 2. CURRENT ROW: 현재 row의 값 3. UNBOUNDED FOLLOWING: 최종 출력될 값의 맨 마지막 row의 값(Partition by 고려) 을 각각 넣어서 사용할 수 있다. 각 정의에 따라 UNBOUNDED PRECEDING은 range between 다음..
22. Data Set의 Sample 확인 방법 데이터를 다루고 분석하다보면 Data Set의 일부분만 확인하고 싶은 경우가 많다. 특히, 대용량의 파일은 전체 데이터를 불러오는 작업에만 상당한 시간이 소요되므로 R에서는 head, Python에서는 슬라이싱 기능을 통해서 쉽게 Data Set의 Sample을 확인할 수 있다. 허나, 데이터베이스 관리의 기본적인 언어인 SQL에는 head나 슬라이싱 기능이 없다. 어떻게 Data Set의 Sample을 확인할 수 있을까? 본인이 자주 사용하는 2가지 방법을 기록한다. rownum 사용 의외로 많은 사람들이 알고 있는 기능으로, 겉으로 노출되지 않지만 각 데이터의 row마다 붙어있는 숫자를 이용해 데이터를 출력하는 것이다. 예제) 사원 테이블(emp)의 이..
21. Unpivot 요즘 하둡(hadoop)을 공부하며 사용해보고 있다. 조만간 블로그에도 올리겠지만 공부하면 할수록 데이터 분석가는 SQL의 기초를 탄탄히 다져야 한다는 생각이 든다. 하둡 생태계중에서 hive, Tajo 등 SQL을 기반으로 하는 것들이 많고, NoSQL 중 하나인 Pig도 어렵지 않게 사용할 수 있다. 다시 본론으로 돌아와서, 오늘은 Excel에서도 흔히 쓰이면서 SQL의 유용한 장점이자 pivot 함수의 반대인 unpivot을 정리하자. pivot이 세로 데이터 → 가로 컬럼명으로 이동하는 느낌이라면, unpivot은 가로 컬럼명 → 세로 데이터로 이동하는 느낌이다. → pivot에 대한 설명 다시 보기 unpivot의 사용 방법은 unpivot ( 새로운컬럼명 for 지금 컬럼..
20. With절, 임시 테이블 SQL을 통해 빅데이터라 불리는 매우 크고 무거운 데이터를 다루는데, 새로운 결과를 원하고 저장할 때마다 table을 저장할 수 없다. 또한, 실무에서는 실제 실행 속도도 빠르게 진행되어야 하므로 SQL에는 임시 테이블을 만드는 다양한 방법이 존재한다. with절은 동일한 SQL이 반복되어서 사용될 때 성능을 높이기 위해 사용된다. table을 만들지 않고도 table 만든 것과 같은 효과를 내는데, 실제로는 temp라는 임시 테이블에 저장되는 것이다. 사용법은 with 임시 테이블명 as ( 임시 테이블에 넣을 데이터) 임시 테이블을 이용해 사용할 쿼리 이다. 실제 예제와 함께 알아보자. 예제) 사원(emp) 테이블에서 직업별 월급 합산분을 출력하는데 직업별 월급 합산분..
19. 제약(Constraint) 제약(Constraint)이란 Data의 품질을 높이기 위한 Database Object라할 수 있으며, 제약 조건을 사용하여 잘못된, 적절하지 않은 데이터를 입력하는 일을 방지한다. 일명 '빅데이터'라 부를 수준의 양까지 데이터의 수가 많아졌을 때, 어울리지 않거나 잘못된 데이터가 하나만 있어도 상당히 비효율적인 업무를 수행해야하는 문제가 있어 보통 Table 생성 시 제약을 많이 사용한다. 흔히 사용하는 제약 조건과 설명은 아래 표를 통해 요약해놓았다. NOT NULL, UNIQUE, PRIMARY KEY 제약 이름에서 알 수 있듯이 각각 null 불가, 중복 불가함을 규정하는 제약이다. Primary key는 null과 중복 불가 모두를 규정하는 제약..
18. 정규식 함수 오늘은 정규식 함수에 대해 알아보자. 정규식 함수는 표준 구문 규칙을 사용하여 문자열 데이터의 간단한 패턴 및 복잡한 패턴을 검색하고 조작할 수 있으며, 특히 데이터 정제 시 자연어 처리에 큰 효율을 발휘하는 함수이다. 또한, 정규식 함수의 메타문자는 SQL을 넘어 R, Python 등 많은 언어에서 유사하게 사용되고 있어, 정성적 빅데이터를 다루는 사람, 분석가라면 필히 알아두어야 하겠다. ORACLE SQL에서 많이 쓰이는 정규식 함수로는 아래의 5가지가 있다. 메타 문자 정규식 함수는 메타 문자와 함께 사용되는데, 메타 문자란 일련의 문자와 같이 특별한 의미를 지닌 특수문자이다. 이를 활용해 더욱 간단하게 문자형 데이터를 검색/조작할 수 있다. 메타문자를 정리한 표를 참고하고, ..
17. index 이제 ORACLE SQL의 데이터베이스 객체 중 마지막인 index를 알아보겠다. index의 개념 (1) index는 목차를 나타낸다. 그래서 보통 튜너들이 많이 사용하며, index를 생성한 후 query에서는 order by를 쓰지 않아도 정렬된 결과로 출력된다. 보통 대용량의 데이터에서 query 속도를 빠르게 하기 위해 index를 이용한다고 알고 있다. 반은 맞고, 반은 틀린 이야기이다. 우선 query 속도를 빠르게 하는 것은 맞다. 그러나 대용량의 데이터에 index가 있다고 해서 query 속도가 빨라지는 것은 아니다. → 만약 index가 있는 테이블에 DML 작업이 진행되며 모든 index가 갱신되어야 함을 의미한다. 따라서, 아래와 같은 상황에서 index를 생성하..
16. Sequence, Synonym 앞에서 살펴본 ORACLE SQL의 데이터베이스 객체 중 남은 Sequence, Synonym를 알아보겠다.(Index는 양이 많아 별도로 정리) Sequence Sequence란 간단히 일련번호 생성기로 말할 수 있으며, 번호를 중복하지 않고 순서대로 생성하는 DB Object이다. 일반적으로 각 행에 고유해야 하는 Primary key값을 생성하는 경우에 Sequence를 생성한다. Sequence를 생성하는 코드는 아래와 같다. create sequence 시퀀스명; start with 시작숫자 increment by 증가숫자 maxvalue 최대숫자 minvalue 최소숫자 cache 캐쉬에 올려놓을 데이터숫자 예제) 사원번호(empono)와 사원이름(ena..
15. View 우리가 ORACLE SQL을 다룰 때 흔히 말하는 table은 데이터베이스 객체 중에 하나로, 아래와 같은 기타 여러 객체가 있다. 오늘은 view에 대해 알아보겠다. View view란, table 또는 다른 view를 기반으로 하는 논리적 table이다. 자체적으로 데이터를 가지고 있는 table은 아니지만, table의 데이터를 보거나 변경할 수 있다. 처음 view를 배울 때 "다른 table을 하나 더 만들면 되는데 왜 view를 만들었을까?"라는 생각이 들었다. view가 필요한 이유는 table의 열을 선택적으로 표시하므로 Data excess를 제한한다. 복잡한 query를 단순하게 조회할 수 있다. 특정 기준에 따라 user group에게 Data excess 권한을 부여..
14. ORACLE SQL의 Data Type 오늘은 앞서 ORACLE SQL의 Data Type에 대해 자세히 알아보도록 하겠다. Data Set을 넣을 테이블을 만들 때 Data Set에 맞는 적절한 Type과 길이를 지정해주지 않는다면, 분석을 위한 쿼리문 자체가 오류나는 경우가 있으니 정확히 알아야한다. ORACLE SQL의 모든 데이터 유형은 아래와 같다. 보통 모든 데이터 유형을 사용할 일은 없지만, LONG은 text import시에 종종 사용하므로 LONG사용과 관련된 주의사항을 참고해야한다. ※ LONG type 사용 시 주의사항 • LONG은 서브쿼리를 사용하여 테이블을 생성할 때 복사되지 않는다. • LONG은 GROUP BY 또는 ORDER BY 절에 포함될 수 없다. • 각 테이블..
- Total
- Today
- Yesterday
- 하둡설치
- 데이터 분석
- 하둡
- Big Data
- hadoop install
- hadoop 2.7 install
- 하둡 설치 가이드
- 하둡2.7
- 하둡설치가이드
- data
- hadoop2.7
- 빅데이터
- hadoop setup
- hadoop
- Data Analysis
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |