infiniflux introduction

37
The World's Fastest Time Series DBMS for IoT and BigData 김성진 대표 ㈜인피니플럭스

Upload: infiniflux-korea

Post on 18-Jan-2017

443 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Infiniflux introduction

The World's Fastest Time Series DBMSfor IoT and BigData

김성진 대표㈜인피니플럭스

Page 2: Infiniflux introduction

Table of Contents

회사 소개

시계열 빅데이터 & 문제점

제품 개요

주요 기능

성능 비교

구축 사례

1

2

3

4

5

6

Q&A7

Page 3: Infiniflux introduction

회사 소개

Page 4: Infiniflux introduction

회사 개요

실시간 IoT 데이터 관리 DBMS 개발 전문기업

회사명

설립일

주요이력

주요사업

임직원수

주소

㈜인피니플럭스

2013.03.21

초고속 시계열 DBMS 개발

기업부설연구소 설립 인가(2013.11)

벤처기업 확인 인정(2014.03)

중기청, 기술혁신개발사업 선정(2014.11)

서울시, 지역 고도화지원사업 선정(2014.12)

미래부, ICT 유망기술개발지원사업(2015.06)

14명(2015.11 기준)

서울특별시 구로구 디지털로 31길 19,

에이스테크노타워2차 703호

김성진 대표이사

“16년간 개발본부장, CTO, CEO 경력의 DB전문가”

- 서울대학교 경영전문대학원 MBA 석사(기술경영전공)

- 경북대학교 컴퓨터 과학과 석사(데이터베이스 전공)

- 알티베이스 창업 멤버 및 CTO, CEO 역임

- 지경부 대한민국 10대 신기술 수상 (2011)

- 정통부 신 소프트웨어 대통령상 수상 (2006)

4

Page 5: Infiniflux introduction

회사 지식재산권

5

지식재산권명 지식재산권출원인 출원번호

암시적타임칼럼값을이용한시간기반파티셔닝시스템및방법 ㈜인피니플럭스 한국/10-2015-0149890

고속의데이터입력시스템및방법 ㈜인피니플럭스 한국/10-2015-0149891

시간기반데이터에대한백업, 리스토어, 및마운트를위한데이터관리시스템및방법

㈜인피니플럭스 한국/10-2015-0149892

메모리공간을활용한시계열데이터처리성능향상방법 ㈜인피니플럭스 한국/10-2014-0017865

블록단위 파일압축을사용한검색성능향상방법 ㈜인피니플럭스 한국/10-2014-0017686

유휴컴퓨터를활용한클라우드대용량데이터분석방법 ㈜인피니플럭스 한국/10-2014-0017541

Page 6: Infiniflux introduction

시계열 빅데이터 & 문제점

Page 7: Infiniflux introduction

시계열 빅데이터란?

7

• 모니터링 : 현상및데이터추이이해

• 분석 : 과거이벤트확인및이해

• 방지 : 장애, 침입탐지

• 예측 : 미래의비정상상황및대처가능

실시간 데이터 활용 가치

시계열 데이터시간흐름에따라발생하는로그, 이벤트정보

동일패턴, 지속적으로끊임없이생성

시간 데이터발생시간존재, 시간은언제나증가

해당데이터소스의 ID 및상태정보반드시포함

단순 파일 저장대용량로그, 이벤트활용방법부재원인

Page 8: Infiniflux introduction

데이터 처리 요구사항

8

데이터 실시간 모니터링

데이터의 예측

데이터의 분석

데이터의 백업 및 빠른 복구요구사항

데이터의실시간수집

• 다수의 원시 소스로부터

초당 수만 ~ 수십만 건 저장

데이터의실시간모니터링

• 실시간 인덱싱 및 압축

• 실시간 질의 처리

데이터의예측

• 시계열 예측 알고리즘을 통한 위험

방지

데이터의백업및빠른복구

• 시계열 기반의 빠른 백업

• 과거 데이터 실시간 확인

데이터의분석

• 수 분 ~ 수 시간의 통계 분석 및 저장

Page 9: Infiniflux introduction

데이터 처리 문제점

9

데이터의실시간저장

실시간인덱스생성

저장공간+ I/O bandwidth

데이터의분석

데이터의백업및빠른복구문제점

• 단순 파일 적재=> 데이터 검색 불가능, 인덱스 필요

