IRIS DB 기반의 데이터

IRIS Studio 에서 주로 사용되는 데이터 유형 에는 “데이터 모델”, “DSMS” 가 있습니다.
  • 데이터 모델
    • 데이터를 추상화한 데이터 묶음으로서 IRIS 내에서 별도의 테이블처럼 사용할 수 있습니다. RDBMS, IRIS DB, OBJECTSTORAGE, HDFS 의 데이터를 데이터 모델로 생성할 수 있습니다.

    • 데이터 모델 manual 이동

  • DSMS
    • Data Source Manager Service, 다양한 데이터에 대한 연결정보를 제공하여 해당 데이터 소스에 맞는 검색어를 사용합니다.

    • DSMS manual 이동

여기서는 IRIS DB 테이블 중 로컬 테이블 데이터를 대상으로 만든 “데이터 모델” 과 “DSMS” 에 대해 설명합니다.
IRIS DB 의 로컬 테이블 데이터를 IRIS 검색어로 효율적으로 조회하기 위해서는 IRIS DB 의 특징에 맞춘 별도의 방법이 필요합니다.

IRIS DB 는 대용량의 시계열 데이터를 실시간으로 고속 저장, 검색을 할 수 있는 대용량 분산 DB 입니다.
14자리 timestamp 타입의 컬럼을 기준으로 N분, N시간, N일, N달, N분기, N년(year) 등 으로 PARTITION 을 생성하여 대량의 데이터를 고속으로 분산 처리하여 입력합니다.
그리고 데이터를 조회할 때에는 LOCATION HINT 를 통해 조회 대상 PARTITION 을 지정하여 빠른 검색을 할 수 있습니다.

데이터 모델

Discovery 에서 데이터 모델 생성하기

IRIS Discovery >> 데이터 모델 의 목록에서 “데이터 유형” 필드의 값이 IRIS 인 경우의 데이터 모델에 해당합니다.
IRIS DB 와의 연결정보를 통해 IRIS DB 테이블을 지정한 후 검색어 결과로 나온 데이터 셋을 데이터 모델로 생성합니다.
IRIS 데이터모델 01
데이터 모델 생성 시에 시간 컬럼에 해당 IRIS DB 테이블의 Partition 생성 기준이 되는 시간 컬럼을 지정합니다. 그리고 YYYYMMDDHHmmss 로 포맷을 지정합니다.

Studio 에서 데이터 모델 유형으로 데이터 객체 생성하기

데이터 객체의 시간 설정

시간 선택 에서 조회 시간을 “미리 설정” 또는 “날짜 및 시간범위” 를 지정하거나 객체 연결 을 사용합니다.
  • 시간 선택미리 설정(전체 선택 제외)
    • 미리 설정 목록에서 지정을 합니다. 이 때 데이터의 양, PARTITION range( 1시간/1일/1주/1달/…) 에 따라 적절한 시간 목록을 선택해야 합니다.
      • 미리 설정 시간 예시 : 최근 60분, 최근 4시간, 최근 24시간, 최근 7일

    • 선택한 시간에 해당하는 PARTITION 을 조회 대상으로 합니다. 해당 PARTITION 내에서 시간 범위를 지정할 경우에는 검색어 쿼리에 where 절에 PARTITION range 를 정하는 시간 컬럼으로 상세 범위를 설정합니다.

# 예) "미리 설정 - 최근 24시간" 으로 선택, 실제 가져올 데이터의 시간은 24시간 보다 작은 범위의 데이터 일 때
# 시간 선택           : 최근 24시간 ( 2021/10/05 02:05:23 ~ 2021/10/06 02:05:22 )
# 대상 데이터 조회 시간 : 2021/10/05 03:40:00 ~ 2021/10/05 23:10:00

* |  where PRERGSTDT >= '20211005034000'  and PRERGSTDT <= '20211005231000'
  • 시간 선택미리 설정 - 전체 선택
    • “전체 선텍” 은 객체 연결과 같이 이벤트 변수 를 받아서 처리하는 경우에만 선택하고, 이벤트 변수로 받은 시간을 검색어 구문 제일 앞에 넣어야 합니다.

    • 아래 처럼 작성한 검색어 구문은 start_date, end_date 에 해당하는 PARTITION 만을 대상으로 검색합니다.

