전체 글

[Kafka] Apache kafka 소개와 배경
현재 업무상 데이터 인프라, 데이터 엔지니어링, 데이터 플랫폼을 운영하고 있습니다. 데이터 엔지니어라는 포지션이 꼭 데이터 엔지니어링만을 다루는 것이 아니라 해당 시스템을 뒷받침하는 인프라적인 요소를 잘 다루어야 한다는 것을 크게 체감하고 있습니다. 데이터 인프라적인 요소 또한 조금씩 포스팅하려고 합니다.. 위에서 이야기한 두가지 요소를 포함하는 것을 데이터 플랫폼이라고 규명하겠습니다. 현재 운영하는 데이터 플랫폼의 첫 시작인 카프카에 대해서 이야기하려고 합니다. Apache Kafka(아파치 카프카) 카프카는 카프카 공식문서를 통하면 더욱 자세하게 알 수 있습니다. 아파치 카프카란? 오픈소스로 확장성이 뛰어난 메시지 브로커 프로젝트입니다. 분산형 데이터 스트리밍 플랫폼이며 대용량의 실시간 데이터를 처리..
2023년 하반기 회고
2023년 하반기(7~12월) 회고를 진행해보려고 합니다. 신입 데이터 엔지니어 2023년에 개인적으로 가장 큰 이벤트는 바로 취업이었습니다. 데이터 엔지니어로 취업을 하여 개인적으로 뿌듯한 해 였지만.. 데이터 공부를 많이 하지 못했다는 것이 아쉬움으로 남습니다. 현재는 프로젝트에 투입되어 실시간으로 대용량 데이터를 다루는 일을 하고 있습니다. 운영중인 서버의 환경은 리눅스 위에 kafka, nfii, kubernetes, airflow, trino와 같은 기술들을 사용하다 보니 리눅스를 비롯한 사용 기술들에 대한 이해가 필요했고, 출퇴근 시간을 이용하여 인터넷 강의를 보며 열심히 따라가고 있지만.. 아직은 많이 부족함을 느끼고 있습니다. 최근에는 카프카 클러스터를 구축하고 Topic을 이관하는 작업을..

2023년 상반기 회고
2023년 상반기(1~6월) 회고를 진행해보려고 합니다. 회고를 위하여 깃허브의 잔디를 확인해보니 열심히 커밋을 한 것 같습니다. 잔디 하나하나의 내용들이 프로젝트나 기술 관련된 내용이었다면 더 좋았겠지만 주로 코딩테스트를 위하여 문제를 풀었다는 것이 조금 아쉽습니다. 초반에는 문제를 풀고 블로그에 문제 풀이를 올리고 직접만든 자동 커밋 프로그램을 이용하여 커밋을 하였지만 이력서, 자기소개서 작성, 면접 준비 등등 취업준비로 인하여 여러 과정들이 생략되었습니다. 또한 leethub라는 leetcode의 문제를 풀면 자동으로 커밋해주는 크롬 확장 프로그램을 사용하면서 블로그에 문제 풀이를 올리는 과정을 생략하였습니다. 여러 회사의 코딩테스트를 통과하지 못하는 시간들이 많아지고 개인적으로 취업준비가 길어지면..

[빅데이터를 지탱하는 기술] 빅데이터의 축적 # 2
스트리밍 형의 데이터 전송 웹 브라우저, 모바일 앱, 센서 기기등 각종 디바이스에서는 데이터가 바로 생성이 되고 어디에도 저장이 되지 않는 데이터는 바로 전송을 하고 수집을 해야합니다. 이러한 데이터는 벌크 형 도구로 모으는 것은 불가능하기 때문에 스트리밍 형 데이터 전송이 필요합니다. 웹 브라우저나 모바일 앱은 메시지 배송의 통신 프로토콜로 HTTP(S)를 사용합니다. lot 같은 머신 데이터는 MQTT 등의 오버헤드가 작은 프로토콜이 사용되는 경우도 있습니다. 이러한 데이터 전송의 공통점은 다수의 클라이언트에서 작은 데이터들이 전송되는 것입니다. 이러한 데이터 전송 방식을 '메시지 배송(message delivery)'이라고 하며 메시지 배송 시스템은 통신을 위한 오버헤드가 커지기 때문에 이를 처리하..

[빅데이터를 지탱하는 기술] 빅데이터의 축적 # 1
객체 스토리지와 데이터 수집 빅데이터의 대부분은 확장성이 높은 '분산 스토리지(distributed storage)'에 저장됩니다. 일반적으로는 파일을 저장하기 위한 '객체 스토리지(object storage)'가 많이 이용됩니다. 대표적으로 Hadoop의 HDFS, Amazon S3가 있습니다. 객체 스토리지의 파일을 읽고 쓰는 과정은 네트워크를 통해서 일어납니다. 데이터는 여러 디스크에 복사되기 때문에 하나의 디스크가 고장이 나도 데이터가 손실되지 않는다는 장점을 가지고 있습니다. 또한 읽고 쓰는 작업을 여러 하드웨어에 분산하기 때문에 데이터의 양이 늘어나도 성능이 떨어지지 않도록 설계되어 있습니다. 하지만 객체 스토리지는 데이터의 양이 많을 때에는 효율적이지만 소량의 데이터인 경우에는 비효율적입니다..

[빅데이터를 지탱하는 기술] 대규모 분산 처리의 프레임워크 # 5
데이터 마트의 구축 팩트 테이블(Fact Table) 데이터 분석의 시작은 데이터를 구조화입니다. 많은 정보를 담고 있는 팩트 테이블은 데이터 분석의 많은 부분을 차지하고 있습니다. 팩트 테이블의 크기가 작다면 메모리에 올릴 수 있지만 빅데이터의 경우에는 팩트 테이블의 크기가 커서 열 지향 스토리지에서 데이터를 압축해야 빠른 집계를 할 수 있습니다. 새로운 데이터가 들어왔을 때 팩트 테이블은 추가(append), 치환(replace) 두 가지의 작성방법이 있습니다. 추가(append)는 새로 도착한 데이터만 기존의 데이터에 추가해주는 방식이고 치환(replace)은 과거의 데이터와 새로운 데이터를 포함하여 테이블 전체를 치환하는 방식입니다. 테이블 파티셔닝 효율면에서는 추가(append)가 유리합니다. ..