CDB MongoDB에서 Hive로 데이터 이전
  • PDF

CDB MongoDB에서 Hive로 데이터 이전

  • PDF

VPC 환경에서 이용 가능합니다.

이 가이드는 네이버 클라우드 Object Storage를 이용하여 네이버 클라우드 플랫폼 Cloud DB for MongoDB에서 Hive로 데이터를 마이그레이션하는 방법을 소개합니다.
MongoDB에서 Hive로 데이터를 마이그레이션하는 작업은 MongoDB로 데이터를 불러오고, MongoDB에서 Object Storage로 데이터를 내보낸 후, Object Storage에서 Hive External Table을 사용하여 데이터를 불러오는 방식으로 이루어집니다.

사전 작업

  1. Object Storage를 생성해 주십시오.

  2. Cloud Hadoop 클러스터를 생성해 주십시오.
    Cloud Hadoop 생성에 대한 자세한 내용은 Cloud Hadoop 시작를 참고해 주십시오.

  3. Cloud DB for MongoDB 및 애플리케이션 서버를 생성해 주십시오.
    MongDB 및 애플리케이션 서버 생성에 대한 자세한 내용은 Cloud DB for MongoDB 시작를 참고해 주십시오.

  4. 생성한 MongoDB의 Private 도메인, 포트, 사용자명, 사용자 비밀번호를 확인해 주십시오.
    자세한 내용은 Cloud DB for MongoDB 사용을 참고해 주십시오.

MongoDB로 데이터 불러오기

애플리케이션 서버에 접속한 후 MongoDB 서버에 접속하여 데이터를 불러오는 방법은 다음과 같습니다.

  1. Cloud DB for MongoDB 시작을 참고하여 애플리케이션 서버에 접속한 후 MongoDB를 설치해 주십시오.
  2. 다음 명령어를 차례대로 실행하여 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
    
  3. wget 명령어를 사용하여 불러올 데이터를 다운로드해 주십시오.
    • 샘플 데이터
    # wget http://www.barchartmarketdata.com/data-samples/mstf.csv
    
  4. 다음 명령어를 실행하여 다운로드한 데이터를 MongoDB로 업로드해 주십시오.
    # mongoimport mstf.csv --type csv --headerline -d marketdata -c minibars -h <private domain>:<port> -u <username> -p <password> --authenticationDatabase admin
    
    :::(info)(참고)
    MongoDB에서 DB와 Collection을 직접 생성하는 방식으로도 데이터를 준비할 수 있습니다.
    :::

MongoDB에서 Object Storage로 데이터 내보내기

MongoDB에 업로드한 데이터를 Object Storage로 내보내는 방법은 다음과 같습니다.

  1. 다음 명령어를 실행하여 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
    
  2. 다음 명령어를 실행하여 데이터를 내보내 주십시오.
    # mongoexport --host=<private domain>:<port> --collection=minibars --db=marketdata --out=marketdata.csv -u <username> -p <password> --authenticationDatabase admin
    
  3. 네이버 클라우드 플랫폼 포털에 로그인한 후 마이페이지 > 인증키 관리 메뉴를 차례대로 클릭하여 Access Key와 Secret Key를 확인해 주십시오.
  4. 확인한 인증키 정보를 이용하여 아래와 같이 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] :
    
  5. 다음 명령어를 차례대로 실행하여 버킷 리스트를 확인하고 데이터를 업로드한 후 업로드가 정상적으로 수행되었는지 확인해 주십시오.
    # aws --endpoint-url=http://kr.object.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.ncloudstorage.com s3 cp marketdata.csv s3://<데이터를 업로드할 버킷명>/
    --업로드 결과
    upload: ./marketdata.csv to s3://ex-bucket/marketdata.csv
    
    # aws --endpoint-url=http://kr.object.ncloudstorage.com s3 ls s3://ex-bucket/
    --업로드 확인 결과
    2021-10-19 11:05:12   16261296 marketdata.csv
    
    :::(info)(참고)
    네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Products & Services > Storage > Object Storage > Bucket Management 메뉴를 차례대로 클릭하여 확인할 수도 있습니다.
    :::

Hive로 Object Storage에 업로드된 데이터 불러오기

Hive External Table을 사용하여 Object Storage에 업로드한 데이터를 불러오는 방법은 다음과 같습니다.

  1. 다음 명령어를 실행하여 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://<데이터가 업로드된 버킷명>/';
    
  2. 다음 명령어를 실행하여 External Table과 데이터가 연결되었는지 확인해 주십시오.

    SELECT * FROM marketdata LIMIT 10;
    

    :::(info)(참고)
    .csv 파일을 편집해야 하는 경우 아래 명령어를 사용해 주십시오.

    • 문자열 필드의 따옴표 삭제
    find . -name 파일이름.csv -exec perl -pi -e 's/"//g' {} \;
    
    • 첫 번째 행(컬럼명) 삭제
    sed -e 'id' 파일이름.csv
    

    :::


이 글이 도움이 되었나요?