일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오로라자율주행
- 로보택시
- 코로나백신
- Starlink
- 6G
- smart_city
- UAM사례
- 드론배송시작
- 우버 매각
- CES2021LG
- 로봇택시
- 오로라이노베이션
- 에어택시
- 코로나백신대상
- 아마존자율주행
- 코로나백신피해야할대상
- 자율주행차량
- 자율주행택시
- UAM
- 자율주행오로라
- 완전자율주행
- CES2021
- 김래아
- 해외UAM
- 기술경영
- 월마트드론
- 스마트시티
- 자율주행
- 우버자율주행
- UAMT
- Today
- Total
RDX 공식블로그
유럽 해사 통합 빅데이터 플랫폼 구축을 위한 'Big Data Ocean' : 빅데이터 기술 현황(2/3) 본문
유럽 해사 통합 빅데이터 플랫폼 구축을 위한 'Big Data Ocean' : 빅데이터 기술 현황(2/3)
Redesign X(리디자인엑스) 2020. 2. 25. 16:23
지난 시간에는 데이터 포맷&인코딩, 메타데이터 저장소&시맨틱, 데이터 저장소에 관련된 기술을 알아봤습니다. 지난 시간에 이어 이번에는 쿼리 프로세싱, 스트림 프로세싱, 분석에 관련된 기술의 특징을 알아보고 Big Data Ocean에 적합한지 평가해보도록 하겠습니다. 이번에도 각 주제 앞부분에 빅데이터 관련 전문 용어를 같이 정리해 놓았으니 이해하는데 도움이 되었으면 합니다.
4. 쿼리 프로세싱(Query Processing)
용어 정리
·쿼리(query) : 데이터베이스에 정보를 요청하는 것으로, 웹 서버에 특정한 정보를 보여달라는 웹 클라이언트 요청에 의한 처리를 뜻합니다.
·SQL(Structured Query Language) : 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어입니다.
·대화형 (매체) : 텍스트, 그래픽, 애니메이션, 영상, 소리와 같은 콘텐츠를 눌러서 사용자의 동작에 반응하는 디지털 컴퓨터 기반 시스템 상의 제품을 의미합니다. 대화형 매체에는 상호 관계가 반드시 필요합니다.
·인메모리(in-memory) : 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 데이터 베이스 관리 시스템입니다.
※IMC(인메모리컴퓨팅)에서는 디스크에 호스팅된 데이터베이스가 아닌 RAM에 데이터를 저장합니다. 다량의 데이터 캐싱이 가능하며 응답 시간이 대폭 빨라지고, 세션 데이터를 저장할 수 있어 최적의 성능을 달성할 수 있습니다.
·스키마(schema) : 데이터베이스를 구성하는 개체, 속성, 관계 및 데이터 조작 시에 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의하는 것을 의미합니다. 스키마가 존재한다는 것은 그 구조가 미리 정의되어 있어야 한다는 뜻이며, 이는 데이터의 급격한 변화에 대응이 힘듭니다.
·MapReduce : 대용량 데이터의 처리를 위한 분산 프로그래밍 모델입니다. 흩어져있는 데이터를 수직화하여, 그 데이터를 각각의 종류별로 모으고(Map), 필터링(Filtering)과 소팅(Sorting)을 거쳐 데이터를 뽑아내는(Reduce) 분산처리 기술 관련 프레임워크를 의미합니다.
·반복(interation) : 몇 개의 배치(batch)를 사용할 것인지를 의미합니다.
·배치(batch) : 한 번에 처리하는 사진의 장 수를 의미합니다.
·캐싱(caching) : 오랜 시간이 걸리는 작업의 결과를 저장해서 불필요한 시간과 비용을 줄이는 기법입니다.
·historical data : 데이터 중에 시간개념이 필요한 데이터를 뜻합니다. (예를 들면, 제품 생산, 예약, 통신 등)
·operational data : 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료를 뜻합니다.
·이진 파일(binary file) : .exe .dll 등의 프로그램 파일과, .zip .rar. 등의 압축파일, .mp3 .mpg .jpg .gif 등의 멀티미디어 파일을 말합니다.
Big Data Ocean 빅데이터 저장소의 데이터에 접근하도록 하는 플랫폼을 제공하기 위해서는, 효율적인 쿼리 프로세싱 엔진이 필수적입니다. 쿼리 프로세싱은 보통 데이터 가치사슬에서 데이터 전처리, 데이터 큐레이션 부분에 위치합니다.다음의 플랫폼/시스템들은 서로 다른 인프라와 데이터 모델을 뛰어넘는 쿼리 프로세싱을 수행하는 최신 접근방법을 보여줍니다.
˙Spark SQL : 구조화된 데이터셋을 간단하고 효율적으로 다룰 수 있는 기능을 제공합니다. 반복(interaction) 간 메모리에 데이터를 효율적으로 캐싱(caching)하며, 클러스터 내 모든 작업자 노드의 장애를 처리하도록 설계되었기 때문에 데이터 손실이 없다는 장점이 있습니다. 하지만 인메모리(in-memory)를 실행하려면 RAM이 많이 필요하고, 상대적으로 지연시간이 많이 걸린다는 단점이 있습니다.
그럼에도 불구하고, 대용량 데이터셋 위에서 실행되는 쿼리 처리에 사용되며, Big Data Ocean에서 빅데이터 처리를 위해 고려하는 대안 중 하나입니다.
˙Hive : SQL을 사용하여 분산 스토리지에 있는 대규모 데이터셋을 읽기, 쓰기, 관리할 수 있는 데이터 웨어하우스 소프트웨어입니다. 익숙한 JDBC 인터페이스를 사용하므로 다른 중요 데이터센터 기술과 쉽게 통합되고, 확장성이 뛰어나며, 대용량 데이터셋보다 뛰어난 성능을 가지고 있습니다. 하지만 서브 쿼리가 지원되지 않고, 실시간 쿼리 및 행 레벨(row level) 업데이트를 제공하지 않으며, 온라인 데이터 처리를 위해 설계되지 않았다는 단점이 있습니다.
그럼에도 불구하고, 대용량 데이터셋 위에서 실행되는 쿼리 처리에 사용되며, Big Data Ocean에서 빅데이터 처리를 위해 고려하는 대안 중 하나입니다.
˙Apache Pig : Hadoop 위에서 실행될 수 있고, 고유의 도메인 특정 언어를 사용하는 프로그램을 작성하기 위한 플랫폼입니다. 프로그래밍이 용이하고, 최적화가 쉬우며, 확장성이 뛰어나지만, 실행 중 지연이 일어나 중간/최종 결과가 버려지거나 저장되니 않는 한 명령이 실행되지 않는다는 단점이 있습니다. 또한, 개발이 완전히 완료되지는 않았습니다.
이 플랫폼 또한 Big Data Ocean에서 빅데이터 처리에 이용될 수 있는 대안 중 하나지만, 가능성은 그렇게 높지 않습니다.
˙Presto : 분산형 SQL 쿼리 엔진으로 빠른 성능에 매우 최적화되어 있습니다. SQL 전문 작업으로, 설치 및 디버그가 간편하고, 스토리지 추출(abstraction)이 단순하며, 대기시간이 짧은 페타바이트급 데이터를 신속하게 확장할 수 있다는 장점이 있습니다. 반면에, 쿼리의 각 작업이 저장할 수 있는 최대 메모리 양에 제한이 있습니다.
Big Data Ocean에서 빅데이터 처리에 이용될 수 있는 대안 중 하나지만, 가능성은 그렇게 높지 않습니다.
˙Apache Drill : 대규모 데이터셋의 대화형 분석을 위해 데이터 집약적인 분산 어플리케이션을 지원하는 오픈소스 소프트웨어 프레임워크입니다. 스키마 없는 쿼리 실행이 가능하며, historical 데이터 및 operational 데이터에 대한 적절한 분석이 이루어지며, 액세스/처리/분석에 있어 완벽한 보안이 특징입니다. 하지만 배치(deployment)가 쉽지 않으며, 집계 함수가 많지 않고, 가입에 제한사항이 있으며, 스키마가 없어 혼동을 일으킬 수 있다는 단점이 있습니다.
Big Data Ocean에서 빅데이터 처리에 이용될 수 있는 대안 중 하나지만, 가능성은 그렇게 높지 않습니다.
˙HAWQ : 최고 성능의 SQL On Hadoop 솔루션입니다. 다른 Hadoop SQL 엔진보다 여러 배 빠른 속도로 고성능을 자랑합니다. 하지만 많은 리소스를 사용하고 개발이 더 필요하기 때문에 Big Data Ocean에 이용될 가능성은 그리 높지 않습니다.
˙Apache Impala : HDFS에 저장되어 있는 데이터를 SQL을 이용해 실시간으로 분석할 수 있는 시스템입니다. 익숙한 SQL 인터페이스를 사용하며, Apache Hadoop의 대용량 데이터 쿼리 기능을 하며, 복사 또는 내보내기/가져오기 단계 없이 서로 다른 구성요소 간에 데이터 파일 공유가 가능합니다. 또한, 클러스터 환경에서 쿼리를 분산하기 때문에 손쉽게 확장이 가능하고 비용 효율적인 범용 하드웨어를 활용하게 됩니다. 하지만 단점 또한 많이 발견됩니다. 직렬화(serialisation) 및 탈선화(deserialisation)에 대한 지원이 없고, 사용자 정의 이진파일(binary files)이 없고 텍스트 파일만 읽을 수 있으며, 기래 및 지수화(indexing)에 대한 지원이 없습니다.
5. 스트림 프로세싱(Stream Processing)
용어 정리
·스트림 프로세싱(stream processing) : 데이터들이 지속적으로 유입되고 나가는 과정에서 이 데이터에 대한 일련의 처리 혹은 분석을 수행하는 것을 의미합니다. 즉, 스트림 프로세싱은 실시간 분석이라고 불리기도 합니다.
·Stateful : 컴퓨터 혹은 프로그램이 상호작용상태를 지속적으로 저장하고 관리하는 것으로, 이러한 정보가 목적에 따라 스토리지에 저장이 됩니다.
·오픈소스 : 공개적으로 액세스할 수 있게 설게되어 누구나 자유롭게 확인, 수정, 배포할 수 있는 코드를 의미합니다.
스트림 프로세싱은 실시간으로 또는 거의 실시간으로 그리고 지속적인 간격으로 들어오는 데이터를 처리하는 과정입니다. 스트림 프로세싱은 보통 데이터 가치사슬에서 데이터 획득, 데이터 전처리 부분에 위치합니다.
스트림 프로세싱에 가장 적합한 솔루션을 선택하기 위해 고려해야하는 중요한 특징들은 (1) Delivery Guarantees(들어오는 데이터의 보장된 처리) (2) Fault Tolerance(시스템을 구성하는 부품의 일부에서 결함이나 고장이 발생해도 정상적으로 또는 부분적으로 기능 수행이 가능) (3) 상태관리(보전 및 업데이트 기능) (4) 성능(대기시간, 처리량, 확장성) (5) 고급기능(이벤트 시간 프로세싱, 윈도우 설정 등에 대한 지원) (5) 성숙도(업계에서의 높은 채택률)이 있습니다. 이러한 특징들은 스트림 프로세싱을 위한 대체 프레임워크와 소프트웨어 솔루션을 비교하는데 고려됩니다. Big Data Ocean에서 스트림된 데이터(예: 날씨 상태 데이터, 선박에서 받은 지구공간 데이터 등)의 처리를 위한 가장 적절한 솔루션을 찾기 위해서는 다음과 같은 기술들이 고려됩니다.
·Spark Streaming : 고성능 데이터 프로세싱 플랫폼으로서, 실시간 데이터 스트림의 확장성, 높은 처리량, Fault-tolerant 스트림 프로세싱이 가능하게 합니다. 매우 빠른 속도로 스트리밍을 처리하고, 다양한 기계학습이 작동되고, 반복적이고, 대화형이며, 이벤트 스트림 처리능력이 좋은 장점을 가지고 있는 반면에, 많은 메모리를 소모하므로 대규모 시스템 리소스가 필요하다는게 단점입니다.
지금까지 프로젝트 내에서 사용되지는 않았지만, 이미 아키텍쳐에 포함된 Apache Spark의 일부분이므로 향후 Big Data Ocean 아키텍쳐에서 Kafka의 데이터를 읽어 배치(batch) a및 대화형 쿼리와 스트리밍을 결합하는데 쓰일 가능성이 높습니다.
·Flink : 경계없는 데이터 스트림과 경계있는 데이터스트림 모두 실행할 수 있는 stateful 컴퓨팅을 위한 프레임워크 및 분산형 프로세싱 엔진입니다. 분산 및 확장이 가능하고, 대기시간이 짧고 처리량이 높으며, 인메모리 및 온디스크 운영이 가능하다는 장점이 있습니다. 하지만 Spark처럼 큰 커뮤니티가 아니고, 다른 기술들에 비해 그렇게 성숙하지 않은 오픈소스 프로젝트이라는 단점이 있습니다.
그럼에도 불구하고, 작은 노력으로 Big Data Ocean 플랫폼에 통합될 수 있으므로 Big Data Ocean의 Use case에 적합하다고 볼 수 있습니다.
·Kafka : 대용량 실시간 로그처리에 특화되어 설계된 메시징 시스템을 갖춘 분산형 스트리밍 시스템입니다. 그리 크지 않은 하드웨어를 사용하여 고속 및 대용량 데이터를 처리할 수 있고, 초당 수천 개의 메시지의 처리가 가능하며, 지연시간이 매우 짧다는 장점이 있습니다. 하지만 솔루션의 품질이 Kafka 인프라를 호스팅하는 비즈니스 코드에 크게 좌우된다는 점이 문제로 꼽히고 있습니다.
Big Data Ocean 스트리밍 데이터의 자동 흡수(ingestion)에 가장 적합한 도구로 평가됩니다.
·Samza : 분산형 스트림 프로세싱 프레임워크로서, 메시징에 Apache Kafka를 사용하고, Fault-tolerance, 프로세서 격리, 보안, 리소스 관리 기능을 제공하는 Apache Hadoop Yarn을 이용합니다. 대규모 정보 상태유지에 적합하며, Fault-tolerance, 짧은 지연시간, 높은 처리량이 장점이며, 규모에 맞는 테스트가 가능합니다. 하지만 Kafka, Yarn과 밀접하게 결합되어 있다는 점이 단점으로 평가됩니다.
·Storm : 데이터의 무한 스트림을 안정적으로 처리할 수 있는 분산형 실시간 계산 시스템입니다. 실시간 프로세싱을 위한 다른 시스템 대비 우수한 성능을 가지고 가장 성숙한 프로젝트입니다. 하지만 배치(batch) 프로세싱을 지원하지 않으며, 이벤트 시간 프로세스/집계/윈도우 설정 등과 같은 고급 기능이 없다는 문제가 있습니다.
6. 데이터 분석
용어 정리
·머신러닝(machine learning) : 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 뜻합니다.
·API(Application Programming Interface) : 프로그램들이 서로 상호작용하는 것을 도와주는 매개체를 뜻합니다.
·라이브러리(library) : 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임을 의미합니다. 컴퓨터 이용의 효율화를 위해 이용자가 필요에 따라 사용하는 표준화된 프로그램 및 서브루틴의 모임입니다.
·차원 축소(dimensionality reduction) : 데이터의 의미를 제대로 표현하는 특징을 추려내는 것을 의미합니다. (차원이 증가하면 그걸을 표현하기 위한 데이터 양이 기하급수적으로 증가하기 때문에 너무 고차원의 데이터들은 의미를 제대로 표현하기 어렵기 때문입니다.)
데이터 분석은 데이터셋에서 작동하는 고급 분석기법으로, 무엇이 변화하고 어떻게 대응해야하는지를 확인할 수 있도록 도와주는 프로세스입니다. 분석은 데이터 가치사슬에서 보통 데이터 큐레이션, 데이터 이용 부분에 위치합니다.
Big Data Ocean 내에서 데이터 분석은 시스템의 활성 데이터 및 과거 데이터에 대한 빅데이터의 사양, 실행, 배포를 담당합니다. 특히 이 프로세스는 결함 예측, 사전 유지보수, 바다 보호 등과 같이 파일럿의 다양한 목표를 위해 사용될 수 있습니다.
지난 10년간 정보의 디지털화로 저장되는 데이터의 양이 급격하게 증가해왔는데요. 이러한 데이터 급증과 수집한 데이터가 원하는 포맷으로 저장되지 않기 때문에 문제가 생기기 시작했습니다. '데이터 마이닝(mining)'은 분석에 중요한 툴이며, 대용량의 데이터로부터 예측가능한 정보의 추출 과정으로 볼 수 있습니다. 특히 다양한 관점으로 분석하고 유용한 정보를 요약할 때 사용된다는 특징이 있습니다. Big Data Ocean에서의 데이터 마이닝은 다양한 프로젝트 파일럿에서 수집된 해사 데이터를 거의 실시간으로 분석이 가능하다는 장점이 있습니다.
데이터 분석 프로세스는 지능형 시스템을 기반으로 개발된 알고리즘과 시스템의 정확도를 향상시켜야 하므로, '머신 러닝' 기술 또한 굉장히 중요합니다. Big Data Ocean에서 머신러닝 기술은 프로젝트 파일럿을 위해 개발된 알고리즘과 예측 모델의 성능을 조정하기 위해 사용될 것입니다.
·Apache MLib : Spark의 머신러닝 라이브러리입니다. 정교한 알고리즘 구현이 어렵고, 아직 많이 성숙하지는 않고, 메모리를 많이 소모하며, 큰 리소스를 필요로 한다는 단점이 있지만, 사용하기 쉽고, 고성능에 쉬운 구현으로 설계되었고, 광범위한 머신러닝 알고리즘을 포함한다는 많은 장점이 있습니다.
따라서, 이 도구는 파일럿 프로젝트에서 사용될 Big Data Ocean 플랫폼의 기본 요소 중 하나로 꼽힙니다.
·R-Programminng : 통계적 계산과 그래픽을 위한 프로그래밍 언어이자 소프트웨어 환경입니다. 순수하게 통계적인 부분만 다루고 있어 데이터 마이닝에 대한 전문성이 낮아 array 언어에 대한 지식이 필요하다는 단점이 있습니다.
·Weka : Java 언어로 개발된 오픈소스 데이터 마이닝 프로그램입니다. 데이터 전처리, 분류, 회귀(regression), 클러스터링, 연결규칙, 시각화를 위한 도구를 포함하며, 새로운 머신러닝 계획을 개발하는데 적합하다는 특징이 있습니다. 하지만 문서화 및 매개변수 최적화가 불량하고, 기존의 통계에 취약하다는 단점 때문에 Big Data Ocean에는 사용되지 않지만 파일럿 프로젝트의 머신러닝 라이브러리로 사용될 수 있습니다.
·Apache Mahout : 확장가능한 알고리즘 구축을 위한 간단한 프로그래밍 프레임워크입니다. 통합 필터링 및 분류를 위한 다양한 사전준비 알고리즘이 포함되어 있으며, 클러스터링 및 차원의 축소도 가능합니다.
MLib에서는 사용할 수 없는 다양한 알고리즘이 구현되어 있어, 파일럿 프로젝트를 위해 다른 ML툴(예를 들면, Apache MLib)을 보완할 수 있으므로 Big Data Ocean에 적합하다고 평가됩니다.
·H2O : Java 기반 오픈소스 인메모리 머신러닝 플랫폼입니다. 데이터 과학에 대한 다양한 알고리즘을 지원합니다. (예를 들어, K-Means, GLM, DRF, Naive Bayes) 머신러닝 알고리즘의 빠르고 확장가능한 구현을 제공합니다.
Hadoop/Yarn 또는 Spark위에 R, 파이썬, Scala와 결합할 수 있다는 사실은 Big Data Ocean의 모든 파일럿에 적용가능한 솔루션이 될 수 있습니다.
·TensorFlow : 파이썬(Python)과 C++ API를 사용하는 머신러닝 시스템입니다. 데이터 흐름 그래프를 이용해 수치연산이 가능하므로 수치적인 계산에는 뛰어나지만, 주로 딥러닝 어플리케이션에 사용되므로 적합하지 않습니다.
다음 포스팅에 이어집니다..
Author 박해리
'Tech.Trend' 카테고리의 다른 글
'완전' 자율주행 차량에 대한 안전기준, UL4600 (0) | 2020.04.21 |
---|---|
유럽 해사 통합 빅데이터 플랫폼 구축을 위한 'Big Data Ocean' : 빅데이터 기술 현황(3/3) (0) | 2020.03.06 |
유럽 해사 통합 빅데이터 플랫폼 구축을 위한 'Big Data Ocean' : 빅데이터 기술 현황(1/3) (0) | 2020.02.06 |
유럽 해사 통합 빅데이터 플랫폼 구축을 위한 'Big Data Ocean' : 초기단계 개요 (0) | 2020.02.03 |
유럽의 해사 통합 빅데이터 플랫폼 구축을 위한 'Big Data Ocean' : Prologue (0) | 2020.01.30 |