User Tools

Site Tools


public:아이리스를_이용한_분석하기_첫걸음_-_아이리스_db_버전

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

public:아이리스를_이용한_분석하기_첫걸음_-_아이리스_db_버전 [2018/08/10 16:31] (current)
jhnam created
Line 1: Line 1:
 +====== 데이터 흐름 ======
 +
 +{{:​public:​pasted:​20180810-163043.png}}
 +
 +  * 현재(218-08-08) 없지만 곧 추가 예정인 기능으로 실행 결과가 아니라 결과가 나오기 까지 실행되어야 할 **명령어 구문** 을 output으로 저장, 피벗, 고급시각화,​ 대화형분석 메뉴로 전달 하는 기능이 구현 예정
 +  * REST API 형식으로 python, R 등 언어에 구애받지 않고 쉽게 해당 구문을 IRIS 에 전달하고 결과를 받을 수  있다
 +
 +====== IRIS 에 데이터 import 하기 ======
 +
 +===== IRIS 테이블 생성 =====
 +  * DB 브라우저에서 생성하거나
 +  * 데이터추가 메뉴에서 헤더가 있는 데이터파일을 로딩하면서 테이블을 추가할 수 있다.
 +  * 중요한 keyword 로 **파티션 구분 일** 은 파티션을 구분하는 14자리 timestamp(yyyymmddhhmmss) 타입의 컬럼을 의미한다.
 +  * **파티션 키** 컬럼은 키로 사용될 컬럼.
 +
 +=== 1. DB브라우저에서 테이블 생성하기 ===
 +{{:​public:​pasted:​20180810-163052.png}}
 +
 +{{:​public:​pasted:​20180810-163056.png}}
 +
 +=== 2. 데이터 추가 메뉴에서 테이블 생성하기 ===
 +  * header 가 있는 데이터 파일 대상
 +  * 데이터 추가 / 컬럼이름,​ 유형 등 데이터 변환 가능 ​
 +  * 데이터 설정 단계에서 기존 테이블에 추가 insert 하거나 새 테이블을 생성할 수 있다.
 +
 +{{:​public:​pasted:​20180810-163103.png}}
 +
 +===== 데이터 파일 읽어서 변환하기 =====
 +  * CSV 로 저장된 파일을 읽어서 그대로 import 하지 않고, 변환을 해야 할 때는 **데이터추가** 메뉴에서 변환
 +  * 기존 테이블 또는 새 테이블을 만들어서 입력할 수 있다.
 +
 +===== 데이터 로딩 =====
 +  * 대량의 데이터 로딩
 +    * python API 를 이용한 loader 프로그램을 이용한다.
 +    * 시간 순서 및 파티션 단위로 생성돤 파일을 로딩하는 방식이다. -> loader 프로세스 개발  ​
 +  * R 에서의 데이터 INSERT : IRIS 의 메뉴(DB브라우저/​ 데이터추가) 이용 권장
 +
 +
 +
 +===== R 에서 데이터 select : use riris package =====
 +
 +
 +  * SQL을 실행할 수 있는 API  package : riris
 +  * IRIS table  로 부터 SQL 로 데이터를 dataframe 으로 저장할 수 있다.
 +  * 이슈
 +    * IRIS 에 구현되어 있는 명령어 구문의 인자처리 방식으로 인해 데이터의 **입력** 은 IRIS 의 **데이터 추가 메뉴** 를 이용하거나
 +    * python API 를 이용한 loader 를 만들어서 입력한다.
 +    * GLOBAL 테이블 정보가 아니라 partition을 생성하여 인서트해야 하는 데이터는 IRIS 의 **데이터추가** 메뉴를 이용해야 partition , key 를 생성하기 쉬우며, 따로 control file 을 생성하지 않아도 된다.
 +  * example code 는 R-studio 의 example_code 디렉토리에 Rmd 로 있음
 +
 +  library(riris)
 +  ### connect , authenticate to IRIS
 +
 +  con <- riris.connect(ip,​ port, id, passwd, libInfo='​riris_091'​)
 +
 +  ### set DB field/​record seperator
 +  print(riris.SetFieldSep(con,​ ","​))
 +  print(riris.SetRecordSep(con,​ "​\n"​))
 +
 +  sql <-  "/*+ LOCATION ( PARTITION >= '​20180706200000'​ AND PARTITION < '​20180706210000'​ ) */
 +  SELECT EVENT_TIME, UDATE, SYSTEM_NAME,​ COUNT(*) as CNT, MAX(SYSTEM_AD_SCORE) as AD_SCORE
 +       FROM TEST_ID.TEST_TB_NEW
 +            WHERE SUBSTR(SYSTEM_NAME,​ 2, 3) <> '​BAK'​
 +               OR SUBSTR(SYSTEM_NAME,​ 1, 4) <> '​BACK'​
 +            GROUP BY EVENT_TIME, UDATE, SYSTEM_NAME ; "
 +
 +  res <- riris.Execute2(con,​ "​select * from TEST_TAB;"​)
 +  res.dfrm <- riris.FetchAll(con,​ fldSep=fldSep,​ recSep=recSep)
 +
 +
 +===== 분석 결과 저장 =====
 +
  
public/아이리스를_이용한_분석하기_첫걸음_-_아이리스_db_버전.txt · Last modified: 2018/08/10 16:31 by jhnam