인메모리 데이터베이스(In-memory Database)는 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 데이터베이스 관리 시스템이다. 디스크에 설치되는 방식에 비해 처리 속도가 빠르다.


디스크가 아닌 주 메모리에 모든 데이터를 보유하고 있는 데이터베이스. 디스크 검색보다 자료 접근이 훨씬 빠른 것이 가장 큰 장점이다. 데이터 양의 빠른 증가로 데이터베이스 응답 속도가 떨어지는 문제를 해결할 수 있는 대안이 인 메모리 데이터베이스이다. 전형적인 디스크 방식은 디스크에 저장된 데이터를 대상으로 쿼리를 수행하지만, 인 메모리 방식은 메모리상에 색인을 넣어 필요한 모든 정보를 메모리상의 색인을 통해 빠르게 검색할 수 있다.


인메모리 컴퓨팅은 전통적으로 디스크 기반 스토리지에 상주하는 워크로드를 메인 메모리로 옮기는 기술이다. 이는 기존 방식에 비해 수 배에 달하는 성능 개선 효과를 가져온다.


하지만 이 기술은 데이터를 추출해 관계형 데이터 웨어하우스로 옮기는 데 따른 장점보다는 트랜잭셔널 시스템에서 실시간으로 이벤트를 분석하는데 따른 장점이 더 크다. 인메모리 분석은 사실 최신 기술이 아니다. 가상화나 클라우드와 같이 새롭게 조명받는 오래된 아이디어에 가깝다.



인 메모리(In memory) 기술에 대하여 PART1-2-3

출처 - http://blog.naver.com/PostView.nhn?blogId=start_fromus&logNo=140155878569


Part 1 서론


 1) 오늘날의 시장과 실시간 의사결정의 중요성
 2) 폭발적인 데이터의 양과 실시간 의사결정의 어려움
 3) 실시간 경영(Real Time Business)을 가능하게 하는 In-memory

 


서론

 

1) 오늘날의 시장과 실시간 의사결정의 중요성


과거에는 경영자의 '직감'만으로 모든 경영환경을 파악할 수 있었고 이는 곧 빠른 의사결정과 실행으로 이어져 성공을 달성할 수 있었다. 그러나 전 세계가 하나의 시장으로 통합되고, 고객들의 욕구가 빠르게 변해가면서 높은 불확실성과 정보의 홍수로 대변되는 지금의 경영 환경에서는 과거와 같이 경영자의 막연한 '감'에 의지한다면 오히려 해당 기업을 위험에 처하게 할 수 있다. 따라서 오늘날 경영환경에서는 ‘속자생존’과 ‘빅 데이터’에 적응하는 것이 생존의 핵심이 되었다. 속자생존이란 시장에 빠르고 민감하게 대응하는 기업이 생존한다는 의미이다. 오랜 시간을 들여 완벽한 제품을 만드는 것보다 고객의 니즈를 재빨리 파악하고 제품화하여 한시라도 빨리 시장에 출시하는 것이 성공적인 기업의 필수 요소가 되었다. 이러한 속자생존의 경영환경에서 오늘 날 기업들에게는 시장의 무수한 데이터, ‘빅 데이터’를 분석하여 얻은 정보를 바탕으로 실시간으로 의사결정을 내리는 것이 핵심이 되었다.

 

 

2) 폭발적인 데이터의 양과 실시간 의사결정의 어려움


현대 기업이 보유하고 사용해야 하는 데이터양은 엄청나다. 오늘날 글로벌 기업들은 전 세계 시장의 고객 니즈와 수요동향, 각지의 공장의 생산을 관리해야 하며 복잡한 공급망을 비롯하여 최신 트렌드 파악, 고객 민원에 대한 응답 속도 개선, 영업 인력들 관리에 관련된 엄청난 양의 데이터를 수집하고 분석해야 한다. 시장조사기관 포레스터 리서치에 따르면 보통 한 개 기업이 핵심 비즈니스 애플리케이션에 사용하는 데이터양은 매 18개월을 주기로 두 배씩 증가한다고 한다. 급격히 증가하는 데이터 처리를 위해 하드웨어를 구매하고 유지·관리해야 하는 기업 입장에서는 그 비용이 만만치 않다. 더욱이 현재 기업들의 이러한 하드디스크 기반의 데이터 처리 방식은 데이터양이 급증할 경우 과부하 및 병목 현상이 생기며, 이를 방지하기 위해 최선의 방안으로 데이터를 여러 단계에서 처리 하는 프로세스를 가지고 있다. 이러한 단계별 데이터 처리 프로세스는 상대적으로 시간이 많이 소요되기에 실시간 의사결정을 어렵게 한다.

 

 

