CDB MongoDB에서 Hive로 데이터 이전
- 인쇄
- PDF
CDB MongoDB에서 Hive로 데이터 이전
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
이 가이드는 네이버 클라우드 플랫폼 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 ID 입력 AWS Secret Access Key [None] : Secret Key 입력 Default region name [None] : Default output format [None] :
- 다음 명령어를 차례대로 실행하여 버킷 리스트를 확인하고, 데이터를 업로드한 후 업로드가 정상적으로 수행되었는지 확인해 주십시오.
# aws --endpoint-url=http://kr.object.fin-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.fin-ncloudstorage.com s3 cp marketdata.csv s3://<데이터를 업로드할 버킷명>/ --업로드 결과 upload: ./marketdata.csv to s3://ex-bucket/marketdata.csv # aws --endpoint-url=http://kr.object.fin-ncloudstorage.com s3 ls s3://ex-bucket/ --업로드 확인 결과 2021-10-19 11:05:12 16261296 marketdata.csv
참고
네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Products & Services > Storage > Object Storage > Bucket Management 메뉴를 차례대로 클릭하여 확인할 수도 있습니다.
Hive로 Object Storage에 업로드된 데이터 불러오기
Hive External Table을 사용하여 Object Storage에 업로드한 데이터를 불러오는 방법은 다음과 같습니다.
- 다음 명령어를 실행하여 Hive가 Object Storage에 있는 데이터를 불러오도록 External Table을 생성해 주십시오.
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
이 문서가 도움이 되었습니까?