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

    CDB MongoDB에서 Hive로 데이터 이전

    • PDF

    Article Summary

    이 가이드는 네이버 클라우드 플랫폼 Object Storage를 이용하여 Cloud DB for MongoDB에서 Hive로 데이터를 마이그레이션하는 방법을 소개합니다.

    MongoDB에서 Hive로 데이터를 마이그레이션하는 방법은 다음 두 가지가 있습니다.

    1. 네이버 클라우드 플랫폼 CDB MongoDB로 데이터를 불러오는 방법
    2. CDB MongoDB에서 Object Storage로 데이터를 내보낸 후, Cloud Hadoop Hive에서 External Table로 데이터를 불러오는 방법

    hadoop-vpc-use-ex9_0-0

    사전 작업

    1. Object Storage를 생성해 주십시오.
    2. Cloud Hadoop 클러스터를 생성해 주십시오.
      • Cloud Hadoop 클러스터 생성에 대한 자세한 내용은 Cloud Hadoop 시작 가이드를 참고해 주십시오.
    3. Cloud DB for MongoDB 및 애플리케이션 서버를 생성해 주십시오.
      • MongoDB 및 애플리케이션 서버 생성에 대한 자세한 내용은 Cloud DB for MongoDB 시작 가이드를 참고해 주십시오.
    4. 생성한 MongoDB의 Private 도메인, 포트, 사용자명, 사용자 비밀번호를 확인해 주십시오.

    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
      
    참고

    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 ID와 Secret Key를 확인해 주십시오.
      hadoop-chadoop-use-ex6_1-2_ko
    4. 확인한 인증키 정보를 이용하여 아래와 같이 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] :
      
    5. 다음 명령어를 차례대로 실행하여 버킷 리스트를 확인하고, 데이터를 업로드한 후 업로드가 정상적으로 수행되었는지 확인해 주십시오.
      # 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 메뉴를 차례대로 클릭하여 확인할 수도 있습니다.

    hadoop-vpc-use-ex9_2-3_ko

    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;
      
    참고

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

    • 문자열 필드의 따옴표 삭제

      find . -name 파일이름.csv -exec perl -pi -e 's/"//g' {} \;
      
    • 첫 번째 행(컬럼명) 삭제

      sed -e 'id' 파일이름.csv
      

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.