3) 실시간 경영(Real Time Business)을 가능하게 하는 In-memory 기술


'Real Time'이라는 용어는 시스템 측면에서 시스템에 입력된 데이터 처리가 명령과 동시에 이루어지거나 또는 데이터를 입력하여 결과가 출력되는 시간은 일률적이지는 않지만 대개 수초 이내여야 리얼 타임 시스템이라 부를 수 있다고 정의 된다. 이를 바탕으로 비즈니스 측면에서 본 실시간 경영(Real Time Business)은 기업이 무수히 많은 시장과 기업 내부의 데이터를 빠르게 처리하고 분석하여 시장의 요구와 변화에 대응하면서 비즈니스를 수행함을 의미한다. In-Memory 기술은 기존의 데이터 처리 방식에 비해 훨씬 뛰어난 성능으로 데이터를 처리하며 데이터 처리 과정을 통합하여 데이터 처리 시간을 줄임으로써 실시간 의사결정을 내리는 Real Time Business를 가능하게 한다.



In-Memory 기술 이란?

 

 

1)In-Memory 정의 (인메모리 정의) 

 

In-Memory 기술은 방대한 양의 데이터를 하드디스크가 아닌 메모리에 보관하고 실시간으로 분석할 수 있게 함으로써 각종 데이터베이스를 거치지 않고 즉시 얻을 수 있도록 하는 기술이다. 일반적으로 컴퓨터상에서 하드디스크와 메모리의 데이터 처리 속도는 100배 이상이다. 따라서 In-Memory 기술을 적용한 데이터베이스 관리 시스템은 이전의 디스크 기반 모델에 비해 수십 배에서 수백 배의 성능 향상을 이끌어 낸다. 대량의 데이터 이동, 상호 비교, 갱신이 겨우 몇 초 안에 가능해진다.

 

 

2)In-Memory 등장배경 (인메모리 등장배경)

 

오늘날 기업은 끊임없이 변화하고 불확실한 글로벌 시장에서 경쟁해야 됨에 따라 경영자의 의사결정을 정확하고 빠르게 지원할 수 있는 경영분석(Business Intelligence)이 필요하게 되었다. 경영분석은 기업과 관련된 모든 데이터를 분석하여 보이지 않던 것들을 경영자의 눈에 보이게 한다. 하지만 최근 급격히 증가하는 데이터의 양에 따라 다양한 종류의 데이터베이스가 신속한 의사결정의 발목을 잡고 있다. 기업의 관리자들은 속도가 느린 각종 분석 시스템에 불만을 표출하고 있다. 뜻밖에도 기업 경영 속도를 느리게 만드는 주요 요소 중 하나가 컴퓨터의 하드디스크이다 이러한 디스크의 데이터 처리 방식의 한계로부터 제기 된 것이 메모리 기반의 데이터 처리 방식(In-Memory)의 필요성이다.

 

 

*하드디스크 기반의 DB와 메모리 기반의 DB의 차이

 

하드디스크 기반의 데이터베이스는 데이터양이 많아지거나 트랜잭션 처리와 분석업무를 모두 할 경우 병목 현상이 발생 한다 따라서 데이터웨어하우스와 별도로 데이터 마트와 데이터 큐브를 따로 마련해 두어야 하며 트랜잭션 처리와 분석업무를 따로 처리하여야 한다. 반면에 메모리 기반의 DB는 디스크 기반의 DB보다 훨씬 뛰어난 성능으로 트랜잭션 처리와 분석업무를 동시에 처리할 수 있고 데이터양이 급증하더라도 빠른 시간(초 단위)안에 데이터를 처리, 분석 할 수 있다.

 

 

3)In-Memory 기술의 개발 (인메모리 기술의 개발)

In-Memory에 대한 개념적 논의는 오래전부터 메모리 업계에서 이루어져 왔다. 최초로 In-memory 기술을 사용하여 메모리 기반 DB를 만든 기업은 TimesTen 이다. 그 뒤 제품 사용화를 위해 오라클을 비롯한 많은 기업들이 연구를 진행하였는데, 그 중 SAP가 한국 R&D센터의 한국인 100여 명과 세계 개발자들과 5년 동안 연구하여 In-Memory 기술을 최초로 기업용 애플리케이션에 적용하여 서비스 하였다. 한국에서 개발됐다는 뜻으로 In-Memory 기술이 사용된 SAP의 데이터웨어하우스 제품명 역시 ‘SAP HANA’로 붙여졌다. 현재는 SAP뿐만 아니라 오라클 역시 In-Memory 제품을 내놓았고 다른 기업용 솔루션 기업들 또한 In-Memory 기술 뛰어 들고 있다.