• 저장 및 인덱스=> 성능 하락

• 전통적 DBMS 인덱스(B+Tree)=> 매우 느린 성능

• Fractal Index, LSM 최신 인덱스=> 10,000 TPS 이상 힘듦

• 1K Payload, 100,000 TPS = 8,046 TB/Day(100MB/Sec)

• HDD : 100MB/Sec• SSD : 500MB/Sec

• 특정 시간 영역의 데이터 실시간 보관

• 특정 시간 영역의 실시간 접근, 분석 필요

• 수 천만 ~ 수 억건의 데이터 검색• 다양한 컬럼 조건들=> 단순 검색이 아님=> 다수 시계열 조건의 질의문 발생=> 대규모 읽기,쓰기 I/O 동시 발생

Page 10: Infiniflux introduction

기존 접근 방법

10

느린 성능으로 만족하거나, 오픈 소스를 다시 찾거나…

1. 기존 DBMS를 활용

데이터증가에따른성능저하

대규모데이터입력불가능

인덱스갱신지연으로실시간분석불가능

SQL은좋은데…

저장공간의기하급수적인증가

2. HADOOP 오픈 소스 활용

실시간대량데이터저장느림

실시간분석을위한질의문작성어려움.

최소5대이상시스템필요

많은독립적오픈소스패키지유지보수

3. 파일 시스템 활용

대량, 실시간으로저장가능

자체인덱스구축, 장애시복구문제

실시간검색및통계처리어려움

백업및복구데이터분석느리거나, 불편하거나

4. 검색 엔진(Splunk 등) 기반 기술 활용

데이터입력과인덱스간극의증가실시간분석어려움

컬럼단위데이터분석어렵거나, 매우복잡

대량의데이터분석시저장관리자기술취약

SQL 활용불가능새로운언어습득필요

고성능데이터입력불가능데이터의텍스트변환

Page 11: Infiniflux introduction

제품 비교표

InfiniFlux 기존 DBMS BIG DATA 검색엔진기반

시계열데이터관리◎

(시간을 기준으로자동 파티션화)

(시간 데이터로파티션화)

○(시간을 Key로 이용)

○(시간을 검색어로 이용)

다량데이터의실시간추가

(인메모리 아키텍쳐, 시계열 인덱스 분할)

×(디스크 병목)

(데이터를 복수 노드분산)

(데이터를 복수 노드분산)

다양한방법의

분석,실시간집계

(열형 스토어에 의해I/O최적화)

(레코드 단위의Read가 필요)

×

(열 데이터로의

인덱스 불가)

×

(열 데이터로의

인덱스 불가)

SQL언어지원○

(시계열 데이터 관리에적합)

(SQL 언어 지원)× ×

지식재활용및

관리편의성

(기존 DB 관리와 동일)

(기존 DB 관리와 동일)

×

(새로운 기술)

×

(새로운 기술)

11

Page 12: Infiniflux introduction

제품 포지셔닝

Realtime

Big DataSmall

(Transaction)Data

Batch 12

In-Memory DBMS

Engineered System

Ad-hoc SolutionsSearch Solution

(splunk)

Disk DBMSBI Solutions

Hadoop/NoSQLHive/Tajo

No DBMS,Infiniflux here!

Page 13: Infiniflux introduction

제품 개요

Page 14: Infiniflux introduction

InfiniFlux 개요

14

InfiniFlux는 대량으로발생하는시계열머신로그데이터를실시간으로저장및분석하는혁신적인기술의DBMS

로그발생 기운영체제

서버

센서

보안

통신장비

분석 서버

관리시스템

대시보드

리포팅서버

로그/이벤트저장

SQL 쿼리

결과값

InfiniFlux

Page 15: Infiniflux introduction

InfiniFlux 아키텍쳐

15

log collector

built-in

built-in

built-in

User-defined

User-defined

Client API

시계열 조회 실시간 검색 엔진

실시간 데이터 압축 저장

시간 기반 파티셔닝

초고속 입력 실시간 인덱싱

혼합형 인메모리/디스크 선택

표준 ANSI SQL, 인터페이스

RESTful

Python

JDBC

ODBC

CLI

서버

통신장비

센서

분석서버

대시보드

리포팅서버

Page 16: Infiniflux introduction

InfiniFlux 특징

16

Write Once, Read Many

