- 인쇄
- PDF
CDB MongoDB에서 Hive로 데이터 이전
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
이 가이드는 네이버 클라우드 플랫폼 Object Storage를 이용하여 Cloud DB for MongoDB에서 Hive로 데이터를 마이그레이션하는 방법을 소개합니다.
MongoDB에서 Hive로 데이터를 마이그레이션하는 방법은 다음 두 가지가 있습니다.
- 네이버 클라우드 플랫폼 CDB MongoDB로 데이터를 불러오는 방법
- CDB MongoDB에서 Object Storage로 데이터를 내보낸 후, Cloud Hadoop Hive에서 External Table로 데이터를 불러오는 방법
사전 작업
- Object Storage를 생성해 주십시오.
- Object Storage 생성에 대한 자세한 내용은 Object Storage 개요 가이드를 참고해 주십시오.
- Cloud Hadoop 클러스터를 생성해 주십시오.
- Cloud Hadoop 클러스터 생성에 대한 자세한 내용은 Cloud Hadoop 시작 가이드를 참고해 주십시오.
- Cloud DB for MongoDB 및 애플리케이션 서버를 생성해 주십시오.
- MongoDB 및 애플리케이션 서버 생성에 대한 자세한 내용은 Cloud DB for MongoDB 시작 가이드를 참고해 주십시오.
- 생성한 MongoDB의 Private 도메인, 포트, 사용자명, 사용자 비밀번호를 확인해 주십시오.
- 자세한 내용은 Cloud DB for MongoDB 사용 가이드를 참고해 주십시오.
MongoDB로 데이터 불러오기
애플리케이션 서버에 접속한 후 MongoDB 서버에 접속하여 데이터를 불러오는 방법은 다음과 같습니다.
Cloud DB for MongoDB 시작 가이드를 참고하여 애플리케이션 서버에 접속한 후 MongoDB를 설치해 주십시오.
다음 명령어를 차례대로 실행하여 mongoimport를 설치한 후 압축을 해제해 주십시오.
# wget https://repo.mongodb.org/yum/redhat/6/mongodb-org/4.2/x86_64/RPMS/mongodb-org-tools-4.2.17-1.el6.x86_64.rpm # rpm -ivh mongodb-org-tools-4.2.17-1.el6.x86_64.rpm # wget https://repo.mongodb.org/yum/redhat/6/mongodb-org/4.2/x86_64/RPMS/mongodb-org-shell-4.2.17-1.el6.x86_64.rpm # rpm -ivh mongodb-org-shell-4.2.17-1.el6.x86_64.rpm
wget
명령어를 사용하여 불러올 데이터를 다운로드해 주십시오.- 샘플 데이터
# wget http://www.barchartmarketdata.com/data-samples/mstf.csv
다음 명령어를 실행하여 다운로드한 데이터를 MongoDB로 업로드해 주십시오.
# mongoimport mstf.csv --type csv --headerline -d marketdata -c minibars -h <private domain>:<port> -u <username> -p <password> --authenticationDatabase admin
참고MongoDB에서 DB와 Collection을 직접 생성하는 방식으로도 데이터를 준비할 수 있습니다.
MongoDB에서 Object Storage로 데이터 내보내기
MongoDB에 업로드한 데이터를 Object Storage로 내보내는 방법은 다음과 같습니다.
다음 명령어를 실행하여 AWS CLI를 설치해 주십시오.
- 네이버 클라우드 플랫폼 Object Storage는 AWS S3와 호환되는 저장소이므로 AWS CLI를 사용할 수 있습니다.
# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # unzip awscliv2.zip # ./aws/install --설치 확인 # aws --version
다음 명령어를 실행하여 데이터를 내보내 주십시오.
# mongoexport --host=<private domain>:<port> --collection=minibars --db=marketdata --out=marketdata.csv -u <username> -p <password> --authenticationDatabase admin
네이버 클라우드 플랫폼 포털에 로그인한 후 마이페이지 > 인증키 관리 메뉴를 차례대로 클릭하여 Access Key ID와 Secret Key를 확인해 주십시오.
확인한 인증키 정보를 이용하여 아래와 같이
aws configure
를 설정해 주십시오.# aws configure AWS Access Key ID [None] : Access Key 입력 AWS Secret Access Key [None] : Secret Key 입력 Default region name [None] : Default output format [None] :
다음 명령어를 차례대로 실행하여 버킷 리스트를 확인하고 데이터를 업로드한 후 업로드가 정상적으로 수행되었는지 확인해 주십시오.
# aws --endpoint-url=http://kr.object.gov-ncloudstorage.com s3 ls --버킷 리스트 2021-10-16 18:49:28 cdbbucket 2021-09-29 12:20:58 ex-bucket 2021-10-05 15:24:46 example-5 2021-10-06 10:59:15 example-6 # aws --endpoint-url=http://kr.object.gov-ncloudstorage.com s3 cp marketdata.csv s3://<데이터를 업로드할 버킷명>/ --업로드 결과 upload: ./marketdata.csv to s3://ex-bucket/marketdata.csv # aws --endpoint-url=http://kr.object.gov-ncloudstorage.com s3 ls s3://ex-bucket/ --업로드 확인 결과 2021-10-19 11:05:12 16261296 marketdata.csv
참고네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Services > Storage > Object Storage > Bucket Management 메뉴를 차례대로 클릭하여 확인할 수도 있습니다.
Hive로 Object Storage에 업로드된 데이터 불러오기
Hive External Table을 사용하여 Object Storage에 업로드한 데이터를 불러오는 방법은 다음과 같습니다.
다음 명령어를 실행하여 Hive가 Object Storage에 있는 데이터를 불러오도록 External Table을 생성해 주십시오.
location
에는 데이터가 업로드된 버킷 위치를 입력해 주십시오.
CREATE external TABLE if not EXISTS `marketdata` ( id STRUCT<oid:STRING, bsontype:INT>, Symbol STRING, `Timestamp` STRING, Day INT, Open DOUBLE, High DOUBLE, Low DOUBLE, Close DOUBLE, Volume INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' location 's3a://<데이터가 업로드된 버킷명>/';
다음 명령어를 실행하여 External Table과 데이터가 연결되었는지 확인해 주십시오.
SELECT * FROM marketdata LIMIT 10;
참고.csv 파일을 편집해야 하는 경우 아래 명령어를 사용해 주십시오.
- 문자열 필드의 따옴표 삭제
find . -name 파일이름.csv -exec perl -pi -e 's/"//g' {} \;
- 첫 번째 행(컬럼명) 삭제
sed -e 'id' 파일이름.csv