예전에는 Big Data의 핵심 속성을 3Vs라고 불렀다.
그러나 나중에 아래의 2가지 속성이 추가되면서, 현재는 5Vs로 Big Data의 핵심 속성을 정의하고 있다.
Database 작업은 크게 두 종류로 구분된다. 바로 OLTP(Online Transaction Processing)와 OLAP(Online Analytical Processing)이다.
① OLTP
② OLAP
Hadoop은 대규모 Data Set을 분산 처리하기 위한 Apache의 소프트웨어 프레임워크이다. 대용량의 데이터를 분산시켜 효율적으로 분석하기 위해 클러스터링(여러 대의 컴퓨터가 분담하여 일을 처리하는 방식)을 사용한다. 이처럼 대용량 데이터를 분산 환경에 저장하고 처리하는 방식을 Distributed Processing이라 한다.
Hadoop에는 총 4개의 Module이 존재한다.
① Hadoop Common
② HDFS
③ Hadoop YARN
④ Hadoop M/R
Hadoop은 전통적인 RDB에서 처리하기 어려울 정도로 큰 규모의 데이터를 다뤄야 할 때 유용하다.
Hadoop은 NoSQL과 마찬가지로 BASE 속성을 갖기 때문에 Integrity는 낮은 편이다. Hadoop의 중요한 특징 중 하나는 Scale-Out 방식으로 확장된다는 것이다. Scale-Up(Vertical Scaling)보다 Scale-Out이 유리한 이유는, Scale-Up 방식의 확장에서는 투자 비용과 성능이 비례하지 않기 때문이다. 다시 말해 성능을 10배 올리기 위해, Scale-Out에서는 비용을 10배 증가시키면 되지만, Scale-Up에서는 비용을 수십 배 증가시켜야 한다.
① Flume, Sqoop, Kafka
② HDFS
③ YARN
④ Map Reduce, Spark
⑤ HBase
⑥ Apache HIVE, Apache PIG, Apache ZooKeeper
데이터의 크기가 매우 큰 경우, 하나의 서버에 저장할 수 없다.
따라서, 적당한 크기의 Block으로 분할하여 여러 대의 컴퓨터에 나누어 저장하는 방식을 사용한다. 이때, Data Block을 가지고 있는 서버 각각을 Data Node라고 한다.
이와 같은 방식을 사용하기 위해선, 어떤 서버에 어떤 Data Block이 저장되어 있는지 알고 있어야 한다. 그러므로 이러한 정보를 관리하는 Name Node가 별도로 필요하다.
위와 같은 구조의 치명적인 단점은 하나의 노드만 고장나도, 전체 시스템에 문제를 초래할 수 있다는 것(SPoF)이다. 이러한 문제를 해결하기 위해서 데이터 블록을 Replication(각 서버에 중복해서 저장)한다.
Data Block을 중복해서 저장하기 때문에 한 대의 컴퓨터가 고장나더라도, 크게 문제가 되지 않는다.
하지만, 여전히 Name Node로 인한 SPoF 가능성이 존재한다. 당연히 이에 대해서도 여러가지 해결책이 있는데, 여기서는 생략하기로 한다.
대규모 데이터로부터 데이터의 패턴이나 규칙 등의 유용한 정보를, 자동으로 발견하는 방법으로, Knowledge Discovery라고도 한다.
① Association Rules
② Clustering
③ Classification
④ Regression
SVM은 데이터를 n차원의 공간으로 매핑하여 클래스 간의 경계를 찾고, 이를 최대화하는 초평면을 찾아내는 알고리즘이다. SVM은 두 클래스 간의 Decision Boundary를 찾는 방식이므로, 두 클래스 사이의 Margin(거리)이 커질수록 Classifiacation의 정확성이 향상된다. Decision Boundary가 최대일 때, Decision Boundary와 가장 가까이에 위치한 Data Point를 Support Vector라고 한다.
Information Gain이 높은 순으로 분류한다. 여기서 Information Gain이란 Entropy의 감소량으로, Selectivity와 비슷한 개념이다.
Precision(정밀도)은 Positive로 예측한 샘플 중 실제 Positive인 샘플의 비율을 나타낸다. 이를 공식으로 나타내면, Precision = TP / (TP + FP)이다. 여기서 TP는 True Positive(예측과 실제 모두 양성), FP는 False Positive(예측은 양성, 실제는 음성)를 의미한다. 즉, 양성이라고 예측한 모델이 얼마나 정확한지를 알려주는 척도이다.
Recall(재현율)은 실제 Positive인 샘플 중에서 모델이 정확히 Positive로 예측한 샘플의 비율을 나타낸다. 이를 공식으로 나타내면, Recall = TP / (TP + FN)이다. 여기서 FN은 False Negative(예측은 음성, 실제는 양성)를 의미한다. 즉, 모델이 얼마나 많은 실제 양성 샘플을 찾아냈는지 알려주는 척도이다.
ROC Curve란, Receiver Operating Characteristic Curve의 약어로, 분류 모델의 성능을 시각적으로 평가하기 위해 사용하는 그래프이다. ROC Curve는 Specificity(x축)와 Sensitivity(y축) 간의 관계를 나타낸다.
Specificity는 FPR(False Positve Rate) = 1-TNR(True Posivie Rate)이고, Sensitivity는 TPR(True Positve Rate) = Recall이다. 즉, (0, 0)에서 (1, 1)로 향하는 곡선을 그릴 때, x 값이 느리게 증가할수록, y 값이 빠르게 증가할수록 모델의 성능이 우수하다.
모델의 성능을 평가하는 지표로 AUC를 사용한다. AUC는 Area Under Curve로, ROC 곡선 아래의 면적이다. AUC의 값이 1에 가까울 수록 성능이 좋은 것으로 평가된다.