본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

2017년 최고의 오픈소스 소프트웨어 : 데이터베이스와 분석 툴

OSS 게시글 작성 시각 2017-10-12 07:37:07 게시글 조회수 5719

2017년 10월 11일 (수)

ⓒ ITWorld
Martin Heller, Steven Nunez, Andrew C. Oliver | InfoWorld


지난 몇 년 간 수많은 NoSQL 데이터베이스가 최고의 오픈소스 목록을 지나갔다. 이제 SQL은 충분하다. 2017년도에는 스케일아웃 SQL 데이터베이스가 두 가지 포함되어 있지만, 아파치 소프트웨어 재단에서 흔히 볼 수 있는 일군의 분석 지향 프로젝트가 주류를 이루고 있다. 아파치 소프트웨어 재단은 이제 이제 빅데이터의 동의어로 자리잡았다고 해도 과언이 아니다.



코크로치DB
코크로치DB(CockroachDB)는 클라우드 네이티브 SQL 데이터베이스로, 재난이 발생해도 살아남을 수 있는 확장 가능한 글로벌 클라우드 서비스를 구축용이다. 코크로치DB는 트랜잭션 가능하고 일관성이 확실한 키값 저장소를 기반으로 구축되어 수평으로 확장해 디스크나 시스템, 랙, 심지어 데이터센터 오류가 있어도 최소한의 지연 중단으로 그리고 수동 개입 없이 살아남고, ACDI 트랜잭션의 일관성을 지원한다. 또한 데이터 구조화, 조작, 질의를 위한 친숙한 SQL API를 제공한다. 코크로치DB는 구글의 스패너(Spanner)와 F1 기술에 영감을 받았다.


맵D
맵D(MapD)는 GPU로 구동되는 인메모리 데이터베이스 겸 가상화 플랫폼이다. 분석가와 데이터 사이의 불연결을 없애는 전광석화와 같이 빠르고 실감 나는 데이터 탐색을 위해 만들어졌다. GPU 수퍼컴퓨팅의 능력을 데이터 분석에 적용함으로써 맵D는 수십억 건의 기록을 수백분의 1초 만에 쿼리하고 시각화할 수 있다. 맵D 코어 데이터베이스는 최첨단 쿼리 편집 엔진으로 CPU의 병렬성을 활용함으로써 분석 SQL 쿼리 속도를 몇 자리수 더 높여준다. 거의 지연 없이 대형 데이터 집합의 탐색이 가능한 것이다.


크레이트DB
크레이트DB(CrateDB)는 NoSQL 기반의 분산 SQL 데이터베이스로, SQL의 친숙함과 NoSQL의 확장성 및 데이터 유연성을 접목한 것이 특징이다. 크레이트DB는 자바를 실행할 수 있는 모든 운영체제, 즉, 리눅스, 맥OS, 윈도우 등에서 사용할 수 있는 패키지 및 실행 파일을 제공한다. 크레이트DB의 일반적인 사용례는 IoT, 센서 데이터, 로그 및 이벤트 분석, 시계열, 공간 검색, 머신러닝 등이다.


그린플럼
그린플럼(Greenplum)는 ANSI SQL과 완벽하게 호환되는 대규모 병렬 처리(Massive Parallel Processing, MPP) SQL 데이터베이스이다. 그린플럼은 머신러닝, 첨단 병렬 쿼리 엔진, 그리고 고확장성 분산 아키텍처를 제공한다. 기존에는 독점 솔루션이었던 그린플럼은 2015년 아파치 프로젝트가 되었으며, 첫 오픈소스 공개는 2017년 9월에 이루어졌다.


아파치 스파크
아파치 스파크(Apache Spark)는 그 열기가 아직 뜨겁다. 7월 공개된 버전 2.2에서는 코어(Core)에 다수의 새로운 기능(이제 SQL 쿼리 엔진이 포함됨)이 추가되었고 카프카(Kafka) 스트리밍 인터페이스가 개선되었으며 MLlib와 그래프X에 알고리즘이 추가됐다. R에서의 분산 머신러닝을 지원하는 스파크R 라이브러리 또한 특히 SQL 통합 부분에서 강화되었다. 수정된 버그와 일반적인 개선 사항은 일일이 열거하기 어려울 정도로 많은 만큼, 이번 공개판이 사상 최고 가운데 하나라 할 수 있다.


아파치 솔라
루신(Lucene) 인덱싱 기술을 기반으로 하는 아파치 솔라(Apache Solr)는 뭐든지 가능한 분산 색인/문서 데이터베이스이다. 필요한 것이 간단한 색인이든 복잡한 중첩 문서 처리이든 간에 솔라가 답이다. 방대한 텍스트 안에서 무언가를 찾아내는 것은 당연히 솔라의 강점이다. 그러나 최신 솔라는 더 많은 것을 할 수 있게 해 준다. 예를 들면, 분산 방식으로 SQL을 실행하거나 심지어 그래프 쿼리를 실행할 수도 있다. 엔진은 새로운 ”포인트” 타입으로 계속해서 발전해 왔다. 이 새 포인트 타입은 숫자 쿼리를 향상된 성능과 작아진 색인으로 실행한다.


