Data Analytics Service 개념
    • PDF

    Data Analytics Service 개념

    • PDF

    Article Summary

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

    Data Analytics Service에서는 데이터, 데이터 분석 환경, 데이터 분석 애플리케이션의 자원을 제공합니다. 각 자원의 구성을 이해하면 좀 더 효과적으로 Data Analytics Service를 활용할 수 있습니다. 각 자원에 대한 설명은 다음과 같습니다.

    데이터

    Data Analytics Service에서 사이트 데이터 및 쇼핑 데이터를 신청하면, 매일 새로운 데이터가 수집되어 저장됩니다. 각 데이터는 Object Storage 버킷에 파일로 저장되며, PostgreSQL DB의 'da_han'이라는 데이터베이스에 저장되어 Superset에서 확인할 수 있습니다. 데이터 종류 및 종류별 데이터 저장 위치는 다음과 같습니다.

    분류데이터 종류Object Storage 버킷 내 저장 위치DB 테이블참고
    사이트 데이터사이트 방문 로그site_log 디렉터리 하위의 날짜별, 사이트 ID별 디렉터리
    • da_site
    • da_site_log
    • da_site_log_date
    • da_site_log_hour
      사이트 방문 로그
      사이트 유입 검색어site_kwd 디렉터리 하위의 날짜별, 사이트 ID별 디렉터리da_site_kwd사이트 유입 검색어
      방문자 검색어visitor_kwd_sum 디렉터리 하위의 날짜별, 사이트 ID별 디렉터리
      • da_visitor_kwd_sum
      • da_visitor_kwd_sum_top
        방문자 검색어
        쇼핑 데이터쇼핑 인사이트 통계
        • 날짜별 쇼핑 인사이트: datalab_shopping 디렉터리
        • 카테고리 코드: datalab_shopping_cat 디렉터리
          • da_datalab_shopping
          • da_datalab_shopping_cat
            쇼핑 데이터
            참고
            • 데이터베이스에는 데이터 파일에 해당하는 테이블뿐만 아니라 대시보드 성능을 위해 추가한 테이블도 존재합니다.
            • 테이블의 주요 칼럼 이름은 한글로 표기되어 있습니다.

            사이트 데이터

            사이트 데이터는 네이버 애널리틱스에서 수집한 데이터 및 네이버 통합검색 데이터입니다. 매일 하루 전날의 데이터를 확인할 수 있습니다.

            사이트 방문 로그

            사이트 방문 로그는 네이버 애널리틱스에서 수집하는 사이트 방문자의 행동 로그입니다. 사이트 방문자가 언제, 어디서, 어떤 검색어로 인입되는지 파악할 수 있으므로, 사이트 방문자의 행동 패턴을 분석할 수 있습니다.
            PostgreSQL DB에 생성되는 테이블은 다음과 같습니다.

            • da_site: 데이터를 신청한 사이트의 사이트 ID와 사이트 이름을 저장
              CREATE TABLE da_site(
              사이트id varchar(100) NOT NULL,
              사이트이름 varchar(300),
              constraint pk_da_site primary key(사이트id)
              ) TABLESPACE ts_da;
              
            • da_site_log: 네이버 애널리틱스에서 수집하는 사이트 방문 로그(Raw Data)를 저장
              CREATE TABLE da_site_log(
              사용자key varchar(100) NOT NULL,
              방문일시 timestamp NOT NULL,
              uri varchar(1000),
              페이지제목 varchar(1000),
              레퍼러 varchar(10000),
              pc_모바일 varchar(10),
              wcs_user_agent varchar(1000),
              단말기종류 varchar(100),
              ua_os varchar(100),
              ua_os_major varchar(100),
              ua_os_name varchar(100),
              ua_name varchar(100),
              ua_major varchar(100),
              ua_minor varchar(100),
              국가 varchar(10),
              지역_시도 varchar(100),
              인코딩 varchar(10),
              언어 varchar(20),
              event_category varchar(100),
              event_action varchar(1000),
              conversion_type varchar(100),
              conversion_value varchar(1000),
              유입검색어 varchar(500),
              방문일자 date NOT NULL,          -- 추가한 칼럼(폴더명)
              사이트id varchar(100) NOT NULL,  -- 추가한 칼럼(폴더명)
              레퍼러사이트 varchar(100),        -- 추가한 칼럼
              운영체제 varchar(200),            -- 추가한 칼럼
              브라우저 varchar(200),            -- 추가한 칼럼
              추가정보 VARCHAR,                -- vprop을 통해 수집된 정보
              회원ID VARCHAR(100),             -- vprop을 통해 수집된 정보   
              상품ID VARCHAR(100),             -- vprop을 통해 수집된 정보 
              상품카테고리ID VARCHAR(100),      -- vprop을 통해 수집된 정보 
              추가정보_기타 VARCHAR             -- vprop을 통해 수집된 정보
              )  PARTITION BY RANGE (방문일자) TABLESPACE ts_da;
              CREATE TABLE da_site_log_202011 PARTITION OF da_site_log FOR VALUES FROM ('2020-11-01') TO ('2020-12-01');
              
              update da_site_log set 레퍼러사이트 =  split_part(레퍼러, '/', 3)
                                  운영체제 = ua_os_name || ' ' || ua_os_major,
                                  브라우저 = ua_name || ' ' || ua_major
              where 방문일자 = $방문일자;
              
              참고
            • da_site_log_date: 날짜별 사이트 방문 로그(방문자 수, 페이지 뷰)를 집계(대시보드 성능을 위해 추가한 테이블)
              CREATE TABLE da_site_log_date (
              사이트id varchar(100) NOT NULL,
              방문일자 date NOT NULL,
              방문자수 bigint,
              페이지뷰 bigint,
              요일_번호 integer,
              요일 char(1),
              요일_정렬 varchar(5),
              constraint pk_da_site_log_date primary key(사이트id, 방문일자)
              ) TABLESPACE ts_da;
              
              INSERT INTO da_site_log_date
              SELECT 사이트id, 방문일자, count(distinct 사용자key), count(1),
                  EXTRACT(DOW FROM 방문일자),
                  case when  EXTRACT(DOW FROM 방문일자) = 0 then '일'
                          when  EXTRACT(DOW FROM 방문일자) = 1 then '월'
                          when  EXTRACT(DOW FROM 방문일자) = 2 then '화'
                          when  EXTRACT(DOW FROM 방문일자) = 3 then '수'
                          when  EXTRACT(DOW FROM 방문일자) = 4 then '목'
                          when  EXTRACT(DOW FROM 방문일자) = 5 then '금'
                          when  EXTRACT(DOW FROM 방문일자) = 6 then '토' end ,
                  case when  EXTRACT(DOW FROM 방문일자) = 0 then EXTRACT(DOW FROM 방문일자) || ' ' ||'일'
                          when  EXTRACT(DOW FROM 방문일자) = 1 then EXTRACT(DOW FROM 방문일자) || ' ' ||'월'
                          when  EXTRACT(DOW FROM 방문일자) = 2 then EXTRACT(DOW FROM 방문일자) || ' ' ||'화'
                          when  EXTRACT(DOW FROM 방문일자) = 3 then EXTRACT(DOW FROM 방문일자) || ' ' ||'수'
                          when  EXTRACT(DOW FROM 방문일자) = 4 then EXTRACT(DOW FROM 방문일자) || ' ' ||'목'
                          when  EXTRACT(DOW FROM 방문일자) = 5 then EXTRACT(DOW FROM 방문일자) || ' ' ||'금'
                          when  EXTRACT(DOW FROM 방문일자) = 6 then EXTRACT(DOW FROM 방문일자) || ' ' ||'토' end
              FROM da_site_log
              WHERE 방문일자 = $방문일자
              GROUP BY 사이트id, 방문일자
              
            • da_site_log_hour: 시간대별 사이트 방문 로그(방문자 수, 페이지 뷰)를 집계(대시보드 성능을 위해 추가한 테이블)
              CREATE TABLE da_site_log_hour (
              사이트id varchar(100) NOT NULL,
              방문일자 date NOT NULL,
              방문자수 bigint,
              페이지뷰 bigint,
              시간 char(2),
              요일_번호 integer,
              요일 char(1),
              요일_정렬 varchar(5),
              constraint pk_da_site_log_hour primary key(사이트id, 방문일자, 시간)
              ) TABLESPACE ts_da;
              
              INSERT INTO da_site_log_hour
              SELECT 사이트id, 방문일자, count(distinct 사용자key), count(1),
                  lpad(EXTRACT(HOUR FROM 방문일시)::char(2), 2, '0') as 시간,
                  EXTRACT(DOW FROM 방문일자),
                  case when  EXTRACT(DOW FROM 방문일자) = 0 then '일'
                          when  EXTRACT(DOW FROM 방문일자) = 1 then '월'
                          when  EXTRACT(DOW FROM 방문일자) = 2 then '화'
                          when  EXTRACT(DOW FROM 방문일자) = 3 then '수'
                          when  EXTRACT(DOW FROM 방문일자) = 4 then '목'
                          when  EXTRACT(DOW FROM 방문일자) = 5 then '금'
                          when  EXTRACT(DOW FROM 방문일자) = 6 then '토' end ,
                  case when  EXTRACT(DOW FROM 방문일자) = 0 then EXTRACT(DOW FROM 방문일자) || ' ' ||'일'
                          when  EXTRACT(DOW FROM 방문일자) = 1 then EXTRACT(DOW FROM 방문일자) || ' ' ||'월'
                          when  EXTRACT(DOW FROM 방문일자) = 2 then EXTRACT(DOW FROM 방문일자) || ' ' ||'화'
                          when  EXTRACT(DOW FROM 방문일자) = 3 then EXTRACT(DOW FROM 방문일자) || ' ' ||'수'
                          when  EXTRACT(DOW FROM 방문일자) = 4 then EXTRACT(DOW FROM 방문일자) || ' ' ||'목'
                          when  EXTRACT(DOW FROM 방문일자) = 5 then EXTRACT(DOW FROM 방문일자) || ' ' ||'금'
                          when  EXTRACT(DOW FROM 방문일자) = 6 then EXTRACT(DOW FROM 방문일자) || ' ' ||'토' end
              FROM da_site_log
              WHERE 방문일자 = $방문일자
              GROUP BY 사이트id, 방문일자, 시간;
              

            사이트 유입 검색어

            사이트 유입 검색어 중, 네이버에서 검색된 검색어에 대한 네이버 통합검색의 사용자 특성별 수치 데이터입니다.
            <예시> 네이버에서 '네이버클라우드', '네이버 클라우드 플랫폼' 등을 검색해서 사이트에 유입된 방문자가 있는 경우, '네이버클라우드', '네이버 클라우드 플랫폼' 등의 검색어가 당일 하루 동안 네이버에서 검색된 전체 수치를 성별/연령대 등의 단위로 집계한 데이터

            사이트 유입 검색어가 네이버에서 얼마나 검색되고 있는지를 절댓값으로 파악할 수 있습니다. 이를 통해, 전체 트렌드 대비 사이트의 포지션을 비교 분석할 수 있습니다.
            PostgreSQL DB에 생성되는 테이블은 다음과 같습니다.

            • da_site_kwd: 사이트 유입 검색어에 대한 네이버 통합검색의 데이터를 저장
              CREATE TABLE da_site_kwd(
              검색어 varchar(500) NOT NULL,
              검색일자 date NOT NULL,
              pc_모바일 varchar(10) NOT NULL,
              성별 varchar(10),
              연령대코드 varchar(10),
              검색수 int,
              사이트id varchar(100) NOT NULL,     -- 추가한 칼럼(폴더명)
              연령대  varchar(10)                 -- 추가한 칼럼
              ) PARTITION BY RANGE (검색일자) TABLESPACE ts_da;
              CREATE TABLE da_site_kwd_202011 PARTITION OF da_site_kwd FOR VALUES FROM ('2020-11-01') TO ('2020-12-01');
              
              -- 코드값 매핑
              update da_site_kwd  set 연령대 = '0-12' where 연령대코드 = 1' and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '13-18' where 연령대코드 = 2 and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '19-24' where 연령대코드 = 3 and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '25-29' where 연령대코드 = 4 and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '30-34' where 연령대코드 = 5 and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '35-39' where 연령대코드 = 6 and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '40-44' where 연령대코드 = 7 and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '45-49' where 연령대코드 = 8 and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '50-54' where 연령대코드 = 9 and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '55-59' where 연령대코드 = 10 and 검색일자 = $검색일자;
              update da_site_kwd  set 연령대 = '60-' where 연령대코드 = 11 and 검색일자 = $검색일자;
              

            방문자 검색어

            검색어를 통해 사이트에 유입된 방문자가 유입 검색어를 입력하기 전/후 일정 시간 동안 네이버에서 검색한 검색어에 대한 검색 수치 데이터입니다. 이를 통해, 사이트 방문자의 관심사를 폭넓게 분석할 수 있습니다.
            <예시> 네이버에서 '네이버클라우드'를 검색해서 사이트에 유입된 방문자가 있는 경우, 그 방문자가 '네이버클라우드'라는 검색어를 입력하기 전/후 일정 시간 동안 '클라우드', 'NCP' 등의 검색어를 검색했다면 이 검색어에 대한 방문자들의 검색 수치 데이터

            PostgreSQL DB에 생성되는 테이블은 다음과 같습니다.

            • da_visitor_kwd_sum: 사이트 방문자가 당일 네이버에서 검색한 데이터를 저장
              CREATE TABLE da_visitor_kwd_sum(
              검색일자 date NOT NULL,
              검색어 varchar(500),
              검색수 bigint,
              사이트id varchar(100) NOT NULL    -- 추가한 칼럼(폴더명)
              ) PARTITION BY RANGE (검색일자) TABLESPACE ts_da;
              CREATE TABLE da_visitor_kwd_sum_201911 PARTITION OF da_visitor_kwd_sum FOR VALUES FROM ('2019-11-01') TO ('2019-12-01');
              
            • da_visitor_kwd_sum_top: da_visitor_kwd_sum 테이블의 데이터 중 일별로 검색 수가 높은 상위 1000개의 데이터만 추출해 저장(대시보드 성능을 위해 추가한 테이블)
              CREATE TABLE da_visitor_kwd_sum_top(
              검색일자 date NOT NULL,
              검색어 varchar(300) NOT NULL,
              검색수 bigint,
              사이트id varchar(100) NOT NULL,
              constraint pk_da_visitor_kwd_sum_top primary key(사이트id, 검색일자, 검색어)
              ) TABLESPACE ts_da;
              
              -- 날짜/사이트별 top 1000
              INSERT INTO da_visitor_kwd_sum_top
              SELECT 검색일자, 검색어, 검색수, 사이트id
              FROM da_visitor_kwd_sum
              WHERE 검색어 is not null and 검색일자 = $검색일자 and 사이트id = $사이트id
              ORDER BY 검색수 desc limit 1000;
              

            쇼핑 데이터

            쇼핑 데이터는 네이버 쇼핑의 카테고리별로 인입된 검색 키워드들에 대한 클릭 수 데이터입니다. 이를 통해, 특정 쇼핑 카테고리의 관심사와 관심도를 분석할 수 있습니다.
            PostgreSQL DB에 생성되는 테이블은 다음과 같습니다.

            • da_datalab_shopping_cat: 쇼핑 데이터를 신청한 카테고리의 이름, 코드 등의 데이터를 저장
              CREATE TABLE da_datalab_shopping_cat_id(
              카테고리id varchar(10),
              상위카테고리id varchar(10),
              카테고리이름 varchar(300),
              카테고리레벨 int,
              최종카테고리여부 char(1),
              노출순서 int,
              서비스사용여부 char(1),
              constraint pk_da_datalab_shopping_cat_id primary key(카테고리id)
              ) TABLESPACE ts_da;
              
            • da_datalab_shopping: 쇼핑 데이터를 신청한 카테고리에 속한 상품에 대한 검색어의 성별/연령대별 클릭 데이터를 저장
              CREATE TABLE da_datalab_shopping(
              클릭일자 date NOT NULL,
              pc_모바일 varchar(10) NOT NULL,
              검색어 varchar(300) NOT NULL,
              카테고리id varchar(10),
              성별 varchar(10),
              연령대코드 varchar(10),
              클릭수 int,
              연령대 varchar(10), -- 추가한 칼럼
              카테고리이름 varchar(300), -- 추가한 칼럼
              카테고리레벨 int, -- 추가한 칼럼
              분류1카테고리id varchar(10), -- 추가한 칼럼
              분류1카테고리이름 varchar(300), -- 추가한 칼럼
              분류2카테고리id varchar(10), -- 추가한 칼럼
              분류2카테고리이름 varchar(300), -- 추가한 칼럼
              분류3카테고리id varchar(10), -- 추가한 칼럼
              분류3카테고리이름 varchar(300) -- 추가한 칼럼
              ) PARTITION BY RANGE (클릭일자) TABLESPACE ts_da;
              CREATE TABLE da_datalab_shopping_202011 PARTITION OF da_datalab_shopping FOR VALUES FROM ('2020-11-01') TO ('2020-12-01');
              

            데이터 분석 환경

            Data Analytics Service는 다음과 같은 데이터 분석 환경을 제공합니다.

            제공 서비스상세 사양설명
            데이터 저장용 스토리지Object Storage(20 TB)
            • Object Storage 관리자 버킷에 접근 권한을 부여하여 제공
            • 매일 스토리지에 원본 데이터 저장
            • 연동 분석을 위한 고객의 데이터도 함께 저장 가능
              데이터 분석용 서버SSD High Memory 서버(1대)
              • 서버 접속을 위한 IP 및 계정 정보 제공
              • 서버에 데이터베이스와 시각화 도구(Superset)가 기본 설치되어 제공
                데이터 분석용 데이터베이스PostgreSQL데이터 분석을 위한 데이터베이스로, 서버에 설치되어 제공
                데이터베이스용 스토리지Block Storage(2 TB)데이터베이스 저장을 위한 스토리지로, 서버에 연결되어 제공
                분석 결과 시각화 도구Superset
                • Superset 접속을 위한 IP 및 계정 정보 제공
                • 서버에 설치 및 데이터베이스와 연동되어 제공
                  참고

                  데이터베이스에 최신 데이터가 저장되기 위해서는 블록 스토리지의 여유 공간을 확보해야 합니다. 블록 스토리지의 사용량을 확인하는 방법과 불필요한 데이터를 삭제하는 방법은 블록 스토리지 관리를 참조해 주십시오.

                  데이터 분석 애플리케이션

                  Data Analytics Service가 제공하는 추천 API는 사이트 방문 로그를 기반으로 분석된 아이템의 추천 점수를 제공합니다. 추천 API를 이용하여 사이트에 아이템 추천 기능을 추가하거나 온라인 마케팅 정책에 이용할 수 있습니다. 다음과 같은 두 가지 기준의 추천 API를 제공합니다.

                  • 인기 추천: 성별/연령대별 인기 아이템에 대한 추천 점수 제공
                  • 연관 추천: 성별/연령대별 특정 아이템과 연관 조회가 높은 아이템의 추천 점수 제공

                  추천 API를 사용하는 방법에 대한 자세한 내용은 추천 API 설정Data Analytics Service API 가이드를 참조해 주십시오.


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

                  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.