데이터 엔지니어링

    Spark Connect

    Tickets https://issues.apache.org/jira/browse/SPARK-39375 https://docs.google.com/document/d/1Mnl6jmGszixLW4KcJU5j9IgpG9-UabS0dcM6PM2XGDc/edit#heading=h.wmsrrfealhrj [External] Spark Connect - A client and server interface for Spark docs.google.com

    Morden Data Stack

    모던 데이터 스택 발전사 모던 데이터 스택 발전사 (1) - 데이터넷 [데이터넷] 지난 20년 동안 기업 환경에서 데이터 플랫폼은 변화하는 시대 요구사항에 맞게 진화해 왔지만, 오늘날 생성되는 데이터 양, 속도, 다양한 데이터 유형 및 분석 워크로드에 민첩하게 www.datanet.co.kr 모던 데이터 아키텍처와 새로운 아키텍처의 시대 모던 데이터 아키텍처와 새로운 아키텍처의 시대 - 테크잇 학습 차원에서 틈틈이 해외 전문가들이 블로그나 미디어 그리고 책에서 쓴 글을 번역 또는 정리하고 있습니다. 이번 포스팅도 그중 하나고요. 거칠고 오역된 부분이 있을 수 있습니다. 제대로 techit.kr

    [데이터 중심 애플리케이션 설계] 8장 분산 시스템의 골칫거리

    * 이 글은 [데이터 중심 애플리케이션 설계]를 공부하며 기록을 남긴 것입니다.

    [데이터 중심 애플리케이션 설계] 7장 트랜잭션 - 직렬성

    * 이 글은 [데이터 중심 애플리케이션 설계]를 공부하며 기록을 남긴 것입니다. 직렬성 여러 트랜잭션이 병렬로 실행되더라도 직렬로 실행되는 것과 최종적으로는 같도록 보장하는 것 완벽한 격리 수준인 것 같지만 완벽히 구현하기 매우 어렵다. 단일 노드 DB를 기준으로 봄. 구현 방법 3가지 1. 순차적으로 실행하기 한 번에 한 트랜잭션만 직렬로 단일 스레드에서 실행하는 방법 메모리에 더 많은 데이터를 담을 수 있고, 대부분의 OLTP 트랜잭션은 짧기 때문에 가능해짐 잠금으로 발생하는 오버헤드를 줄일 수 있지만, 처리량이 CPU 하나 수준으로 제한됨 → 다른 형태로 구조화 스토어드 프로시저 단일 스레드에서 실행하기 위해서는 트랜잭션 코드 전체를 스토어드 프로시저 형으로 변환하여 실행 I/O 대기, 오버헤드를 ..

    [DEVIEW 리뷰] Luft: 10초만에 10억 데이터를 쿼리하는 데이터스토어 개발기

    DEVIEW 2020 데이터 엔지니어링 파트의 Luft 세션을 들으면서 정리한 내용입니다. 40분 가량의 세션에서 기억하고 싶은 부분들이 너무 많아, 사실 거의 옮겨 적어놓은 것과 비슷합니다..ㅎㅎ 자세한 내용이 궁금하시다면 하단의 링크를 참고해주시고, 문제가 된다면 수정하겠습니다! - 소개 Airbridge에서 자체 개발한 데이터스토어인 Luft의 개발기를 공유하고자 합니다. Luft는 사용자 행동 분석에 최적화된 실시간 분산 데이터스토어입니다. S3과 Kafka로부터 각각 배치/실시간 데이터를 받아, 사용자 ID별로 파티셔닝해 저장하고 이를 바탕으로 리텐션 및 퍼널과 같은 사용자 행동 분석 쿼리를 수 초 이내로 수행합니다. 본 세션에서는 Luft에 대한 소개 및 개발기를 공유합니다. 국내에서 흔치 않..

    [논문리뷰] MapReduce: Simplefied Data Processing on Large Clusters

    Introduction Programming Model Implementaion Refinements Performance Experience

    [논문리뷰 시작] Piranha: Optimizing Short Jobs in Hadoop

    작년 2학기 [빅데이터프로그래밍] 수업에서 공부했던 논문을 정리해보려고 합니다. 수업에서 위의 Hadoop/Spark와 관련된 논문들 중 하나씩 맡아서 공부하고 발표하는 과제가 있었습니다. 저는 Piranha: Optimizing Short Jobs in Hadoop이라는 논문을 맡았는데, 빅데이터를 처리하기 위한 Hadoop에서 small job을 고려하는 이유와 방법이 궁금해서 선택했었습니다. 당시에는 이런 논문을 보는게 처음이기도 했고 CS 관련 지식도 부족해서 리딩하는데 상당히 많은 시간을 쏟았었습니다. 하지만 논문을 읽으면서 그 기술이 어떤 배경에서 나왔고, 중요한 개념들은 무엇이며, 어떻게 구현되는지 이해하는데 큰 도움이 되었습니다. 개인적으로 하둡 생태계에 관심이 많아서, 관련 논문들을 꾸준..

    [데이터 중심 애플리케이션 설계] 7장 트랜잭션 - 트랜잭션과 격리 수준

    * 이 글은 [데이터 중심 애플리케이션 설계]를 공부하며 기록을 남긴 것입니다. 트랜잭션 다수의 읽기와 쓰기(다중 객체에 대한 다중 연산)를 하나의 논리적 단위로 묶는 방법 → 전체가 성공하거나 실패함 실패나 오류를 처리하기 쉬워짐: 안전성 보장(ACID) 애플리케이션에서 DB에 접근하는 프로그래밍을 단순화하기 위한 목적 트랜잭선의 개념은 모호해졌고, 이점과 한계가 명확하다! 1. ACID 원자성 Atomicity 여러 작업을 하나의 트랜잭션으로 묶어 처리하는 것 오류가 생기면 전체를 abort하고 안전하게 재시도한다. 트랜잭션의 핵심 기능! 여담으로.. Django는 이런 abort 트랜잭션을 재시도 하지 않아서, 오류가 생기면 요청은 사라지고 사용자는 오류만 받게된다. Django로 작업할 때 유독 ..