IRIS 데이터모델 03
* start_date= 20210928000000   end_date= 20211005102712
| where CNTRCTCNCLSMTHDNM != '수의계약'
  • 객체 연결
    • 시간 선택 목록에서 알맞은 목록이 없거나, 트리거 이벤트로 시간 변수를 받아서 처리할 경우에는 객체 연결 을 사용합니다.

    • 객체 연결을 사용하기 위해서는 기간설정 객체 등을 통해 이벤트 변수 로 시작 시간, 끝 시간을 입력 받아야 합니다.

    • 데이터 객체의 실행 방법 설정 은 트리거를 설정합니다. 기간 설정 객체에서 이벤트 변수를 받는 경우에는 버튼 객체를 클릭하는 이벤트로 트리거를 설정합니다.

    • 기간설정 객체 이용
      • 기간설정 객체의 변수 ${date_time_range_picker_1.startDate}, ${date_time_range_picker_1.endDate}객체 연결 에서 시작 시간, 끝 시간으로 설정합니다.

      • 객체 연결에서 사용할 수 있도록 기간설정 변수의 시작 시간, 끝 시간 변수값 포맷은 YYYYMMDDHHmmss 로 설정해야 합니다.

IRIS 데이터모델 02

DSMS

Studio 에서 DSMS 유형으로 데이터 객체 생성하기

데이터 객체의 검색어 구문

IRIS DB 테이블 중 로컬 테이블 조회시에는 검색어 구문에 조회 시간을 LOCATION HINT 에 넣어야만, 조회 시간에 해당하는 PARTITION 만을 대상으로 빠른 검색이 가능합니다. IRIS 로컬 테이블에서 LOCATION HINT 사용하기

IRIS 데이터모델 04
  • LOCATION HINT 사용 검색어 예시 ( 1시간 단위 PARTITION 일 때 )
    • 데이터 조회 시간 : 2021/10/05 03:40:00 ~ 2021/10/05 23:10:00

    • LOCATION HINT : PARTITION ‘20211005030000’, ‘20211005040000’,,, ‘20211005230000’ 를 대상으로 합니다.

 # LOCATION HINT 로 PARTITION 범위를 지정한 후, 상세 조회 시간을 where 절에 추가합니다.

 /*+ LOCATION ( PARTITION >= '20211005030000'   AND PARTITION <= '20211005235959' ) */
 select * from EPS.EPS_DATA
 where PRERGSTDT >= '20211005034000'
   and PRERGSTDT <= '20211005231000'
   and CNTRCTCNCLSMTHDNM != '수의계약'

# partition key 가 설정된 경우
/*+ LOCATION (KEY = '2' AND PARTITION >= '20150101000000' AND PARTITION < '20150102000000') */
select * from EPS.EPS_DATA
 where CNTRCTCNCLSMTHDNM != '수의계약'
  • 참고 : IRIS LOCAL 테이블 생성 예시

CREATE TABLE LOCAL_TEST_TABLE (
   k         TEXT,
   p         TEXT,
   a         TEXT
)
datascope       LOCAL
ramexpire       30
diskexpire      34200
partitionkey    k
partitiondate   p
partitionrange  10
;
  • IRIS 테이블 옵션

IRIS에서는 테이블을 생성시 테이블의 타입 및 보관 주기등을 설정해 주어야 합니다.

  • datascope : 데이터 저장 방식 설정 [ LOCAL OR GLOBAL ]

  • ramexpire : 램에 저장하는 시간 [ GLOBAL 테이블일 경우 0 ]

  • diskexpire : 디스크에 저장하는 시간 [ GLOBAL 테이블 경우 0 ]

  • partitionkey : KEY 로 사용할 값이 저장되는 컬럼 [ GLOBAL 테이블 경우 None ]

  • partitiondate : PARTITION으로 사용할 값이 저장되는 컬럼 [ GLOBAL 테이블 경우 None ]

  • partitionrange : 하나의 PARTITION 이 가지는 범위 [ GLOBAL 테이블 경우 0 ]