Ultra Fast Data Loading

High Concurrency

Real-Time Query Execution

Time Series Query

Real-Time Compression

Full-Text Search

Innovative Backup/Restore

More than 1M record / sec

Page 17: Infiniflux introduction

InfiniFlux 기술

17

InfiniFlux

Disk Based Columnar

Architecture

Full-Text Indexing

Real-time Compression

In-Memory Cache

Architecture

Multi-Disk Hyper Writing

Technology

Page 18: Infiniflux introduction

성능 비교

Page 19: Infiniflux introduction

성능 비교 환경

필드로그 생성

시간출발지

ip출발지

port도착지

ip도착지port

프로토콜타입

로그텍스트

상태 코드데이터크기

필드명 arrivaltime srcip srcport dstip dstport protocol eventlog eventcode eventsize

필드 타입 datetime ipv4 integer ipv4 integer shortvarchar(1024)

short long

19

기본적인 하드웨어 환경에서 1억건, 13GB의 데이터로각 제품의 데이터 입력 및 분석 성능 측정

데이터의실시간저장하드웨어

사양

- CentOS 6.6

- Intel(R) Core(TM) i7-4790

CPU @3.60GHz(4 core)

- 32GB memory

- SATA DISK

데이터의실시간저장테스트대상

- InfiniFlux 2.0

- MySQL 5.2

- Splunk 6.2.3

- Elasticsearch 1.5.3

- mongo 3.0.3

[DATA]

Page 20: Infiniflux introduction

3

1

85

208

4

0 50 100 150 200 250

Elasticsearch

MySQL

splunk

mongoDB

INFINIFLUX

COMPLEX SEARCH(sec)

4337

13849

783

1832

393

0 5000 10000 15000

Elasticsearch

MySQL

splunk

mongoDB

INFINIFLUX

OVERALL RESULT(sec)

20

성능 비교 결과

4334

13848

698

1624

389

0 5000 10000 15000

Elasticsearch

MySQL

splunk

mongoDB

INFINIFLUX

DATA LOADING TIME(sec)

20.4

17.52

21.6

42.11

4.1

0 10 20 30 40 50

Elasticsearch

MySQL

splunk

mongoDB

INFINIFLUX

STORAGE SIZE(GB)

Page 21: Infiniflux introduction

InfiniFlux mongoDB splunk MySQL Elasticsearch

during time(sec) 389( 00:06:29 ) 1624( 00:10:16 ) 698 (00:11:38 ) 13848(03:50:48) 4334 (01:12:14)

insert csv size(GB) 13G

data size(GB) 4.1G 42.1157G 8.6G 17.52G 20.4G

compress rate(%) 76.92%Uncompressed

(223.97%)33.95%

Uncompressed(130.77%)

Uncompressed(156.92%)

memory used(%) 29.22 73.75 40.78 87.59 89.82

memory used(GB) 9.0756 22.9073 12.667 27.20 27.8965

data search

text search(260만) 2s 213s ( 00:03:33 ) 424s ( 00:07:04 ) 31s 2s

ip search(266만) 1s 212s ( 00:03:32 ) 40s 1s 3s

time search 1초미만 211s ( 00:03:31 ) 8s 1s 2s

statistic

sum 25s 217s ( 00:03:37 ) 435s ( 00:07:15 ) 35s 1s

average 25s 219s ( 00:03:39 ) 436s ( 00:07:16 ) 46s 4s

count 17s 218s ( 00:03:38 ) 382s ( 00:06:22 ) 45s 3s

complex query 4s 208s 85s 1s 3s

OVERALL RESULT 393s 1832s 783s 13849s 4337s

*테스트의 상세내용 : http://www.infiniflux.com/performance 참조

21

성능 비교 상세

Page 22: Infiniflux introduction

주요 기능

Page 23: Infiniflux introduction

주요 기능 – 로그수집(log collector)

23

데이터의실시간저장

• Syslog

• Apache access

• Tomcat server

• Java, PHP, etc

• Application log

• InfiniFlux log

• Custom log

</>

</>

</>TCP 송신 InfiniFluxAppend

Client

ifluxcollector

Page 24: Infiniflux introduction

주요 기능 – 입력능력(대용량 데이터의 빠른 입력/처리)

• 인덱스가 다수 존재하는 상황에서도 초당 300,000 건에서 최고 2,000,000 건 입력

