본문 바로가기

IT관련

오라클 Big Data SQL 로 Oracle DB 내에서 하둡내의 빅데이터 쉽게 접근하는 샘플

일반적으로 "빅데이터"라고 하면 데이터량이 너무 커서 DB내의 테이블에 넣고 다룰 수 없는 경우를 보통 말합니다.

데이터량이 너무 크기 때문에 데이터를 여러 노드에 분산 저장할 수 있는 능력이 있는 HDFS(Hadoop File System)에 데이터를 저장합니다.

 

그런데, 이 HDFS 에 저장된 데이터를 컨트롤 하려면 맵리듀스(Map-Reduce)와 같은 프로그램을 만들어야 하기 때문에 데이터를 다루기가 쉽지 않습니다. DB내에 있는 테이블의 경우에는 사용자가 SQL을 통해 필요할때마다 쉽게 쿼리가 가능하지만, 빅데이터의 경우에는 매번 맵리듀스 프로그램을 사용자가 만들 수 없기 때문에 불편하죠~

 

이를 개선하기 위해서 나온게 Hive, Spark 같은 것들입니다.

 

그런데, Oracle DB 를 사용하는 사용자들이 빅데이터에 저장된 데이터를 마치 Oracle DB내의 테이블처럼 다룰 수 있다면? HDFS 내에 저장된 데이터를 Oracle DB 내에 있는 테이블과 Join 할 수 있다면? 

이럴 수 있다면 Oracle 사용자들은 빅데이터를 아주 쉽게 컨트롤할 수 있을 겁니다.

 

게다가 Oracle DB로 된 DW 시스템을 이미 운영하고 있는 경우에는 이 Oracle DW와 빅데이터를 연계할 수 있는 장점이 있습니다. 기존 DW 시스템에서 해오던 분석을 빅데이터 플랫폼까지 쉽게 확대할 수 있게 되는 거죠~

 

이런 것들을 가능하게 해주는것이 Oracle Big Data SQL 입니다.

공짜는 아니고 오라클사에서 판매하는 옵션 제품이라 정식으로 사용하려면 라이센스 구매가 필요합니다.

 

Big Data SQL은 HDFS, Hive, NoSQL 등에 들어있는 빅데이터를 Oracle External Table (외부테이블) 기능을 이용해서 마치 DB내에 있는 테이블처럼 만들어주는 기능입니다. 사용자는 마치 DB 내부에 있는 테이블 처럼 다룰 수 있습니다.

 

 

그럼, Big Data SQL 이 어떻게 동작하는지 한번 볼까요?

아래에 movieapp_log_json.log 라는 파일이 하둡파일시스템(HDFS)에 들어 있습니다. 건수는 29만건 정도되는 Json 포맷으로 되어 있는 파일입니다.

 

 

아래와 같이 Oracle sqlplus 에서 Create Table 커맨드로 외부(HDFS)에 있는 파일을 이용해서 movielog 라는 External Table 을 만들었습니다.

 

 

movielog 테이블은 정확히 하둡파일시스템내에 /user/oracle/moviework/applog_json/ 디렉토리에 있는 movieapp_log_json.log 파일을 가리키고 있습니다.

 

이제 movielog 테이블을 SQL Query 문으로 조회할 수 있습니다.

 

 

Json 형태의 데이터의 경우에는 Oracle DBMS 가 내부에서 자체적으로 Json 포맷을 지원합니다.

따라서 아래와 같이 마치 컬럼처럼 이용할 수 있습니다.

 

 

Json 데이터를 점(".")으로 구분해서 마치 컬럼처럼 사용하는 방식입니다.

이게 귀찮은 경우에는 뷰(View)를 만들어서 더 간단하게 사용할 수 있습니다.

 

 

이제 Oracle DB내에 있는 다른 테이블과 Join 을 해보겠습니다.

 

 

하둡(HDFS)내에 위치한 외부테이블 movielog_vOracle DB 내에 위치한 내부테이블 movie 를 서로 Join 하여 쿼리를 수행하였습니다.

이처럼 하둡에 있는 데이터를 Oracle DB 내에서 SQL 문으로 쉽게 컨트롤 할 수 있게 해주는 점이 Big Data SQL 의 특징입니다.

 

단순히 내부 테이블과 Join 만 가능한게 아니라, 오라클 DB 내부에서 제공하는 다양한 내부함수 및 분석함수들을 모두 이용할 수 있습니다.

 

위 샘플에서는 HDFS 내의 데이터를 사용했지만, Hive, NoSQL 등에 있는 데이터도 외부테이블로 만들어서 사용할 수 있습니다.

 

 

이 Big Data SQL 기능을 이용하기 위해서는 DB쪽에도 모듈 설치가 필요하고, 하둡쪽에도 모듈 설치가 필요합니다.

 

이것들을 쉽게 체험해볼 수 있도록 오라클사에서는 이미 준비된 데모가상환경을 Oracle Virtual Box 로 만들어서 제공하고 있습니다. 데모가상환경을 다운로드 받는 방법은 아래 블로그를 참조하기 바랍니다.

 

참고 >> 오라클 Big Data Lite 설치 방법