Tags

SQL 서버에 있는 데이터를 하둡으로 임포트하는 방법(Import from Microsoft SQL Server into the Hortonworks Sandbox using Sqoop)

This article is based on Hortonworks Partner Content

기업 입장에서 하둡 클러스터를 구축하고 실제로 어떤 데이터를 분석할 것인가를 검토해 보면, 먼저 기존에 다양한 관계형 데이터베이스(Relational Database)에 저장되어 있는 데이터를 빼 놓고는 의미 있는 결과를 얻지 못 할 수도 있습니다.

기존에 관계형 데이터베이스에 저장된 데이터들은 어느 정도 정제되고 관리되는 데이터 소스이기 때문에 하둡 클러스터에 저장된 비정형 데이터들과 함께 검토함으로써 기업에 진정으로 의미 있는 인사이트를 얻어 낼 수 있을 것입니다.

아래는 스쿱(Sqoop)이라고 하는 하둡 에코시스템의 모듈을 가지고 마이크로소프트 SQL Server의 데이터를 하둡 클러스터로 옮기는 방법을 설명드립니다.
소스 코드는 이 곳에서 다운로드 하십시오.

스쿱(Sqoop)은 하둡과 관계형 데이터베이스 사이에서 대량의 데이터를 옮기는 것을 자동화해주는 툴입니다.
스쿱을 가지고 데이터를 옮기기 전에 SQL Server에서 몇 가지 세팅을 해 줄 필요가 있습니다.

SQL 서버에서 로그인 계정을 세팅합니다. (Create a login using SQL Server Authentication)
이 계정을 만들 때는 데이터에 접근하기 위한 충분한 권한(DBA 권한)을 부여하는 것이 필요합니다.

SQL Server에서 보안 세팅을 아래와 같이 진행합니다.
위에서 만든 로그인 계정이 인증될 수 있도록 아래와 같이 SQL Server Authentication을 추가하는 것이 필요합니다.

SQL Server에서 네트워크 프로토콜을 세팅합니다.
스쿱(Sqoop)이 SQL Server와 통신하기 위해서 TCP/IP 프로토콜을 사용하도록 세팅을 할 필요가 있습니다.
만약에, 현재 디폴트 프로토콜이 TCP/IP 이외의 프로토콜이면 이 시점에서 TCP/IP 프로토콜을 이용하도록 세팅하세요.
이 작업은 SQL Server의 “Configuration Manager”에서 세팅할 수 있습니다.

아래와 같이 TCP/IP 프로토콜을 통해서 통신할 수 있는 지 확인해 보시기 바랍니다.

이 예제에서 나온 ‘IP 어드레스’와 ‘TCP 포트 넘버’를 통해서 스쿱(Sqoop)이 SQL Server에 접근하게 됩니다.

호튼웍스 샌드박스를 설치해서 루트로 로그인하고 “SQL Server JDBC Driver”를 세팅합니다.
먼저 /usr/loca 디렉토리로 이동합니다.
‘SQL Server JDBC Driver’를 다운로드하고 압축을 풉니다.

curl -L 'http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.tar.gz' | tar xz

아래와 같이 폴더가 생성되었는 지 확인합니다.

이제 이 드라이버를 스쿱(Sqoop) 라이브러리로 옮깁니다.

cp sqljdbc_4.0/enu/sqljdbc4.jar /usr/lib/sqoop/lib

이제 호튼웍스 샌드박스를 리스타트하면 마무리가 됩니다.

스쿱(sqoop)을 통해서 데이터 이동하기
아래와 같이 스쿱(Sqoop)이 SQL Server에 연결 가능한 지를 체크해 봅니다.

이제 스쿱(Sqoop)의 임포트(Import) 명령을 통해서 아래와 같이 특정 데이터베이스의 특정 테이블을 임포트합니다.

이제 실제로 테이블이 임포트되어 있는 지 확인해 보면 되겠습니다.

이상과 같이 스쿱(Sqoop)이라는 툴을 통해서 데이터베이스의 정보를 대량으로 하둡 클러스터로 이동시킬 수 있습니다.
물론 SQL Server만이 아니라 JDBC를 지원하는 대부분의 데이터베이스를 임포트할 수 있습니다.

———————————————————————————————————–
ASD Technologies는 호튼웍스(Hortonworks Inc)와의 Consulting Partnership을 통해서
빅데이터에 대한 도입 컨설팅 및 구축을 도와드리고 있습니다.

호튼웍스 파트너 홈페이지
ASD Technologies Korea 홈페이지

Contact Point : sunung@asdtech.co
———————————————————————————————————–

하둡을 통해 지리정보 데이터를 처리하는 방법 (Processing Geolocation Data)

This post is based on Hortonworks Blog

최근에 스마트폰이 일상화되면서 가장 많은 양으로 발생하고 있는 데이터 중의 하나라 지리 정보 데이터(Geo-location Data)일 것입니다.
이전까지는 워낙 대량으로 실시간 생산되는 데이터라는 측면 때문에 이러한 데이터를 저장하고 처리해서 새로운 가치를 얻으려는 노력은 극소소의 인터넷 기업들 외에는 시도하기 힘들었습니다.

하지만 이러한 지리 정보 데이터(Geo-location Data)는 하둡이라는 시스템을 통해서 각종 자산의 이동을 추적(Asset Tracking)하는 단순한 용도에서 부터 최적화(Optimization)을 위한 예측 모델링(Predictive Modeling)에 이르기까지 광범위한 활용도를 가진 좋은 데이터 소스입니다.

아래 영상은 어떻게 운손회사가 지리 정보 데이터를 분석해서 연료 소비(Fuel costs)를 줄이고 운전수의 안전을 높히는 데 이용될 수 있는 지를 보여 줍니다.

이 데모를 통해서 지리 정보 데이터를 활용하기 위한 여러 가지 힌트와 하둡 에코시스템의 각 모듈을 이용하는 방법을 이해할 수 있습니다.
1. 플룸(Flueme)을 이용하여 지리 정보 데이터(Geo-location Data)를 스트리밍하여 하둡 파일시스템에 저장하는 방법
2. 스쿱(Sqoop)을 이용하여 관계형 데이터베이스와 같은 정형화된 정보를 하둡 파일시스템에 저장하는 방법
3. HCatalog를 이용하여 Raw Data를 데이터베이스처럼 볼 수 있는 뷰(View)를 만드는 방법
4. HIVE와 Pig를 사용하여 데이터를 정제하는 방법
5. 데이터를 ODBC Connector를 이용하여 엑셀로 보내서 분석하는 방법

여기서 설명하는 플룸(Flume), 스쿱(Sqoop)은 데이터 소스로부터 HDFS로 데이터를 저장하기 위한 ETL(Extraction, Transformation and Load) 모듈의 일종이라고 이해하면 되겠습니다.

실제로 하둡 프로젝트를 진행할 때는 어떻게 분산되어 있는 다양한 데이터 소스로부터 하둡 파일시스템(HDFS)에 데이터를 잘 저장할 것인가 하는 부분은 아주 중요합니다.
이 부분을 중점적으로 본다면 실제 프로젝트에 어떻게 적용되는 지에 대한 좋은 힌트를 얻을 수 있습니다.

———————————————————————————————————–
ASD Technologies는 호튼웍스(Hortonworks Inc)와의 Consulting Partnership을 통해서
빅데이터에 대한 도입 컨설팅 및 구축을 도와드리고 있습니다.

호튼웍스 파트너 홈페이지
ASD Technologies Korea 홈페이지

Contact Point : sunung@asdtech.co
———————————————————————————————————–