기존의 데이터 처리 방식 


 


DD.png


 


 


1) 데이터 수집 단계


기업 외부와 내부의 원 데이터(Raw Data)가 각각의 정보시스템으로 들어가서 정보시스템 내부의 중앙집권화된 내부 데이터베이스에 저장되는 단계이다. 그 후 각 정보시스템들에 저장된 모든 데이터들이 통합되는 데이터 통합 단계로 넘어간다.


 


* OLTP (OLTP에 대한 설명)


OLTP는 데이터를 수집하는 시스템 또는 프로세스로 정의된다. 거래(Transaction) 데이터를 처리한다. 최신의 그리고 소량의 데이터를 처리한다는 점에서 뒤에 설명되는 ODS와 비슷하나 분명한 차이점이 있다. ODS는 단지 데이터를 통합하고 저장하는 중간 저장소의 역할을 할 뿐이지만 OLTP는 자체적으로 간단한 의사결정을 내릴 수 있다는 것이 ODS와의 차이점이다.


 


2) 데이터 통합 단계


최종 의사결정자의 원만한 의사결정을 위한 통합 보고서를 만들기 위해서 수집되어 저장된 데이터들이 저장되고 통합되는 단계. ODS 또는 ETL의 과정을 거친다.


 


* ODS (Operational Data Store)


정보시스템에서 나온 아웃풋들을 여러 DB에 저장된다. ODS는 분산된 여러 DB들로부터 받은 Raw Data를 일시적으로 저장하는 저장소이다. Raw DataODS와 같은 한 곳의 저장소에 보관하는 이유는, 모든 전사적 데이터들을 한 번에 가공하여 효율성을 증대시키기 위함이다. ODS의 데이터 처리과정은 다음과 같다.


 


1) 분산된 여러 DB로부터 Raw Data를 받는다. ODS는 최신의 그리고 소량의 데이터만을 취한다.


 


2)취한 데이터들을 가공하기 쉬운 형태로 변환시킨다. 쉽게 말해 Data Cleansing의 단계이다.


 


3)이렇게 처리한 자료들을 저장소에 저장한다.


 


* ETL (Extraction, Transformation, Load)


 


DD2.png


 


 



통합된 DB보고서를 얻기 위해 데이터를 추출, 가공, 적재하는 프로세스가 ETL이다. ETL 프로세스의 데이터 처리과정은 다음과 같다.


 


1) Extraction 단계 : 각 경영정보시스템의 DB들로부터 뿐만이 아니라 웹사이트, 운영서버들로부터 필요한 데이터를 추출(Extract)한다.


 


2) Transformation 단계 : 추출된 데이터들은 중앙시스템으로 옮겨진다. 중앙시스템에서 기업의 필요에 따라 적절하게 설계된 비즈니스 로직에 맞춰서 데이터들이 가공(Transformation)되거나 정제(Cleansing)된다. DW에서 이용하기 쉬운 형태로 가공된다.


 


3) Load 단계 : 이렇게 가공된 데이터들은 이 데이터들을 필요로 하는 DW 또는 데이터 마트(Data Mart)로 보내진다(Load).


 


3) 데이터 저장 단계


데이터 저장단계는 DW(Data Warehouse)의 데이터 처리 방식을 중점으로 설명이 가능하다. DW의 데이터 처리 단계에서 데이터는 단순히 정해진 로직에 따라서 관리되는 것에 그치지 않는다. DW에는 최신 데이터만이 아닌 예부터 현재에 이르기까지의 방대한 양의 데이터가 저장되며, 이렇게 저장된 데이터들이 최종 의사결정자의 요청에 맞추어 주제 지향적으로 데이터를 가공한다. DW의 데이터 처리과정은 다음과 같다.


 


1) 다양한 온라인 거래처리 프로그램 등 운영시스템들로부터 다량의 데이터를 공급받는다.


 


2) 데이터들은 DW로 이동되면서 재구조화 된다. 대부분의 DW들은 유용한 데이터를 더욱 유용하게 가공하여 다차원적으로 구조화하고 저장한다.


 


3) 다시 한 번 주제 중심적으로 데이터를 조직하여 의사 결정자의 원만한 의사결정을 돕는다. 대부분의 운영시스템들이 재고 관리 등의 기업 운영에 필요한 정보들을 지원한다면 DW는 주제를 중심으로 고객 정보, 제품 정보 등을 지원한다.


 


