샘플 데이터 조회
    • PDF

    샘플 데이터 조회

    • PDF

    Article Summary

    데이터박스 생성 시 검색, 쇼핑 관련 데이터 샘플이 제공됩니다. 데이터 공급 신청 후에는 외부망과의 통신이 차단되므로, 외부망과의 통신이 차단되기 전에 샘플 데이터를 활용하여 분석 환경을 미리 설정할 수 있습니다. Cloud Hadoop에서 샘플 데이터를 조회하는 방법과 TensorFlow 서버에서 샘플 데이터를 조회하는 방법을 설명합니다. 데이터에 대한 상세한 설명은 제공 데이터 상세 설명을 참고해 주십시오.

    Cloud Hadoop에서 샘플 데이터 조회

    1. 샘플 데이터 위치 확인

    샘플 데이터는 하둡 HDFS의 아래 경로에 업로드됩니다.
    /user/ncp/sample

    2. HDFS에서 파일 확인

    Connect 서버에서 웹 브라우저로 Hue에 접속하여 HDFS에 업로드된 샘플 파일을 확인할 수 있습니다.

    • Hue: https://엣지노드IP:8081
      databox-sample-00_ko

    3. 하이브 External 테이블 생성하여 데이터 조회

    Hue에 접속한 후 Hive Query Editor에서 샘플 데이터 파일을 활용하여 하이브 External 테이블을 생성할 수 있습니다.

    • 아래 스크립트에서 hdfs://nv0xxx-hadoop은 하둡 클러스터의 이름으로 변경한 후 스크립트를 실행해 주십시오. 하둡 클러스터 이름은 데이터박스의 [상세] 버튼을 클릭한 후 [인프라] 탭에서 확인할 수 있습니다.
    • 샘플 데이터에서 제공하는 데이터 종류 및 스키마와 데이터 공급 시 제공되는 검색과 쇼핑 데이터의 종류 및 스키마가 동일하기 때문에, 데이터 공급 신청 이후에 아래의 스크립트에서 데이터베이스와 데이터업로드 경로만 변경하여 실제 데이터에 대한 테이블을 생성할 수 있습니다.
    • 테이블 생성이 완료된 후 MSCK REPAIR TABLE 명령어 수행 시 테이블이 없다는 에러가 발생할 수 있습니다. 이 경우 잠시 후에 MSCK REPAIR TABLE 명령어를 다시 수행해 주십시오.
    -- 샘플 데이터용 데이터베이스 생성
    CREATE DATABASE sample;
    
    -- 1. 검색 클릭 테이블 생성
    CREATE EXTERNAL TABLE sample.search_click (
         `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `keyword`  STRING
        , `area`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
              `date`     varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/search/click/";  -- 샘플 데이터가 업로드된 위치. 하둡 클러스터 이름으로 변경해서 사용
    
    -- 2. 검색어 클릭 코어커런스 테이블 생성
    CREATE EXTERNAL TABLE sample.search_click_cooccurrence (
         `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `keyword1`  STRING
        , `area1`  STRING
        , `keyword2`  STRING
        , `area2`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
         `week`     varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/search/click_cooccurrence/";
    
    -- 3. 접속지별 검색어 테이블 생성
    CREATE EXTERNAL TABLE sample.search_click_location (
         `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `keyword`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
         `date`     varchar(10)
        , `hour`    varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/search/click_location/";
    
    -- 4. 상품 클릭 테이블 생성
    CREATE EXTERNAL TABLE sample.shopping_click (
         `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `keyword`  STRING
        , `cat`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
         `date`     varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/shopping/click/";
    
    -- 5. 상품 구매 테이블 생성
    CREATE EXTERNAL TABLE sample.shopping_purchase (
         `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `cat`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
         `date`     varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/shopping/purchase/";
    
    -- 6. 상품 클릭 코어커런스 테이블 생성
    CREATE EXTERNAL TABLE sample.shopping_click_cooccurrence (
         `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `keyword1`  STRING
        , `cat1`  STRING
        , `keyword2`  STRING
        , `cat2`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
         `week`     varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/shopping/click_cooccurrence/";
    
    -- 7. 상품 구매 코어커런스 테이블 생성
    CREATE EXTERNAL TABLE sample.shopping_purchase_cooccurrence (
         `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `keyword1`  STRING
        , `cat1`  STRING
        , `cat2`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
         `week`     varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/shopping/purchase_cooccurrence/";
    
    -- 8. Pro Option 검색 클릭 테이블 생성
    CREATE EXTERNAL TABLE sample.pro_search_click (
         `user`  STRING
        , `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `keyword`  STRING
        , `area`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
         `date`   varchar(10)
        , `hour`  varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/pro_search/click/";  
    
    -- 9. Pro Option 상품 클릭 테이블 생성
    CREATE EXTERNAL TABLE sample.pro_shopping_click (
         `user`  STRING
        , `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `keyword`  STRING
        , `cat`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
         `date`   varchar(10)
        , `hour`  varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/pro_shopping/click/";
    
    -- 10. Pro Option 상품 구매 테이블 생성
    CREATE EXTERNAL TABLE sample.pro_shopping_purchase (
         `user`  STRING
        , `age`  STRING
        , `loc1`  STRING
        , `loc2`  STRING
        , `cat`  STRING
        , `count`  BIGINT
    ) PARTITIONED BY (
         `date`   varchar(10)
        , `hour`  varchar(10)
        , `device`  varchar(10)
        , `gender`  varchar(10)
    ) ROW FORMAT delimited fields TERMINATED BY ','
    STORED AS PARQUET LOCATION "hdfs://nv0xxx-hadoop/user/ncp/sample/pro_shopping/purchase/";
    

    위 스크립트를 수행하고 테이블이 모두 생성된 것을 확인한 후에는 다음과 같이 메타스토어 정보를 갱신합니다.

    MSCK REPAIR TABLE sample.search_click;
    MSCK REPAIR TABLE sample.search_click_cooccurrence;
    MSCK REPAIR TABLE sample.search_click_location;
    MSCK REPAIR TABLE sample.shopping_click;
    MSCK REPAIR TABLE sample.shopping_purchase;
    MSCK REPAIR TABLE sample.shopping_click_cooccurrence;
    MSCK REPAIR TABLE sample.shopping_purchase_cooccurrence;
    MSCK REPAIR TABLE sample.pro_search_click;
    MSCK REPAIR TABLE sample.pro_shopping_click;
    MSCK REPAIR TABLE sample.pro_shopping_purchase;
    

    위 스크립트를 수행한 후에는 다음과 같이 Hue에서 Hive 테이블의 데이터가 조회되는 것을 확인할 수 있습니다.

    SET hive.resultset.use.unique.column.names = false;
    
    SELECT * FROM sample.search_click LIMIT 10;
    
    SELECT *  FROM sample.search_click 
    WHERE `date` = '2021-01-01' and device = 'mobile' and gender = 'f' and `count` > 10 LIMIT 10;
    

    image.png

    4. Zeppelin에서 샘플 데이터 조회

    Zeppelin에 접속하여 Cloud Hadoop에 업로드된 Parquet 파일 데이터를 조회할 수 있습니다.

    • Zeppelin: ambari 서비스 링크 이용 또는 https://엣지노드IP:9996

    아래 스크립트에서 hdfs://nv0xxx-hadoop은 하둡 클러스터의 이름으로 변경한 후 스크립트를 실행해 주십시오. 하둡 클러스터 이름은 데이터박스의 [상세] 버튼을 클릭한 후 [인프라] 탭에서 확인할 수 있습니다.

    %spark2
    val df = spark.read.parquet("hdfs://nv0xxx-hadoop/user/ncp/sample/shopping/click")
    println(df.count())
    df.show()
    

    databox-sample-021_ko

    이전 단계에서 생성한 Hive 테이블의 데이터를 확인할 수 있습니다.

    %jdbc(hive)
    SET hive.resultset.use.unique.column.names = false;
    SELECT * FROM sample.search_click LIMIT 10;
    

    clouddatabox-sample_02_ko

    TensorFlow 서버에서 샘플 데이터 조회

    TensorFlow 서버에서 샘플 데이터를 조회하는 방법은 다음과 같습니다.

    1. TensorFlow 서버의 아래 경로에서 샘플 데이터를 확인해 주십시오.
      • /home/ncp/workspace/sample
      • 샘플 데이터는 Read-only로 제공됩니다.
    2. Jupyter에 접속해서 필요한 모듈을 설치해 주십시오.
      !pip install -U pyarrow
      
    3. 아래와 같이 제공된 샘플 파일 데이터를 확인해 주십시오.
      import pandas as pd
      import pyarrow.parquet as pq
      from collections import OrderedDict
      source = "/home/ncp/workspace/sample/search/click/date=2021-01-01/device=pc/gender=m"
      d = pq.read_table(source=source).to_pydict() 
      df1 = pd.DataFrame( OrderedDict( d ) )
      
      databox-sample-03

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

    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.