• 실시간 인덱싱 (초고속 Bitmap Index 지원)

• 실시간 2단계 압축 – 데이터 패턴 기반 논리적 압축, 페이지 블록 기반 물리적 압축

초고속 데이터 입력

• 시계열 검색을 위한 효율적인 아키텍처 실시간 구성

• 초고속으로 임의의 레코드 입력 시간 검색 가능

타임 기반 데이터 파티션

• 다수의 인덱스가 있더라도 고성능 인덱스 구성 가능

• 입력과 동시의 실시간 비트맵 인덱스

• 병렬 인덱싱 파라미터 조정 가능

비트맵 인덱스

24

Page 25: Infiniflux introduction

• ODBC, CLI, JDBC, RESTful API 지원

• Join, subquery, group by, having, order by

표준 SQL 인터페이스

• 인터넷 주소 타입 지원 : IPv4, IPv6

• 무부호 정수형 타입 : unsigned type (16, 32, 64 bit)

• LOB 지원(최대 64MB) : text, binary

다양한 데이터 타입 지원

• ESEARCH : partial ASCII 검색 ( ‘%tres%’)

• IPv4 search : ‘192.168.*.*’

• Netmask : where ipv4 contained ‘232.112.3.4/32’

확장 검색 지원

25

주요 기능 – 분석능력(실시간 검색 및 분석)

Page 26: Infiniflux introduction

• 데이터 검색할때 시간 범위를 쉽게 지정하기 위해서 제공되는 키워드

• 현재 시각 기준 10분 전까지 데이터의 합계를 구하는 경우

SELECT SUM(traffic) FROM T1 DURATION 10 minute;

• 현재 시점에서 한시간 이전 부터 10분간 데이터의 합계를 구하는 경우

SELECT SUM(traffic) FROM T1 DURATION 10 minute BEFORE 1 hour;

DURATION 키워드 제공

• 일정 크기 이하의 데이터 유지를 위한 기능

• 지금부터 1일 동안의 데이터를 제외하고 모두 삭제하는 경우

DELETE FROM T1 EXCEPT 1 day;

• 2015년 6월 1일 이전의 데이터를 모두 삭제하는 경우

DELETE FROM T1 BEFORE TO_DATE(‘2015-06-01’, ‘YYYY-MM-DD’);

선택적 삭제 지원

26

주요 기능 – SQL (시계열 특성을 반영한 SQL 구문)

• 데이터 입력 순간 숨은 칼럼(_arrival_time)에 nano second 를 자동으로 저장함.

• 조회시 가장 최근에 입력된 데이터부터 시간의 역순으로 출력됨.

나노 세컨드 단위의 timestamp 자동 저장

Page 27: Infiniflux introduction

• 빠른 텍스트 검색을 위해 ‘SEARCH’ 키워드 제공

• msg 필드에 Error 그리고(또는) 102를 포함하는 경우

SELECT id, ipv4 FROM T1 WHERE msg SEARCH ‘Error 102’;

SELECT id, ipv4 FROM T1 WHERE msg SEARCH ‘Error’ or msg SEARCH ‘102’;

SEARCH

• 다른 복잡한 연산 조건과 함께 검색이 가능함.

• ip 주소가 192.168.로 시작하고, msg 필드에 Error 그리고 102를 포함하는 레코드를 출력하는 경우

SELECT id,ipv4 FROM T1 WHERE msg SEARCH ‘Error 102’ AND ipv4 = ‘192.168.*.*’;

• ip 주소가 192.168.22.11/24 범위에 속하고, msg 필드에 Error 그리고 102를 포함하는 레코드 출력하는 경우

SELECT id,ipv4 FROM T1 where msg SEARCH ‘Error 102’ AND ipv4 contained ‘192.168.22.11/24’

복합 연산 조건

27

주요 기능 – 검색(Full Text Search)

• 전통적인 DBMS의 단어 검색은 인덱스를 이용할 수 없는 LIKE를 활용하여 매우 느림

SELECT * FROM T1 WHERE MSG LIKE ‘%Error%’;

LIKE

Page 28: Infiniflux introduction

DB

Backup file

• 시간 기준으로 데이터의 저장 공간 및 복사량의 최소화

BACKUP 개념도

28

주요 기능 – 백업(보관 및 복구)