아파치 애로우
아파치 애로우(Apache Arrow)는 빅데이터의 속도를 높여주는 고속, 원주형, 교차 시스템 데이터 계층이다. 애로우를 사용해 메모리 내에 데이터를 저장함으로써, 애플리케이션은 오늘날 데이터 처리 파이프라인에 병목을 발생시키는 값비싼 직렬화/역직렬화 단계를 건너뛸 수 있다. 아파치 빅데이터 프로젝트(카산드라(Cassandra), 파르켓(Parquet), 쿠두(Kudu), 스파크(Spark), 스톰(Storm) 등의 여러 개발자들이 참가하는 아파치 애로우 프로젝트는 향후 오랜 기간 동안 전세계 데이터 중 큰 덩어리를 처리하게 될 것이다.


아파치 쿠두
아파치 쿠두(Apache Kudu)는 빅데이터 인프라의 주요 구성요소로 자리잡을 것이다. 쿠두는 대량 데이터가 자주 업데이트되고 적시에 분석이 필요한 상황에 최적화되어 있다. 이는 전통적인 아파치 하둡(Apache Hadoop) 아키텍처의 과제 중 하나였는데, 보통은 코드 및 데이터 동기화 문제로 이어질 수 있는 복잡한 HDFS 및 HBase 솔루션으로 이어진다. 쿠두는 IoT, 시계열, 스트리밍 머신러닝 처리를 위한 더 우수하고 단순한 아키텍처를 약속한다.


아파치 제플린
아파치 제플린(Apache Zeppelin)은 개발자, 분석가, 데이터 과학자 모두에게 일종의 외국어 학습 교재이다. 많은 해석기를 통해 다양한 데이터 저장소에서 데이터를 가져와 여러 가지 언어로 분석할 수 있다. 이는 아파치 솔라 색인에서 데이터를 가져와 오라클 데이터베이스와 교차 참조한 후 그 결과를 스칼라(Scala)에서 작성한 코드로 스파크에서 분석할 수 있음을 의미한다. 그 이후에는 담당 통계학자가 데이터프레임(DataFrame)을 R에서 분석하고 결과를 가시화할 수 있다. 그 후에 담당 데이터 과학자가 가장 좋아하는 파이썬(Python) 라이브러리를 이용해 심화학습을 진행하는 것이다. 이 모든 것이 동일한 워크북에서 가능하다!


R 프로젝트
R 프로그래밍 언어는 따로 소개할 필요가 없을 것이다. 2017년 마이크로소프트, 오라클, IBM과 여러 소규모 업체의 지원을 받으면서 계속 확산되고 있다. CRAN(Comprehensive R Archive Network)에는 중요한 통계 컴퓨팅 알고리즘이 거의 모두 들어 있다. 업데이트된 데이터 집합을 저장하고 다시 수행하기 쉽게 해 주는 스크립팅 언어와 정교한 그래픽이 함께 제공된다.


아파치 카프카
아파치 카프카(Apache Kafka)는 분산 스트리밍 플랫폼이다. 실시간 데이터 파이프라인 및 스트리밍 앱 구축에 사용된다. 수평 확장이 가능하고, 폴트톨러런트에 속도가 빠르고, 이미 수천 기업의 프로덕션 환경에 사용되고 있다. 카프카는 메시지 큐나 기업용 메시징 시스템과 마찬가지로 기록의 흐름을 게시하고 구독할 수 있게 해 준다. 기록의 흐름을 무정지 방식으로 저장할 수 있게 해주고 발생과 동시에 처리할 수 있게 해 준다.


크루즈 컨트롤
아파치 카프카는 강력하고 안정적인 분산 스트리밍 플랫폼이지만 관리하기 까다롭다. 오류를 자동화된 방식으로 처리하지만 시스템 전반의 로드 밸런싱이 흐트러지는 경우가 종종 생긴다. 링크드인(LinkedIn)은 자체 SRE가 카프카 리소스 모니터링 및 밸런싱에 너무 많은 시간을 소요하는 것을 발견하고 그 부담을 덜어주기 위해 크루즈 컨트롤(Cruise Control)을 개발했다. 오픈소스화는 8월말에 이루어졌지만 프로덕션 환경에서 카프카를 실행하는 사람이라면 누구에게나 시간 절약을 약속해 준다.


야누스그래프
야누스그래프(JanusGraph)는 컬럼 지향적인 데이터베이스를 기반으로 하는 분산 그래프 데이터베이스이다. 다른 유명 오픈소스 그래프 데이터베이스와는 달리 태생적으로 대형 그래프와 분산 처리를 지원한다. 야누스그래프는 기능이 아주 많으며, 아파치 스파크, 아파치 솔라 등과 통합되고, 아파치 팅커팝(TinkerTop)의 그렘린(Gremlin) 그래프 쿼리 언어의 구현을 지원한다. 그래프 형태의 문제와 그래프 구조에 적합한 데이터가 있다면 야누스그래프가 답이다.


아파치 팅커팝
팅커팝(ThinkerPop)은 스파크, Neo4j, 타이탄(Titan) 등 유명 그래프 처리 프레임워크는 거의 모두 구동한다. 사용자는 자신의 문제 영역을 그래프로 모델링해 이를 그래프 순회 언어를 이용해 분석할 수 있다. 일부 영역, 특히 관계가 수반되는 영역에서 이 기법은 매우 효과적이다. 그래프 컴퓨팅은 빠른 속도로 발전하고 있으며, 팅커팝은 오픈소스 영역을 선도하고 있다.



※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지



[원문출처 : http://www.itworld.co.kr/slideshow/106668]

맨 위로
맨 위로