4) 이렇게 조직화된 데이터들은 최종 의사결정자의 의사결정에 이용된다.


Data Mart는 산업 군이나 회사별로 조금씩 다르게 사용될 수 있지만 일반적으로는 DW에서 대용량 데이터들을 비즈니스 요구에 맞게 기능이나 분야별로 분류한 데이터 모델이다. 또한 Data Mart는 정보 접근을 돕는다. 예를 들어, DW에서 Data Mart를 통하여 WEB에 정보를 노출시켜서 잠재적 소비자의 정보 접근을 돕는다.


 


4) BI 소프트웨어


OLAP는 최종 사용자가 BI 툴을 이용하여 정보를 통계학적으로 분석하고 추후상황을 예측하거나 의사결정을 내릴 때, 그 일련의 과정을 지원한다. 다른 분석 툴과 다르게 OLAP는 다차원적으로 구조화된 데이터를 분석할 수 있다. OLAP 분석툴로 데이터를 분석할 때는 쿼리를 사용한다. 그렇기 때문에 쿼리에 익숙하지 않은 사용자들은 OLAP 툴을 이용한 데이터 분석에서 어려움을 겪을 수 있다.


 


DD3.png


 


 


왼쪽 다차원 큐브를 예시로 OLAP 분석의 예를 들 수 있다. 왼 쪽 큐브는 고객, 시간, 상품의
3차원 각도로 이루어져 있다. 이것이 뜻하는 것은‘언제 어느 고객에게 어느 상품을 공급할 것인가?’
정도로 해석 가능하다. 분석가는 OLAP 툴에 요구되는 상황에 맞는 쿼리를 전송하고 OLAP 툴은
분석 결과를 도출한다. 분석가는 그것을 바탕으로 추후상황을 예측하거나 의사결정을 내린다.




인메모리 관련 기사 / 출처 http://www.ciokorea.com/tags/9733/IM/17530?page=0,1


인메모리 기술은 또 USPS가 부정사용을 적발하고 우편물에 적절한 요금이 부과되었는지를 신속하게 파악할 수 있게 해준다. 그들은 인메모리 데이터베이스를 USPS가 동적 경로 설정법, 익일 배송, 예측 전송 등의 작업을 활용할 수 있도록 하는 기술로 보고 있다.


휴스턴과 앳킨스는 "인메모리 데이터베이스를 통해 우리는 과거 몇 시간 또는 며칠이 소요되었던 것들을 실시간으로 처리할 수 있다"라고 말했다.


재정적 효과 그 이상, 통신 산업


사실 인메모리 기술이 특별히 새로운 것은 아니다. 인메모리 분석 플랫폼 벤더 코그니티오(Kognitio)의 CTO 로저 가스켈은 최초의 시스템이 런던의 중개기업 세이버리 밀른(Savory Milln)을 위해 1980년대에 구축됐다고 말했다. 이 기업은 실제적으로 제 때에 거래 노출 위험을 계산하기 원했다고 가스켈이 말했다.


인메모리 시스템 이전에는 계산에 밤을 새워야 했다. 인메모리는 "우리가 사용례 기준을 충족시킬 수 있는 충분한 CPU 처리능력을 확보할 수 있도록 데이터를 빠르게 처리할 수 있는 유일한 방법이었다"라고 가스켈이 말했다.


약 25년이 지난 지금, 새로워진 것은 인메모리 기술에 대한 관심이 급격히 증가했다는 점이다. 가스켈은 "지난 2년 동안 굉장한 변화가 있었다. 인메모리는 큰 인기를 얻었으며, 적용 분야는 폭발적으로 증가했다"라고 말했다.


그는 이어 금융 서비스 및 통신 기업들이 코그니티오의 주요 고객이었지만, 인메모리에 대한 수요는 소매 시장 등에서 더 나타나고 있다고 말했다.


테라코타의 앨런은 금융 서비스, 물류, 전자상거래, 정부, 의료 부문 등에서 인메모리에 대한 관심을 보였다며, “어디에서든 폭넓게 적용할 수 있다. 사람들은 '이것을 어떻게 활용하지?'라고 말한다"라고 전했다.


수요가 증가하면서 인메모리 기술을 제공하는 벤더의 수 또한 증가하고 있다. 예를 들어, 지난 5월에는 테라데이터(Teradata)가 자사의 데이터 저장소에 내재된 기능을 통해 고객들이 메모리를 활용할 수 있도록 하는 인텔리전트 메모리(Intelligent Memory) 서비스를 도입했다.


