kafka vs flink  : https://www.confluent.io/blog/apache-flink-apache-kafka-streams-comparison-guideline-users/


'spark,kafka,hadoop ecosystems > apache.kafka' 카테고리의 다른 글

kafka multi brokers  (0) 2018.11.20
kafka connect  (0) 2018.11.20
kafka-개요  (0) 2018.11.20
kafka 로그 설정 에 대하여  (0) 2018.10.17
Kafka Connector , Simple Connector 구현  (0) 2018.07.16

개요

구성요소

Confluent Platform OpenSource

  • kafka core : 카프카 브로커
  • Kafka Streams : 스트림 처리 시스템을 만들기 위한 카프카 라이브러리
  • kafka connector : 카프카를 데이터베이스, 파일시스템 등에 연결하는 프래임워크.
  • kafka client : 카프카에서 카프카로 메시지를 읽고 ㅆ는 라이브러리
  • kafka REST proxy : 애플리케이션을 카프카 클라이언트용 프로그램으로 동작시킬 수 없는 경우 HTTP를 사용해 카프카에 연결하도록 구성 가능.
  • kafka schema registry : 모든 스키마와 그들의 변경사항에 대한 버전을 보관하는 저장소. 관련된 구성요소가 변경을 인지할 수 있게 함.

Confluent Platform Enterprise

  • 컨플루언트 컨트롤 센터 : 웹 그래픽 사용자 인터페이스, 카프카 시스템을 관리하고 모니터링.
  • 컨플루언트 기술지원, 전문서비스, 컨설팅.

as-is










Machine learning 을 주요 데이터 흐름과 각 노드로 분류하면, Data retrieval, Data preprocessing, Feature Engineering, Modeling,  Predict, Evaluation 단계로 나눌 수 있다.
각 단계 별 Data 의 Input과 Output 특성에 따라 작업을 분해하고 모듈화 하여 구성하는 것이 Data Analysis Framework을 제작하는 첫 단계라고 할 수 있다.

Machine Learning 을 위한 Data는 대개 아래의 과정을 거친다.

Data cleaning

Fill in missing values (attribute or class value):
Identify outliers and smooth out noisy data:
Correct inconsistent data: use domain knowledge or expert decision.

Data transformation

Normalization:
Aggregation: moving up in the concept hierarchy on numeric attributes.
Generalization: moving up in the concept hierarchy on nominal attributes.
Attribute construction: replacing or adding new attributes inferred by existing attributes.

Data reduction

Reducing the number of attributes
Reducing the number of attribute values
Reducing the number of tuples


출처 :  http://www.cs.ccsu.edu/~markov/ccsu_courses/datamining-3.htm

위의 과정은 아래 설명하는 Machine Learning 각 단계에서 적절히 분배되어야 한다.

1.1 Data Retrieval

Data를 조회하고 그 특성을 파악하는 단계로, Data에 통계 기법 등 적용을 위해서는 간단한 변환이 필요하다. 대개 Implementation 단계에서는 필요 없는 작업이므로 엑셀이나 R 등의 접근이 용이한 tool을 사용하는 것이 바람직하다.

따라서,  Framework 모듈 대상에서는 제외할 예정이나 관련 library 정도는 제공하는 것이 바람직하다고 판단된다.

1.2 Data Preprocessing

Data 의 전처리 단계이다. 비 정형 데이터 Input을 뒤에서 ML Algorithm을 사용할 수 있을 정도의 형태로 변환하여 Output으로 제공한다. 뿐만 아니라 데이터의 무결성, 적합성도 보장을 해야 하는 단계이다. 

이를 위하여 비정형 데이터를 정형 데이터로 변환하는 것 뿐 아니라 결측 Data를 제거하거나, 다른 값으로 채워 넣어 보완하거나, 틀린 형식을 보정하는 등의 기능도 제공해야 한다.

1.3 Feature Engineering

Feature Engineering 은 뒤에서 사용할 algorithm에 따라 Feature를 선택/제거하는 기능 및 왜곡을 방지하기 위한 값 변경(normalize, scaling, one-hot encoding..etc.) 기능을 제공해야 한다.

Machine Learning에서 feature engineering 은 사용 Model과 mapping하면 절차적으로 제공 가능하다.

종적 데이터를 횡적 데이터로 변환하고 Vector화 하는 기능이 대부분 Model에서 필요할 것으로 판단된다.

1.4 Modeling

Modeling 단계는 가장 capsulation이 용이한 부분이다. 대부분 solution에서 제공하는 library는 정형적으로 사용하도록 되어 있으며, hyperparameter 만 조절하면 될 정도로 단순하다. 

1.5 Predict, Evaluation

예측 및 평가 단계는 학습과 테스트 Data 를 나누어 검증하는 기능과, 검증 report를 제공하여 사용자가 1.4 단계를 다시 반복할 수 있도록 하는 기능이 필요하다.

Model 과 Predict/Evaluation은 밀접한 상관관계가 있으므로 묶어서 모듈화 하는 고려가 필요하다.



'Algorithm' 카테고리의 다른 글

FDM vs FVM vs FEM  (0) 2021.01.04
kmeans - hadoop map-reduce 프로그래밍  (0) 2018.11.20
1. TSP ( Travel salesman Person ) - Ant colony  (0) 2018.11.19

+ Recent posts