네이버 쇼핑에서는 1000 만 건이 넘는 큰 데이터를 처리하기 위해서, Hadoop 파일 시스템 (HDFS) 과 같은 분산 데이터베이스를 적극적으로 활용하고 있다
이 방법의 큰 장점은 데이터 엔지니어링 툴을 직접 사용할 수 있기 때문에, 데이터 전처리를 빠른 속도로 적용할 수 있다는 점이다.
네이버 쇼핑에서는 1000 만 건이 넘는 큰 데이터를 처리하기 위해서, Hadoop 파일 시스템 (HDFS) 과 같은 분산 데이터베이스를 적극적으로 활용하고 있다
이 방법의 큰 장점은 데이터 엔지니어링 툴을 직접 사용할 수 있기 때문에, 데이터 전처리를 빠른 속도로 적용할 수 있다는 점이다.
HDFS Hive Apache Spark Presto Apache Flink data warehouse columnar storage
... join, 정렬, 여러 단계 집계처럼 흔한 작업도 map 과 reduce 의 조합으로 옮겨야 한다. 단계가 여러 개면 MapReduce 작업을 여러 개 이어붙여야 하고, 그때마다 중간 결과가 HDFS 에 기록됐다가 다시 읽힌다. 디스크 왕복이 반복되어 느리다. 진입 장벽이 높다. 분석가나 기획자가 데이터를 보려면 자바 코드를 짜야 했다. 이 문제를 풀려고 페이스북이 만든 것이 Hive 로,...
큰 데이터를 여러 대의 기계에 나눠 처리하기 위한 프로그래밍 모델이다. 2004년 구글 논문에서 제안됐고, 이를 오픈소스로 구현한 것이 Hadoop MapReduce 다.
Apache Iceberg는 대용량 분석 테이블을 파일 위에서 안전하게 관리하기 위한 open table format 이다.
정의 Distributed SQL Query Engine for Big Data (Trino 와 유사) Presto is an open source distributed SQL query engine for running interactive analytic queries against data sources of...
row based storage 는 일반적인 관계형 데이터베이스 테이블의 저장 방식으로, 각 행 (row) 마다 단일 레코드의 필드값이 저장된다.
Hive에서 조인 명령을 실행할때, 크기가 작은 테이블은 메모리에 캐시하고 크기가 큰 테이블은 맵퍼로 흘려 보낼 수 있다. 하이브는 메모리에 캐시한 작은 테이블로 부터 일치하는 모든 것을 찾아 낼 수 있기 때문에 맵에서 모든 조인을 할 수 있다. 이렇게 하면 일반 조인 시나리오에서 필요한 리듀스 단계를 제거할 수 있다.
TFRecord 의 단점 엄격한 포맷 tf.train.Feature(float list=tf.train.FloatList(value=[value])) 와 같이 TFRecord 에 저장할 모든 데이터는 TensorFlow 에서 제공하는 데이터 타입으로 변환해야 한다. Apache Parquet 과의 상호 변환 문제...
대용량 실시간 메시지 처리를 위한 프레임워크
Apache Spark 는 메모리 내 처리를 지원하여 빅 데이터를 분석하는 애플리케이션의 성능을 향상시키는 오픈 소스 병렬 처리 프레임워크입니다.
columnar storage row based storage 의 단점을 극복하기 위한 방법으로 많이 사용된다.
Kafka Topic 은 같은 종류의 event/message 를 모아두는 logical stream 이다. Producer 는 topic 으로 message 를 쓰고, Consumer 는 topic 에서 message 를 읽는다.