테라데이터의 대변인 앨런 그린스팬은 "별도의 기기가 필요 없다"면서, 이 기술로 데이터를 추적해 자주 사용되는 데이터를 메모리로 옮긴다고 덧붙였다.


인메모리 기술을 이용한 터치 처리 및 색인


 인메모리 데이터베이스는 기관들이 신속하게 많은 데이터를 처리해야 할 때, 극적인 결과물을 생성할 수 있는 잠재력을 갖고 있다. 하지만 문제점이 아주 없는 것은 아니다. 기술의 특성에 대한 오해가 이런 문제점 중 하나다.


업계 전문가들은 인메모리 배치를 위해서는 단순히 데이터를 메모리로 옮기는 작업 이상의 것이 필요하다고 설명하고 있다. 먼저 반드시 메모리를 활용하기 위한 데이터 관리 소프트웨어를 설계해야 한다.


SAP의 데이터 저장소 솔루션 및 HANA 플랫폼 담당 부사장 크리스 핼렌벡은 "단순히 메모리에 데이터를 옮기는 것이 아니다. 처음부터 데이터베이스 전체를 다시 작성하여 디스크 대신에 메모리를 주된 저장 매체로 사용하도록 하는 것이다"라고 말했다. (SAP HANA 실시간 플랫폼은 인메모리 데이터베이스를 포함하고 있다)


또 다른 문제점도 있다. 인메모리 기술의 속도 때문에 프로세서에 대한 부담이 가중된다. 결과적으로, 기관들은 반드시 데이터에 접근하는 코드를 병렬화하고 클러스터 전반에 걸쳐 부하 균형을 적용해야 한다. 린드퀴스트는 "부하 균형은 인메모리 데이터베이스를 활용하는 능력에 있어서 중요한 부분을 차지하고 있다"라고 말했다.


실제로 애드저글러는 상용 하드웨어와 자체 개발한 소프트웨어를 사용한 풀(Pull) 기반의 부하균형 시스템을 개발했다. 애드저글러의 거래처리 엔진의 각 인스턴스는 부하균형 구성요소로부터 작업을 가져오고 작업을 완료한 후, 다시 더 많은 작업을 가져온다. 시스템은 추가적인 용량이 필요한 경우에 더 많은 인스턴스를 불러온다.


또 인메모리 제품을 사용하는 기업들은 반드시 데이터베이스 색인을 조심해야 한다. 전통적인 데이터베이스를 사용하는 기업들은 상당한 디스크 공간을 색인에 할당할 수 있다. 하지만 인메모리 데이터베이스는 더 높은 정확성이 요구된다.


린드퀴스트는 "데이터베이스 등의 인메모리 저장소를 사용하는 경우에는 성능을 위해 색인을 작성해야 한다. RAM이 더욱 비싸고 한정적이기 때문에 더욱 정확해야 한다"라고 말했다.


RAM의 휘발성 때문에 인메모리 도입 시 또 다른 문제점이 야기된다. 시스템에 문제가 발생하는 경우, 데이터를 반드시 다시 불러와야 한다. 이 때문에 시간이 소요될 수 있다.


USPS에서 휴스턴과 앳킨스는 인메모리 데이터베이스를 사용하는데 있어서 데이터 보호가 가장 큰 문제점 중 하나라고 지적했다. USPS는 현재 인메모리로 무거운 작업을 처리하고 나서 관련된 결과를 관계형 데이터베이스에 다시 전송하고 있다. 또한 USPS는 인메모리를 통한 처리의 체크포인트 파일을 유지하여 문제가 발생하는 경우에 제한적인 복구를 수행하고 있다. 그는 "우리는 합리적인 보완책을 통해 중요한 데이터를 보호하고 있다"라고 말했다.


하지만 체크포인트 파일에서 인메모리 시스템을 복구하는 작업은 쉽지 않다. 휴스턴과 엣킨스는 "예상했겠지만, 전통적인 저장매체에서 16TB를 복구하기 위해서는 상당한 시간이 소요된다"라며, USPS의 인메모리 데이터 저장소 규모를 언급했다.


그들은 "이 문제를 해결하기 위해서 우리는 현재 다시 불러오는 시간이 크게 줄어들기를 바라는 마음에 처리에 플래시(Flash) 카드 기술을 추가하는 것을 연구하고 있다"라고 전했다.

반응형
Posted by 랩터 인터내셔널