데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      SKT 초고속 데이터 분석 Lightning DB 소개

      DevRel 21.08.03
      2,562 6 1

      본 소개자료는 SKT Lightning DB개발팀에서 전달받아 등록하는 자료입니다.

      공식 사이트 : https://lightningdb.io/ 


      Lightning DB 소개

      개요

      Lightning DB는 다양한 환경에서 발생하는 대용량 데이터를 실시간으로 저장하고, 처리 및 조회할 수 있는 기능을 제공하는 실시간 빅데이터 데이터베이스 엔진입니다. Lightning DB 개발팀에서는 대용량 데이터를 효율적으로 분산 처리하여 빠르고 안정적으로 데이터를 저장하고 조회하는 기능을 제공하기 위해 redis와 RocksDB, Apache Spark과 kafka와 같은 오픈소스들을 기반으로 필요한 기능들을 개발하여 Lightning DB를 만들고 SK telecom 내부의 여러 곳들에 제공 및 운영하고 있습니다. 이번에는 Lightning DB의 구조와 함께 SK telecom에서 Lightning DB가 어떻게 활용되고 있는지를 살펴보도록 하겠습니다.


      구조 및 특징

      Lightning DB의 중심에는 DRAM과 SSD를 효율적으로 사용하기 위해 설계하고 개발한 FlashBase가 있습니다. FlashBase는 DRAM과 SSD를 최대한 효율적으로 사용하기 위해 작은 단위로 데이터를 나누어 저장할 수 있도록 설계1 한 데이터 저장소로, redis와 RocksDB를 기반으로 구현하였습니다. FlashBase를 사용하여 데이터를 더 작은 단위로 더 많은 노드들에 분산하여 실시간으로 저장하고 조회할 수 있으며, DBMS의 주요 연산들을 데이터가 저장된 곳에서 처리하여 더 빠른 시간에 질의에 응답할 수 있습니다. 

       

      [Lightning DB의 구조 및 주요 특징]

       

      특히, FlashBase는 단일 노드에 최대 20억개까지의 파티션을 생성하고 관리할 수 있어, 대량의 시계열(time-series) 데이터나 공간(geospatial) 데이터, 시각(vision) 데이터를 효율적으로 분산 저장하고 조회할 수 있습니다. 예를 들어, 최근 1주일 사이에 30만개의 기기에서 보내온 로그 데이터 1,420억건(약 42TB) 중에서 특정 조건을 만족하는 14,829개의 레코드(record)를 질의하는 환경을 가정해보겠습니다. HDFS를 데이터 저장소로 사용하는 Spark2은 데이터를 찾는데 약 30분 가량의 시간이 걸리지만, FlashBase를 데이터 저장소로 사용하는 Spark3에서는 동일한 조건으로 데이터들을 찾는데 1초도 걸리지 않습니다. 이와 같은 속도 차이는 더 작은 단위로 파티션을 나누어 데이터를 저장하기 때문에 발생합니다.  HDFS에는 분단위로 데이터가 저장되어 있어 10,080개의 분단위 파티션(= 7일 x 24시간/일 x 60분/시간)에서 주어진 조건을 만족하는 데이터를 찾아야 하는 것에 비해, FlashBase는 기기별 x 분단위로 파티션을 나누어 데이터를 저장하고 있어 총 30억개(= 30만개의 기기별 x 10,080개의 분단위)의 파티션들에서 주어진 조건에 해당하는 파티션들만 빠르게 찾아낸 다음, 더 적은 데이터들을 대상으로 세부 조건들을 만족하는 레코드를 찾기 때문입니다.4


      또한 데이터가 저장된 노드들에서 가능한 연산들을 처리하고 있어, 데이터의 처리 및 전송 과정에서 생기는 병목을 줄이고 있는 것도 주요한 특징 중 하나입니다. 일례로 최대/최소 및 평균값을 찾는 통계 연산을 수행하는 과정에서 Intel이 제공하는 SIMD 기능(AVX-512)5을 활용하여 최소 3배에서 최대 8배6까지의 성능 개선을 보이고 있습니다. 이러한 통계 연산들은 딥러닝 모델의 학습 및 추론을 위한 데이터들의 전처리(preprocessing) 과정에서 사용되기도 하는데, Lightning DB에 저장된 1분 단위의 기초 데이터를 5분 단위로 모아서 정규화하는 전처리하는 단계에서 1.8배에서 1.9배까지의 성능 향상7을 보였습니다.8  
      그 외 주요한 특징으로는 저장된 벡터(vector) 데이터들에 대한 KNN(K-Nearest Neighbor) 연산을 지원하는 것입니다. KNN 연산은 주어진 질의에 포함된, 저장된 데이터와 동일한 차원의 벡터들에 대해서 가장 가까운 K개의 레코드를 찾는 연산으로, Lightning DB에서는 KNN 연산의 주요한 지표로 활용되는 유클리드 거리(Euclidean distance) 및 코사인 유사도(cosine distance)를 모두 지원하고 있습니다. KNN 연산은 이미지들간의 유사도를 찾는 과정에서 많이 사용되는데, 주어진 이미지에서 추출한 특징 벡처(feature vector)를 Lightning DB에 저장된 특징 벡터들과의 KNN 연산을 통해 어떤 레코드와 가장 유사한지 찾을 수 있습니다. 일반적으로 많은 시간이 걸리는 KNN 연산은 저장된 모든 데이터에 대해서  정확한 KNN(exact KNN) 연산을 하기보다는 근사적인 KNN(approximate KNN) 연산을 하는 경우가 많은데, Lightning DB는 단일 서버에 저장된 약 190만건의 128차원 데이터에 대해서 정확한 KNN 연산을 하는데 질의 당 평균적으로 0.012초로 뛰어난 성능을 보이고 있습니다.9

       

      [Lightning DB의 주요 특징10]

       

      지금까지 Lightning DB의 주요한 특징들을 살펴보았습니다. 이 외에도 Lightning DB는 위 그림2와 같은 다양한 기능들을 제공하고 있습니다. 이제 이러한 기능들을 활용하고 있는 사례들을 몇가지 살펴보도록 하겠습니다.
       

       

      활용사례

      먼저 통신망의 품질 분석을 위한 기지국 로그 데이터의 실시간 저장 및 분석에 사용되고 있습니다. SK telecom에서는 통신망 품질을 관리하기 위해 전국에 설치된 기지국들로부터 로그 데이터를 수집하여 실시간으로 저장 및 분석하고 있으며, 이 과정에 Lightning DB가 사용되고 있습니다. Lightning DB는 2017년 3월부터 전국의 기지국들로부터 하루 약 1,200억건, 60TB 가량의 데이터를 전송받아 실시간으로 저장하고 있으며, 필요 시 특정 시간 / 위치의 로그 데이터를 빠르게 조회할 수 있는 기능을 제공하고 있습니다.

       

      [통신망 품질 분석을 위한 모니터링 시스템 예시 화면]

       

      다음으로는 실시간 유동 인구 분석 서비스 적용되어 있습니다. 실시간 유동 인구 분석 서비스는 SK텔레콤의 기지국별 접속자를 기반으로 특정 지역의 유동 인구를 실시간으로 확인할 수 있는 서비스로, 자체 개발한 빅데이터 플랫폼 지라프(GIRAF)를 통해 서비스되고 있습니다. Lightning DB는 지라프 플랫폼에 필요한 기지국 데이터를 하루 280억건, 14TB 가량 실시간으로 전송받아 저장하고, 총 60TB에 달하는 전체 데이터를 5분 단위로 분석하고 시각화하는데 사용되고 있습니다. 실시간 유동 인구 서비스는 코로나19(Covid-19) 확산 방지를 위해 경찰청에 무상 제공하여 인구 밀집 지역을 확인할 수 있게 하는 등, 여러 공공 기관에 제공되고 있습니다. 자세한 내용은 ‘유동인구 5분 단위로 체크한다… 빅데이터 플랫폼’ 기사 등을 참고해주세요

       

      [실시간 유동 인구 서비스 예시 화면]

       

      이처럼 인공지능 시대에 수없이 생성되는 다양한 데이터를 빠르게 저장하고 조회하여 더 나은 삶을 만드는데 Lightning DB가 일조하고 있습니다.

       

      Reference

      1. Hongchan Roh, et al. B+-tree Index Optimization by Exploiting Internal Parallelism of Flash-based Solid State Drives, VLDB2012
      2. 20개의 노드에서 실행하였으며, 각 노드는 E5 2650 v4 CPU, 256GB DRAM, 24TB HDD로 구성하였습니다.
      3. 16개의 노드에서 실행하였으며, 각 노드는 E5 2680 v4 CPU, 256GB DRAM, 20TB SSD로 구성하였습니다.
      4. 더 자세한 내용은 2019년 Spark+AI Summit에서 발표한 내용을 참고해주세요. (발표 영상 링크)
      5. Intel이 제공하는 명령 집합 확장 기술(Instruction Set Extension Technology)에 대한 자세한 설명은 이곳을 참고해주세요.
      6. Mean 연산은 3.2배, Min/Max 연산은 각각 8.35배와 8.1배의 성능 개선을 보였습니다.
      7. 딥러닝 모델에 학습을 위한 데이터 제공을 할 때는 1.89배의 성능 개선이, 추론을 위한 데이터 제공을 할 때는 1.96배의 성능 개선을 보였습니다.
      8. 더 자세한 내용은 2020년 Spark+AI Summit에서 발표한 내용을 참고해주세요. (발표 영상 링크)
      9. Intel E5 CPU가 탑재된 단일 서버에서 측정한 결과입니다.
      10. 표기된 주요 수치들은 E5 2680 v4 CPU, 256GB DRAM, 20TB SSD로 구성한 노드에서 측정하였습니다.

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      DevRel 님의 최신 블로그

      더보기
      동영상 기고하기