morebo2ks / Designing_Data_Intensive_Application

데이터 중심 어플리케이션 설계 스터디 입니다.
4 stars 0 forks source link

16주차 스터디 #17

Open hyunju-song opened 1 year ago

hyunju-song commented 1 year ago

파트

Part03. 파생 데이터 10. 일괄 처리

발표자

유재상

발표 기간

7월 12일 오후 10시

마감기한

7월 12일 오후 10시

참고 링크

일정표 : https://clever-bull-d00.notion.site/bd201441d8a44c83a70375001278c850 책 : http://www.yes24.com/Product/Goods/59566585

hyunju-song commented 1 year ago

Part 3. 파생데이터

레코드 시스템과 파생 데이터 시스템

10장. 일괄 처리

유닉스 도구로 일괄처리하기

맵리듀스와 분산 파일 시스템

리듀스 사이드 조인과 그룹화

맵사이드 조인

일괄 처리 워크플로의 출력

하둡과 분산 데이터베이스의 비교

맵리듀스를 넘어

데이터플로 엔진

프리글 처리 모델

고수준 API와 언어

정리

KilJaeeun commented 1 year ago

part3. 파생 데이터

10장 . 일괄 처리

유닉스로 일괄 처리

조인의 종류

맵사이드 조인

맵사이드 병합조인

  1. 조인할 두 데이터 세트를 각각 정렬합니다. 정렬 작업은 일반적으로 맵리듀스 프레임워크의 맵 단계 이전에 수행됩니다. 이를 위해 데이터를 메모리에 로드하여 정렬합니다.

  2. 작은 데이터 세트를 메모리에 로드합니다. 이를 맵사이드 데이터 세트라고 합니다.

  3. 맵사이드 데이터 세트의 각 레코드를 맵 함수에 전달하여 조인 작업을 수행합니다. 맵 함수는 맵사이드 데이터 세트의 키를 기반으로 조인을 수행하고, 나머지 데이터 세트를 스캔하여 동일한 키를 가지는 레코드를 찾습니다.

  4. 조인된 결과를 맵 단계에서 바로 출력합니다. 리듀스 단계를 거치지 않고 조인 결과를 바로 반환합니다.

리듀스 사이드 조인

브로드캐스트 해시 조인

파티션 해시 조인

  1. 조인할 두 데이터 세트를 동일한 해시 함수를 사용하여 해시 파티션으로 분할합니다. 각 데이터 세트의 레코드는 해시 함수에 적용되어 고유한 해시 키를 생성합니다.

  2. 분할된 파티션 간에 조인 작업을 수행합니다. 동일한 해시 키를 갖는 레코드들끼리 조인됩니다. 이때, 동일한 해시 키를 가지는 레코드가 동일한 노드 또는 처리 단위에 위치하므로 네트워크 통신이 최소화됩니다.

  3. 조인된 결과를 반환합니다. 각 파티션에서 조인된 결과를 생성하고, 이를 병합하여 최종 조인 결과를 얻습니다.

    정렬 병합 조인

  4. 조인 대상 데이터 세트를 각각 정렬합니다. 일반적으로 정렬 작업은 데이터를 메모리에 로드한 후에 수행됩니다.

  5. 정렬된 데이터를 병합합니다. 두 데이터 세트에서 동일한 키 값을 갖는 레코드를 찾아 조인합니다. 이때, 정렬된 상태에서 병합 작업을 수행하므로 효율적으로 조인할 수 있습니다.

3, 조인 결과를 반환합니다. 동일한 키 값을 갖는 레코드가 조인되어 새로운 레코드가 생성됩니다. 이러한 결과는 일반적으로 새로운 데이터 세트로 생성되거나 원하는 형식으로 출력됩니다.

skew problem

다른 시스템들 소개

JSYoo5B commented 1 year ago

https://docs.google.com/presentation/d/1-udTkUIy_ulUagFLLQKUBbUAzbh6GMoRf6CdeK3li5w/edit?usp=sharing

jasonkang14 commented 1 year ago

Batch Processing

Batch Processing with Unix Tools

Simple Log Analysis

Chain of commands versus custom program

Sorting versus in-memory aggregation

The Unix Philosophy

A uniform interface

Separation of logic and writing

Transparency and experimentation

MapReduce and Distributed Filesystems

MapReduce Job Execution

Distributed execution of MapReduce

MapReduce workflows

Reduce-Side Joins and Grouping

sort-merge joins

Bringing related data together in the same place

GROUP BY

Handling skew

Map-Side Joins

Broadcast hash joins

Partitioned hash joins

Map-side merge joins

MapReduce workflows with map-side joins

The Output of Batch Workflows

Building search indexes

Key-value stores as batch process output

Philosophy of batch process outputs

Comparing Hadoop to Distributed Databases

Diversity of storage

Diversity of processing models

Designing for frequent faults

Beyond MapReduce

Materialization of Intermediate State

Dataflow engines

Fault Tolerant

Discussion of materialization

Graphs and Iterative Processing

The Pregel processing model

Falut tolerance

Parallel execution

High-Level APIs and Languages

The move toward declarative query languages

Specialization for different domains

wookiist commented 1 year ago

10. 일괄 처리

유닉스 도구로 일괄 처리

맵리듀스와 분산 파일 시스템

하둡과 분산 데이터베이스의 비교

맵리듀스를 넘어

dns02023 commented 1 year ago

일괄 처리

유닉스 도구로 일괄처리하기

맵리듀스와 분산 파일 시스템

리듀스 사이드 조인과 그룹화

정렬 병합 조인

그룹화

쏠림 다루기

맵 사이드 조인

파티션 해시 조인

맵 사이드 병합 조인

하둡과 분산 데이터베이스의 비교

맵리듀스를 넘어

데이터플로 엔진

내결함성

구체화에 대한 논의

그래프와 반복처리

프리글 처리 모델

고수준 API와 언어