Backup image 생성

Table1 Table2 Table3 Table4 Table5

date2 date2 date2 date2 date2

날짜 기반의 Backup 대상

date3 date3 date3 date3 date3

date2 date2 date2 date2 date2

Restore 복구 data

Table1 Table2

Table3 Table4 Table5

InfiniFlux 저장장치(local disk/NFS/Cloud)

date2 date2

date2 date2 date2

date1 date1 date1 date1 date1

Page 29: Infiniflux introduction

• BACKUP DATABASE [FROM start_time TO end_time] INTO [DISK | IBFILE] = ‘backup_file_path'

• 지정된 시간 범위의 DB에 대하여 지정 경로에 백업을 수행

• 전체 DB에 대하여 백업이 수행

• 단일 파일로 백업 가능

BACKUP

• ifluxadmin –r ‘backup_file_path’

• Backup image와 겹치는 영역의 data를 database image로 update

• database에 해당 테이블이 존재하지 않으면 자동 생성

RESTORE

• [MOUNT | UNMOUNT] DATABASE ‘backup_file_path'

• backup image에 존재하는 table을 현재 DB에 read only view로 생성함.

• 수 초 이내 mount / unmount 명령어를 통해 백업 파일을 즉시 활용 가능함.

MOUNT

29

주요 기능 – 백업(보관 및 복구)

Page 30: Infiniflux introduction

구축 사례

Page 31: Infiniflux introduction

시큐아이

31

기존방화벽로그를파일형태로저장하여사용하였으나대용량로그를처리하기위해서InfiniFlux를 이용하여로그관리와빠른검색및리포팅지원

로그를 InfiniFlux로 저장로그를 파일 형태로 저장

Page 32: Infiniflux introduction

시큐아이

보안 로그의 파일 보관

• 방화벽에서 발생하는 보안 로그를 파일로 저장

• 최대 초당 10만건 로그 발생

• 대용량 로그에서 필요한 내용의 검색이 어려움

• 저장된 로그를 분석하여 리포팅이 어려움

• 고객이 로그를 분석하기 위해서는 외부의 별도분석툴을 이용하여 분석을 수행 하여야 함

로그를 DB 저장 및 검색

• 최대 초당 10만건 로그를 InfiniFlux에 저장

• 압축을 통한 디스크 저장 공간의 절약

• 질의문을 이용한 다양한 조건 검색

리포팅 강화

• 대시보드에 다양한 정보 출력

• 통계 데이터의 주기적 저장

• 리포트 작성 시 다양한 통계 정보를 활용

• 다양한 통계 정보를 바탕으로 보안 위협 분석

32

AFTERBEFORE

Page 33: Infiniflux introduction

퓨처시스템(금융권)

전국 1,400여 개 지점

33

모니터링

Firewall

• 장비별 로그 조회• 리포팅

InfiniFlux

통합 로그관리 시스템

FirewallLog

일일 45억 건, 1TB의 Firewall Log를 실시간으로 처리하기 위하여 InfiniFlux 도입

InfiniFlux InfiniFlux

Page 34: Infiniflux introduction

초당 10만 건 로그 저장 불가

• 기존 RDMS에서는 입력 속도를 향상하기 위해서실시간 인덱스 생성 포기

• 인덱스 생성 없이도 초당 10만 건 입력 불가

• 인덱스는 배치로 생성, 실시간 분석에 어려움

• 관리 대상 장비가 증가 할수록 고성능 H/W 추가

초당 10만 건 이상 로그 저장

• 초당 10만 건 이상 로그를 인덱스 생성,저장

• 실시간 모니터링 및 분석

H/W 리소스 감소

• 기존 대비 H/W 사용률이 70% 이상 감소

• 저장 공간 50% 이상 감소

34

AFTER

Log 저장

초당 10만건 저장 불가실시간 모니터링 불가

퓨처시스템(금융권)

RDBMS

Firewall

인덱스 배치 처리

Log 저장

초당 10만건 이상 저장실시간 모니터링 가능

Firewall

인덱스 실시간 처리InfiniFlux

BEFORE

Page 35: Infiniflux introduction

Q&A

Page 36: Infiniflux introduction

데모 시연

Page 37: Infiniflux introduction

THANKYOU

Website : www.infiniflux.comEmail : [email protected] : 02-2038-4606